
/* DWARF original prototype: reg_errcode_t build_charclass(uchar * trans, bitset_word_t * sbcset,
   re_charset_t * mbcset, Idx * char_class_alloc, char * class_name, reg_syntax_t syntax,
   re_charset_t * mbcset) */

reg_errcode_t
build_charclass(uchar *trans,bitset_word_t *sbcset,re_charset_t *mbcset,Idx *char_class_alloc,
               char *class_name,reg_syntax_t syntax,re_charset_t *mbcset_1)

{
  ushort uVar1;
  uint uVar2;
  undefined *puVar3;
  int iVar4;
  wchar_t *pwVar5;
  wchar_t wVar6;
  undefined4 *puVar7;
  reg_errcode_t rVar8;
  ushort *puVar9;
  byte *pbVar10;
  ushort *puVar11;
  uint uVar12;
  
  if ((int)mbcset_1 << 9 < 0) {
    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);
    if (iVar4 == 0) {
      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);
    }
    else {
      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);
      if (iVar4 == 0) {
        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);
      }
    }
  }
  iVar4 = *char_class_alloc;
  pwVar5 = mbcset->mbchars;
  if (*(int *)class_name == iVar4) {
    iVar4 = iVar4 * 2 + 1;
    pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);
    if (pwVar5 == (wchar_t *)0x0) {
      return _REG_ESPACE;
    }
    mbcset->mbchars = pwVar5;
    *(int *)class_name = iVar4;
    iVar4 = *char_class_alloc;
  }
  puVar3 = PTR_wctype_0003d350;
  *char_class_alloc = iVar4 + 1;
  wVar6 = (*(code *)puVar3)(syntax);
  pwVar5[iVar4] = wVar6;
  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc);
  if (iVar4 == 0) {
    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
    puVar9 = (ushort *)*puVar7;
    if (trans == (uchar *)0x0) {
      uVar12 = 0;
      do {
        iVar4 = (int)uVar12 >> 5;
        uVar2 = uVar12 & 0x1f;
        uVar12 = uVar12 + 1;
        if ((*puVar9 & 0x800) != 0) {
          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
        }
        puVar9 = puVar9 + 1;
      } while (uVar12 != 0x100);
      rVar8 = _REG_NOERROR;
    }
    else {
      puVar11 = puVar9 + 0x100;
      do {
        uVar1 = *puVar9;
        puVar9 = puVar9 + 1;
        if ((uVar1 & 0x800) != 0) {
          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
        }
        trans = trans + 1;
      } while (puVar11 != puVar9);
      rVar8 = _REG_NOERROR;
    }
  }
  else {
    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);
    if (iVar4 == 0) {
      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
      puVar9 = (ushort *)*puVar7;
      if (trans == (uchar *)0x0) {
        uVar12 = 0;
        do {
          iVar4 = (int)uVar12 >> 5;
          uVar2 = uVar12 & 0x1f;
          uVar12 = uVar12 + 1;
          if ((*puVar9 & 0x200) != 0) {
            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
          }
          puVar9 = puVar9 + 1;
        } while (uVar12 != 0x100);
        rVar8 = _REG_NOERROR;
      }
      else {
        puVar11 = puVar9 + 0x100;
        do {
          uVar1 = *puVar9;
          puVar9 = puVar9 + 1;
          if ((uVar1 & 0x200) != 0) {
            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
          }
          trans = trans + 1;
        } while (puVar11 != puVar9);
        rVar8 = _REG_NOERROR;
      }
    }
    else {
      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);
      if (iVar4 == 0) {
        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
        puVar9 = (ushort *)*puVar7;
        if (trans == (uchar *)0x0) {
          uVar12 = 0;
          do {
            iVar4 = (int)uVar12 >> 5;
            uVar2 = uVar12 & 0x1f;
            uVar12 = uVar12 + 1;
            if ((*puVar9 & 2) != 0) {
              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
            }
            puVar9 = puVar9 + 1;
          } while (uVar12 != 0x100);
          rVar8 = _REG_NOERROR;
        }
        else {
          puVar11 = puVar9 + 0x100;
          do {
            uVar1 = *puVar9;
            puVar9 = puVar9 + 1;
            if ((uVar1 & 2) != 0) {
              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)
              ;
            }
            trans = trans + 1;
          } while (puVar11 != puVar9);
          rVar8 = _REG_NOERROR;
        }
      }
      else {
        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);
        if (iVar4 == 0) {
          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
          puVar9 = (ushort *)*puVar7;
          if (trans == (uchar *)0x0) {
            uVar12 = 0;
            do {
              iVar4 = (int)uVar12 >> 5;
              uVar2 = uVar12 & 0x1f;
              uVar12 = uVar12 + 1;
              if ((*puVar9 & 0x20) != 0) {
                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
              }
              puVar9 = puVar9 + 1;
            } while (uVar12 != 0x100);
            rVar8 = _REG_NOERROR;
          }
          else {
            puVar11 = puVar9 + 0x100;
            do {
              uVar1 = *puVar9;
              puVar9 = puVar9 + 1;
              if ((uVar1 & 0x20) != 0) {
                sbcset[(int)(uint)*trans >> 5] =
                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
              }
              trans = trans + 1;
            } while (puVar11 != puVar9);
            rVar8 = _REG_NOERROR;
          }
        }
        else {
          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);
          if (iVar4 == 0) {
            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
            puVar9 = (ushort *)*puVar7;
            if (trans == (uchar *)0x0) {
              uVar12 = 0;
              do {
                iVar4 = (int)uVar12 >> 5;
                uVar2 = uVar12 & 0x1f;
                uVar12 = uVar12 + 1;
                if ((*puVar9 & 4) != 0) {
                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                }
                puVar9 = puVar9 + 1;
              } while (uVar12 != 0x100);
              rVar8 = _REG_NOERROR;
            }
            else {
              puVar11 = puVar9 + 0x100;
              do {
                uVar1 = *puVar9;
                puVar9 = puVar9 + 1;
                if ((uVar1 & 4) != 0) {
                  sbcset[(int)(uint)*trans >> 5] =
                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                }
                trans = trans + 1;
              } while (puVar11 != puVar9);
              rVar8 = _REG_NOERROR;
            }
          }
          else {
            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);
            if (iVar4 == 0) {
              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
              puVar9 = (ushort *)*puVar7;
              if (trans == (uchar *)0x0) {
                uVar12 = 0;
                do {
                  iVar4 = (int)uVar12 >> 5;
                  uVar2 = uVar12 & 0x1f;
                  uVar12 = uVar12 + 1;
                  if ((*puVar9 & 8) != 0) {
                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                  }
                  puVar9 = puVar9 + 1;
                } while (uVar12 != 0x100);
                rVar8 = _REG_NOERROR;
              }
              else {
                puVar11 = puVar9 + 0x100;
                do {
                  uVar1 = *puVar9;
                  puVar9 = puVar9 + 1;
                  if ((uVar1 & 8) != 0) {
                    sbcset[(int)(uint)*trans >> 5] =
                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                  }
                  trans = trans + 1;
                } while (puVar9 != puVar11);
                rVar8 = _REG_NOERROR;
              }
            }
            else {
              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);
              if (iVar4 == 0) {
                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                puVar9 = (ushort *)*puVar7;
                if (trans == (uchar *)0x0) {
                  uVar12 = 0;
                  do {
                    iVar4 = (int)uVar12 >> 5;
                    uVar2 = uVar12 & 0x1f;
                    uVar12 = uVar12 + 1;
                    if ((*puVar9 & 0x40) != 0) {
                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                    }
                    puVar9 = puVar9 + 1;
                  } while (uVar12 != 0x100);
                  rVar8 = _REG_NOERROR;
                }
                else {
                  puVar11 = puVar9 + 0x100;
                  do {
                    uVar1 = *puVar9;
                    puVar9 = puVar9 + 1;
                    if ((uVar1 & 0x40) != 0) {
                      sbcset[(int)(uint)*trans >> 5] =
                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                    }
                    trans = trans + 1;
                  } while (puVar11 != puVar9);
                  rVar8 = _REG_NOERROR;
                }
              }
              else {
                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);
                if (iVar4 == 0) {
                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                  puVar9 = (ushort *)*puVar7;
                  if (trans == (uchar *)0x0) {
                    uVar12 = 0;
                    do {
                      iVar4 = (int)uVar12 >> 5;
                      uVar2 = uVar12 & 0x1f;
                      uVar12 = uVar12 + 1;
                      if ((*puVar9 & 1) != 0) {
                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                      }
                      puVar9 = puVar9 + 1;
                    } while (uVar12 != 0x100);
                    rVar8 = _REG_NOERROR;
                  }
                  else {
                    puVar11 = puVar9 + 0x100;
                    do {
                      uVar1 = *puVar9;
                      puVar9 = puVar9 + 1;
                      if ((uVar1 & 1) != 0) {
                        sbcset[(int)(uint)*trans >> 5] =
                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                      }
                      trans = trans + 1;
                    } while (puVar11 != puVar9);
                    rVar8 = _REG_NOERROR;
                  }
                }
                else {
                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);
                  if (iVar4 == 0) {
                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                    puVar9 = (ushort *)*puVar7;
                    if (trans == (uchar *)0x0) {
                      uVar12 = 0;
                      do {
                        iVar4 = (int)uVar12 >> 5;
                        uVar2 = uVar12 & 0x1f;
                        uVar12 = uVar12 + 1;
                        if ((*puVar9 & 0x100) != 0) {
                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                        }
                        puVar9 = puVar9 + 1;
                      } while (uVar12 != 0x100);
                      rVar8 = _REG_NOERROR;
                    }
                    else {
                      puVar11 = puVar9 + 0x100;
                      do {
                        uVar1 = *puVar9;
                        puVar9 = puVar9 + 1;
                        if ((uVar1 & 0x100) != 0) {
                          sbcset[(int)(uint)*trans >> 5] =
                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                        }
                        trans = trans + 1;
                      } while (puVar9 != puVar11);
                      rVar8 = _REG_NOERROR;
                    }
                  }
                  else {
                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);
                    if (iVar4 == 0) {
                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                      puVar9 = (ushort *)*puVar7;
                      if (trans == (uchar *)0x0) {
                        uVar12 = 0;
                        do {
                          iVar4 = (int)uVar12 >> 5;
                          uVar2 = uVar12 & 0x1f;
                          uVar12 = uVar12 + 1;
                          if ((*puVar9 & 0x80) != 0) {
                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                          }
                          puVar9 = puVar9 + 1;
                        } while (uVar12 != 0x100);
                        rVar8 = _REG_NOERROR;
                      }
                      else {
                        puVar11 = puVar9 + 0x100;
                        do {
                          uVar1 = *puVar9;
                          puVar9 = puVar9 + 1;
                          if ((uVar1 & 0x80) != 0) {
                            sbcset[(int)(uint)*trans >> 5] =
                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                          }
                          trans = trans + 1;
                        } while (puVar11 != puVar9);
                        rVar8 = _REG_NOERROR;
                      }
                    }
                    else {
                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);
                      if (iVar4 == 0) {
                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                        puVar9 = (ushort *)*puVar7;
                        if (trans == (uchar *)0x0) {
                          uVar12 = 0;
                          do {
                            iVar4 = (int)uVar12 >> 5;
                            uVar2 = uVar12 & 0x1f;
                            uVar12 = uVar12 + 1;
                            if ((*puVar9 & 0x400) != 0) {
                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                            }
                            puVar9 = puVar9 + 1;
                          } while (uVar12 != 0x100);
                          rVar8 = _REG_NOERROR;
                        }
                        else {
                          puVar11 = puVar9 + 0x100;
                          do {
                            uVar1 = *puVar9;
                            puVar9 = puVar9 + 1;
                            if ((uVar1 & 0x400) != 0) {
                              sbcset[(int)(uint)*trans >> 5] =
                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);
                            }
                            trans = trans + 1;
                          } while (puVar11 != puVar9);
                          rVar8 = _REG_NOERROR;
                        }
                      }
                      else {
                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);
                        if (iVar4 == 0) {
                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                          puVar9 = (ushort *)*puVar7;
                          if (trans == (uchar *)0x0) {
                            uVar12 = 0;
                            do {
                              iVar4 = (int)uVar12 >> 5;
                              uVar2 = uVar12 & 0x1f;
                              uVar12 = uVar12 + 1;
                              if ((*puVar9 & 0x10) != 0) {
                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;
                              }
                              puVar9 = puVar9 + 1;
                            } while (uVar12 != 0x100);
                            rVar8 = _REG_NOERROR;
                          }
                          else {
                            iVar4 = 0;
                            do {
                              uVar1 = *puVar9;
                              pbVar10 = trans + iVar4;
                              puVar9 = puVar9 + 1;
                              iVar4 = iVar4 + 1;
                              if ((uVar1 & 0x10) != 0) {
                                sbcset[(int)(uint)*pbVar10 >> 5] =
                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);
                              }
                            } while (iVar4 != 0x100);
                            rVar8 = _REG_NOERROR;
                          }
                        }
                        else {
                          rVar8 = _REG_ECTYPE;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return rVar8;
}



undefined4
FUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,
            int param_7)

{
  ushort uVar1;
  uint uVar2;
  undefined *puVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 *puVar6;
  uint *puVar7;
  int iVar8;
  ushort *puVar9;
  byte *pbVar10;
  ushort *puVar11;
  uint uVar12;
  
  if (param_7 << 9 < 0) {
    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);
    if (iVar4 == 0) {
      param_6 = PTR_DAT_0003d148 + -0x3b14;
    }
    else {
      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);
      if (iVar4 == 0) {
        param_6 = PTR_DAT_0003d148 + -0x3b14;
      }
    }
  }
  iVar8 = *param_4;
  iVar4 = *param_3;
  if (*param_5 == iVar8) {
    iVar8 = iVar8 * 2 + 1;
    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);
    if (iVar4 == 0) {
      return 0xc;
    }
    *param_3 = iVar4;
    *param_5 = iVar8;
    iVar8 = *param_4;
  }
  puVar3 = PTR_wctype_0003d350;
  *param_4 = iVar8 + 1;
  uVar5 = (*(code *)puVar3)(param_6);
  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;
  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);
  if (iVar4 == 0) {
    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
    puVar9 = (ushort *)*puVar6;
    if (param_1 == (byte *)0x0) {
      uVar12 = 0;
      do {
        iVar4 = (int)uVar12 >> 5;
        uVar2 = uVar12 & 0x1f;
        uVar12 = uVar12 + 1;
        puVar7 = (uint *)(param_2 + iVar4 * 4);
        if ((*puVar9 & 0x800) != 0) {
          *puVar7 = *puVar7 | 1 << uVar2;
        }
        puVar9 = puVar9 + 1;
      } while (uVar12 != 0x100);
      uVar5 = 0;
    }
    else {
      puVar11 = puVar9 + 0x100;
      do {
        uVar1 = *puVar9;
        puVar9 = puVar9 + 1;
        if ((uVar1 & 0x800) != 0) {
          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
        }
        param_1 = param_1 + 1;
      } while (puVar11 != puVar9);
      uVar5 = 0;
    }
  }
  else {
    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);
    if (iVar4 == 0) {
      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
      puVar9 = (ushort *)*puVar6;
      if (param_1 == (byte *)0x0) {
        uVar12 = 0;
        do {
          iVar4 = (int)uVar12 >> 5;
          uVar2 = uVar12 & 0x1f;
          uVar12 = uVar12 + 1;
          puVar7 = (uint *)(param_2 + iVar4 * 4);
          if ((*puVar9 & 0x200) != 0) {
            *puVar7 = *puVar7 | 1 << uVar2;
          }
          puVar9 = puVar9 + 1;
        } while (uVar12 != 0x100);
        uVar5 = 0;
      }
      else {
        puVar11 = puVar9 + 0x100;
        do {
          uVar1 = *puVar9;
          puVar9 = puVar9 + 1;
          if ((uVar1 & 0x200) != 0) {
            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
          }
          param_1 = param_1 + 1;
        } while (puVar11 != puVar9);
        uVar5 = 0;
      }
    }
    else {
      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);
      if (iVar4 == 0) {
        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
        puVar9 = (ushort *)*puVar6;
        if (param_1 == (byte *)0x0) {
          uVar12 = 0;
          do {
            iVar4 = (int)uVar12 >> 5;
            uVar2 = uVar12 & 0x1f;
            uVar12 = uVar12 + 1;
            puVar7 = (uint *)(param_2 + iVar4 * 4);
            if ((*puVar9 & 2) != 0) {
              *puVar7 = *puVar7 | 1 << uVar2;
            }
            puVar9 = puVar9 + 1;
          } while (uVar12 != 0x100);
          uVar5 = 0;
        }
        else {
          puVar11 = puVar9 + 0x100;
          do {
            uVar1 = *puVar9;
            puVar9 = puVar9 + 1;
            if ((uVar1 & 2) != 0) {
              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
            }
            param_1 = param_1 + 1;
          } while (puVar11 != puVar9);
          uVar5 = 0;
        }
      }
      else {
        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);
        if (iVar4 == 0) {
          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
          puVar9 = (ushort *)*puVar6;
          if (param_1 == (byte *)0x0) {
            uVar12 = 0;
            do {
              iVar4 = (int)uVar12 >> 5;
              uVar2 = uVar12 & 0x1f;
              uVar12 = uVar12 + 1;
              puVar7 = (uint *)(param_2 + iVar4 * 4);
              if ((*puVar9 & 0x20) != 0) {
                *puVar7 = *puVar7 | 1 << uVar2;
              }
              puVar9 = puVar9 + 1;
            } while (uVar12 != 0x100);
            uVar5 = 0;
          }
          else {
            puVar11 = puVar9 + 0x100;
            do {
              uVar1 = *puVar9;
              puVar9 = puVar9 + 1;
              if ((uVar1 & 0x20) != 0) {
                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
              }
              param_1 = param_1 + 1;
            } while (puVar11 != puVar9);
            uVar5 = 0;
          }
        }
        else {
          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);
          if (iVar4 == 0) {
            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
            puVar9 = (ushort *)*puVar6;
            if (param_1 == (byte *)0x0) {
              uVar12 = 0;
              do {
                iVar4 = (int)uVar12 >> 5;
                uVar2 = uVar12 & 0x1f;
                uVar12 = uVar12 + 1;
                puVar7 = (uint *)(param_2 + iVar4 * 4);
                if ((*puVar9 & 4) != 0) {
                  *puVar7 = *puVar7 | 1 << uVar2;
                }
                puVar9 = puVar9 + 1;
              } while (uVar12 != 0x100);
              uVar5 = 0;
            }
            else {
              puVar11 = puVar9 + 0x100;
              do {
                uVar1 = *puVar9;
                puVar9 = puVar9 + 1;
                if ((uVar1 & 4) != 0) {
                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                }
                param_1 = param_1 + 1;
              } while (puVar11 != puVar9);
              uVar5 = 0;
            }
          }
          else {
            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);
            if (iVar4 == 0) {
              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
              puVar9 = (ushort *)*puVar6;
              if (param_1 == (byte *)0x0) {
                uVar12 = 0;
                do {
                  iVar4 = (int)uVar12 >> 5;
                  uVar2 = uVar12 & 0x1f;
                  uVar12 = uVar12 + 1;
                  puVar7 = (uint *)(param_2 + iVar4 * 4);
                  if ((*puVar9 & 8) != 0) {
                    *puVar7 = *puVar7 | 1 << uVar2;
                  }
                  puVar9 = puVar9 + 1;
                } while (uVar12 != 0x100);
                uVar5 = 0;
              }
              else {
                puVar11 = puVar9 + 0x100;
                do {
                  uVar1 = *puVar9;
                  puVar9 = puVar9 + 1;
                  if ((uVar1 & 8) != 0) {
                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                  }
                  param_1 = param_1 + 1;
                } while (puVar9 != puVar11);
                uVar5 = 0;
              }
            }
            else {
              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);
              if (iVar4 == 0) {
                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                puVar9 = (ushort *)*puVar6;
                if (param_1 == (byte *)0x0) {
                  uVar12 = 0;
                  do {
                    iVar4 = (int)uVar12 >> 5;
                    uVar2 = uVar12 & 0x1f;
                    uVar12 = uVar12 + 1;
                    puVar7 = (uint *)(param_2 + iVar4 * 4);
                    if ((*puVar9 & 0x40) != 0) {
                      *puVar7 = *puVar7 | 1 << uVar2;
                    }
                    puVar9 = puVar9 + 1;
                  } while (uVar12 != 0x100);
                  uVar5 = 0;
                }
                else {
                  puVar11 = puVar9 + 0x100;
                  do {
                    uVar1 = *puVar9;
                    puVar9 = puVar9 + 1;
                    if ((uVar1 & 0x40) != 0) {
                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                    }
                    param_1 = param_1 + 1;
                  } while (puVar11 != puVar9);
                  uVar5 = 0;
                }
              }
              else {
                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);
                if (iVar4 == 0) {
                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                  puVar9 = (ushort *)*puVar6;
                  if (param_1 == (byte *)0x0) {
                    uVar12 = 0;
                    do {
                      iVar4 = (int)uVar12 >> 5;
                      uVar2 = uVar12 & 0x1f;
                      uVar12 = uVar12 + 1;
                      puVar7 = (uint *)(param_2 + iVar4 * 4);
                      if ((*puVar9 & 1) != 0) {
                        *puVar7 = *puVar7 | 1 << uVar2;
                      }
                      puVar9 = puVar9 + 1;
                    } while (uVar12 != 0x100);
                    uVar5 = 0;
                  }
                  else {
                    puVar11 = puVar9 + 0x100;
                    do {
                      uVar1 = *puVar9;
                      puVar9 = puVar9 + 1;
                      if ((uVar1 & 1) != 0) {
                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                      }
                      param_1 = param_1 + 1;
                    } while (puVar11 != puVar9);
                    uVar5 = 0;
                  }
                }
                else {
                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);
                  if (iVar4 == 0) {
                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                    puVar9 = (ushort *)*puVar6;
                    if (param_1 == (byte *)0x0) {
                      uVar12 = 0;
                      do {
                        iVar4 = (int)uVar12 >> 5;
                        uVar2 = uVar12 & 0x1f;
                        uVar12 = uVar12 + 1;
                        puVar7 = (uint *)(param_2 + iVar4 * 4);
                        if ((*puVar9 & 0x100) != 0) {
                          *puVar7 = *puVar7 | 1 << uVar2;
                        }
                        puVar9 = puVar9 + 1;
                      } while (uVar12 != 0x100);
                      uVar5 = 0;
                    }
                    else {
                      puVar11 = puVar9 + 0x100;
                      do {
                        uVar1 = *puVar9;
                        puVar9 = puVar9 + 1;
                        if ((uVar1 & 0x100) != 0) {
                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                        }
                        param_1 = param_1 + 1;
                      } while (puVar9 != puVar11);
                      uVar5 = 0;
                    }
                  }
                  else {
                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);
                    if (iVar4 == 0) {
                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                      puVar9 = (ushort *)*puVar6;
                      if (param_1 == (byte *)0x0) {
                        uVar12 = 0;
                        do {
                          iVar4 = (int)uVar12 >> 5;
                          uVar2 = uVar12 & 0x1f;
                          uVar12 = uVar12 + 1;
                          puVar7 = (uint *)(param_2 + iVar4 * 4);
                          if ((*puVar9 & 0x80) != 0) {
                            *puVar7 = *puVar7 | 1 << uVar2;
                          }
                          puVar9 = puVar9 + 1;
                        } while (uVar12 != 0x100);
                        uVar5 = 0;
                      }
                      else {
                        puVar11 = puVar9 + 0x100;
                        do {
                          uVar1 = *puVar9;
                          puVar9 = puVar9 + 1;
                          if ((uVar1 & 0x80) != 0) {
                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                          }
                          param_1 = param_1 + 1;
                        } while (puVar11 != puVar9);
                        uVar5 = 0;
                      }
                    }
                    else {
                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);
                      if (iVar4 == 0) {
                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                        puVar9 = (ushort *)*puVar6;
                        if (param_1 == (byte *)0x0) {
                          uVar12 = 0;
                          do {
                            iVar4 = (int)uVar12 >> 5;
                            uVar2 = uVar12 & 0x1f;
                            uVar12 = uVar12 + 1;
                            puVar7 = (uint *)(param_2 + iVar4 * 4);
                            if ((*puVar9 & 0x400) != 0) {
                              *puVar7 = *puVar7 | 1 << uVar2;
                            }
                            puVar9 = puVar9 + 1;
                          } while (uVar12 != 0x100);
                          uVar5 = 0;
                        }
                        else {
                          puVar11 = puVar9 + 0x100;
                          do {
                            uVar1 = *puVar9;
                            puVar9 = puVar9 + 1;
                            if ((uVar1 & 0x400) != 0) {
                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                            }
                            param_1 = param_1 + 1;
                          } while (puVar11 != puVar9);
                          uVar5 = 0;
                        }
                      }
                      else {
                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);
                        if (iVar4 == 0) {
                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                          puVar9 = (ushort *)*puVar6;
                          if (param_1 == (byte *)0x0) {
                            uVar12 = 0;
                            do {
                              iVar4 = (int)uVar12 >> 5;
                              uVar2 = uVar12 & 0x1f;
                              uVar12 = uVar12 + 1;
                              puVar7 = (uint *)(param_2 + iVar4 * 4);
                              if ((*puVar9 & 0x10) != 0) {
                                *puVar7 = *puVar7 | 1 << uVar2;
                              }
                              puVar9 = puVar9 + 1;
                            } while (uVar12 != 0x100);
                            uVar5 = 0;
                          }
                          else {
                            iVar4 = 0;
                            do {
                              uVar1 = *puVar9;
                              pbVar10 = param_1 + iVar4;
                              puVar9 = puVar9 + 1;
                              iVar4 = iVar4 + 1;
                              if ((uVar1 & 0x10) != 0) {
                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);
                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);
                              }
                            } while (iVar4 != 0x100);
                            uVar5 = 0;
                          }
                        }
                        else {
                          uVar5 = 4;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return uVar5;
}


lui gp,0x2
addiu gp,gp,0x54e4
addu gp,gp,t9
addiu sp,sp,-0x38
lw v0,0x50(sp)
sw gp,0x10(sp)
sw s6,0x30(sp)
or s6,a2,zero
ext v0,v0,0x16,0x1
sw s5,0x2c(sp)
sw s4,0x28(sp)
or s5,a3,zero
sw s3,0x24(sp)
sw s2,0x20(sp)
or s2,a0,zero
sw s1,0x1c(sp)
or s1,a1,zero
sw ra,0x34(sp)
sw s0,0x18(sp)
lw s4,0x48(sp)
beq v0,zero,0x0001fca8
_lw s3,0x4c(sp)
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3b0c
bne v0,zero,0x0001fdf0
_lw gp,0x10(sp)
lw s3,-0x7fc8(gp)
addiu s3,s3,-0x3b14
lw v1,0x0(s5)
lw a0,0x0(s4)
beq a0,v1,0x0001ff08
_lw v0,0x0(s6)
addiu a1,v1,0x1
lw t9,-0x7dc0(gp)
sll v1,v1,0x2
or a0,s3,zero
sw a1,0x0(s5)
jalr t9
_addu s0,v0,v1
lw gp,0x10(sp)
or a0,s3,zero
sw v0,0x0(s0)
lw a1,-0x7fc8(gp)
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3afc
lw gp,0x10(sp)
beq v0,zero,0x0001fd98
_or s0,v0,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3af4
lw gp,0x10(sp)
bne v0,zero,0x0001fe18
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x00020070
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x200
addiu s0,s0,0x1
beq v1,zero,0x0001fd64
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0001fd38
_addiu a0,a0,0x2
or v0,zero,zero
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x00020028
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x800
addiu s0,s0,0x1
beq v1,zero,0x0001fde0
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0001fdb4
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3b04
bne v0,zero,0x0001fca8
_lw gp,0x10(sp)
lw s3,-0x7fc8(gp)
b 0x0001fca8
_addiu s3,s3,-0x3b14
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3b04
lw gp,0x10(sp)
beq v0,zero,0x0001feb0
_or s0,v0,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3aec
lw gp,0x10(sp)
bne v0,zero,0x0001ff38
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x000202bc
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x20
addiu s0,s0,0x1
beq v1,zero,0x0001fea0
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0001fe74
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x000200b8
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x2
addiu s0,s0,0x1
beq v1,zero,0x0001fef8
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0001fecc
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
sll s0,v1,0x1
lw t9,-0x7e14(gp)
or a0,v0,zero
addiu s0,s0,0x1
jalr t9
_sll a1,s0,0x2
beq v0,zero,0x000201f0
_lw gp,0x10(sp)
sw v0,0x0(s6)
sw s0,0x0(s4)
b 0x0001fcb8
_lw v1,0x0(s5)
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3b14
lw gp,0x10(sp)
beq v0,zero,0x0001ffd0
_or s0,v0,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3ae4
lw gp,0x10(sp)
bne v0,zero,0x00020100
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x00020304
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x8
addiu s0,s0,0x1
beq v1,zero,0x0001ffc0
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0001ff94
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x00020274
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x4
addiu s0,s0,0x1
beq v1,zero,0x00020018
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0001ffec
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
addiu a2,a0,0x200
li a3,0x1
lhu v0,0x0(a0)
andi v0,v0,0x800
beq v0,zero,0x00020060
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a3,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or v1,a1,v1
sw v1,0x0(v0)
bne a2,a0,0x00020030
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
addiu a2,a0,0x200
li a3,0x1
lhu v0,0x0(a0)
andi v0,v0,0x200
beq v0,zero,0x000200a8
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a3,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or v1,a1,v1
sw v1,0x0(v0)
bne a2,a0,0x00020078
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
addiu a2,a0,0x200
li a3,0x1
lhu v0,0x0(a0)
andi v0,v0,0x2
beq v0,zero,0x000200f0
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a3,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or v1,a1,v1
sw v1,0x0(v0)
bne a2,a0,0x000200c0
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3adc
lw gp,0x10(sp)
bne v0,zero,0x00020178
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x0002059c
_lw a0,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a1,a3,s0
sll v0,v0,0x2
andi v1,v1,0x40
addiu s0,s0,0x1
beq v1,zero,0x00020168
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a1
sw v1,0x0(v0)
bne s0,a2,0x0002013c
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3b0c
lw gp,0x10(sp)
bne v0,zero,0x000201f8
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x0002062c
_lw v1,0x0(v0)
li a3,0x1
li a2,0x100
sra v0,s0,0x5
lhu a0,0x0(v1)
sllv a1,a3,s0
sll v0,v0,0x2
andi a0,a0,0x1
addiu s0,s0,0x1
beq a0,zero,0x000201e0
_addu v0,s1,v0
lw a0,0x0(v0)
or a0,a0,a1
sw a0,0x0(v0)
bne s0,a2,0x000201b4
_addiu v1,v1,0x2
b 0x0001fd70
_or v0,zero,zero
b 0x0001fd70
_li v0,0xc
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3ad4
lw gp,0x10(sp)
bne v0,zero,0x0002034c
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
lw v0,0x0(v0)
bne s2,zero,0x000205e4
_or a0,v0,zero
li a2,0x1
li a1,0x100
sra v0,s0,0x5
lhu v1,0x0(a0)
sllv a3,a2,s0
sll v0,v0,0x2
andi v1,v1,0x100
addiu s0,s0,0x1
beq v1,zero,0x00020264
_addu v0,s1,v0
lw v1,0x0(v0)
or v1,v1,a3
sw v1,0x0(v0)
bne s0,a1,0x00020238
_addiu a0,a0,0x2
b 0x0001fd70
_or v0,zero,zero
addiu a2,a0,0x200
li a3,0x1
lhu v0,0x0(a0)
andi v0,v0,0x4
beq v0,zero,0x000202ac
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a3,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or v1,a1,v1
sw v1,0x0(v0)
bne a2,a0,0x0002027c
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
addiu a2,a0,0x200
li a3,0x1
lhu v0,0x0(a0)
andi v0,v0,0x20
beq v0,zero,0x000202f4
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a3,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or v1,a1,v1
sw v1,0x0(v0)
bne a2,a0,0x000202c4
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
addiu a1,a0,0x200
li a3,0x1
lhu v0,0x0(a0)
andi v0,v0,0x8
beq v0,zero,0x0002033c
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a3,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a2,0x0(v0)
or v1,a2,v1
sw v1,0x0(v0)
bne a0,a1,0x0002030c
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3acc
lw gp,0x10(sp)
bne v0,zero,0x0002040c
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x000203c4
_lw v0,0x0(v0)
li a2,0x1
li a1,0x100
sra v1,s0,0x5
lhu a0,0x0(v0)
sllv a3,a2,s0
sll v1,v1,0x2
andi a0,a0,0x80
addiu s0,s0,0x1
beq a0,zero,0x000203b4
_addu v1,s1,v1
lw a0,0x0(v1)
or a0,a0,a3
sw a0,0x0(v1)
bne s0,a1,0x00020388
_addiu v0,v0,0x2
b 0x0001fd70
_or v0,zero,zero
addiu a3,v0,0x200
li a2,0x1
lhu v1,0x0(v0)
andi v1,v1,0x80
beq v1,zero,0x000203fc
_addiu v0,v0,0x2
lbu a0,0x0(s2)
sra v1,a0,0x5
sllv a0,a2,a0
sll v1,v1,0x2
addu v1,s1,v1
lw a1,0x0(v1)
or a0,a1,a0
sw a0,0x0(v1)
bne a3,v0,0x000203cc
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3ac4
lw gp,0x10(sp)
bne v0,zero,0x000204cc
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x00020484
_lw v0,0x0(v0)
li a2,0x1
li a1,0x100
sra v1,s0,0x5
lhu a0,0x0(v0)
sllv a3,a2,s0
sll v1,v1,0x2
andi a0,a0,0x400
addiu s0,s0,0x1
beq a0,zero,0x00020474
_addu v1,s1,v1
lw a0,0x0(v1)
or a0,a0,a3
sw a0,0x0(v1)
bne s0,a1,0x00020448
_addiu v0,v0,0x2
b 0x0001fd70
_or v0,zero,zero
addiu a3,v0,0x200
li a2,0x1
lhu v1,0x0(v0)
andi v1,v1,0x400
beq v1,zero,0x000204bc
_addiu v0,v0,0x2
lbu a0,0x0(s2)
sra v1,a0,0x5
sllv a0,a2,a0
sll v1,v1,0x2
addu v1,s1,v1
lw a1,0x0(v1)
or a0,a1,a0
sw a0,0x0(v1)
bne a3,v0,0x0002048c
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7da0(gp)
jalr t9
_addiu a1,a1,-0x3abc
lw gp,0x10(sp)
bne v0,zero,0x00020594
_or s0,v0,zero
lw t9,-0x7eb8(gp)
jalr t9
_nop
bne s2,zero,0x00020544
_lw v0,0x0(v0)
li a2,0x1
li a1,0x100
sra v1,s0,0x5
lhu a0,0x0(v0)
sllv a3,a2,s0
sll v1,v1,0x2
andi a0,a0,0x10
addiu s0,s0,0x1
beq a0,zero,0x00020534
_addu v1,s1,v1
lw a0,0x0(v1)
or a0,a0,a3
sw a0,0x0(v1)
bne s0,a1,0x00020508
_addiu v0,v0,0x2
b 0x0001fd70
_or v0,zero,zero
li a3,0x1
li a2,0x100
lhu v1,0x0(v0)
addu a0,s2,s0
addiu v0,v0,0x2
andi v1,v1,0x10
beq v1,zero,0x00020584
_addiu s0,s0,0x1
lbu a0,0x0(a0)
sra v1,a0,0x5
sllv a0,a3,a0
sll v1,v1,0x2
addu v1,s1,v1
lw a1,0x0(v1)
or a0,a1,a0
sw a0,0x0(v1)
bne s0,a2,0x0002054c
_nop
b 0x0001fd70
_or v0,zero,zero
b 0x0001fd70
_li v0,0x4
addiu a3,a0,0x200
li a2,0x1
lhu v0,0x0(a0)
andi v0,v0,0x40
beq v0,zero,0x000205d4
_addiu a0,a0,0x2
lbu v1,0x0(s2)
sra v0,v1,0x5
sllv v1,a2,v1
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or v1,a1,v1
sw v1,0x0(v0)
bne a3,a0,0x000205a4
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
addiu a3,v0,0x200
li a2,0x1
lhu v1,0x0(v0)
andi v1,v1,0x100
beq v1,zero,0x0002061c
_addiu v0,v0,0x2
lbu a0,0x0(s2)
sra v1,a0,0x5
sllv a0,a2,a0
sll v1,v1,0x2
addu v1,s1,v1
lw a1,0x0(v1)
or a0,a1,a0
sw a0,0x0(v1)
bne v0,a3,0x000205ec
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
addiu a3,v1,0x200
li a2,0x1
lhu v0,0x0(v1)
andi v0,v0,0x1
beq v0,zero,0x00020664
_addiu v1,v1,0x2
lbu a0,0x0(s2)
sra v0,a0,0x5
sllv a0,a2,a0
sll v0,v0,0x2
addu v0,s1,v0
lw a1,0x0(v0)
or a0,a1,a0
sw a0,0x0(v0)
bne a3,v1,0x00020634
_addiu s2,s2,0x1
b 0x0001fd70
_or v0,zero,zero
(translation_unit "undefined4\nFUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined4\nFUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)" identifier (parameter_list "(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "ushort *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (if_statement "if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }" if (parenthesized_expression "(param_7 << 9 < 0)" ( (binary_expression "param_7 << 9 < 0" (binary_expression "param_7 << 9" identifier << number_literal) < number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b0c)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b0c" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }" { (expression_statement "param_6 = PTR_DAT_0003d148 + -0x3b14;" (assignment_expression "param_6 = PTR_DAT_0003d148 + -0x3b14" identifier = (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" else (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b04)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b04" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }" { (expression_statement "param_6 = PTR_DAT_0003d148 + -0x3b14;" (assignment_expression "param_6 = PTR_DAT_0003d148 + -0x3b14" identifier = (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal)) ;) })) }))) })) (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "iVar4 = *param_3;" (assignment_expression "iVar4 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }" if (parenthesized_expression "(*param_5 == iVar8)" ( (binary_expression "*param_5 == iVar8" (pointer_expression "*param_5" * identifier) == identifier) )) (compound_statement "{\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }" { (expression_statement "iVar8 = iVar8 * 2 + 1;" (assignment_expression "iVar8 = iVar8 * 2 + 1" identifier = (binary_expression "iVar8 * 2 + 1" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);" (assignment_expression "iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4)" identifier = (call_expression "(*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4)" (parenthesized_expression "(*(code *)PTR_realloc_0003d2fc)" ( (pointer_expression "*(code *)PTR_realloc_0003d2fc" * (cast_expression "(code *)PTR_realloc_0003d2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,iVar8 * 4)" ( identifier , (binary_expression "iVar8 * 4" identifier * number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      return 0xc;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0xc;\n    }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "*param_3 = iVar4;" (assignment_expression "*param_3 = iVar4" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_5 = iVar8;" (assignment_expression "*param_5 = iVar8" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) })) (expression_statement "puVar3 = PTR_wctype_0003d350;" (assignment_expression "puVar3 = PTR_wctype_0003d350" identifier = identifier) ;) (expression_statement "*param_4 = iVar8 + 1;" (assignment_expression "*param_4 = iVar8 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (*(code *)puVar3)(param_6);" (assignment_expression "uVar5 = (*(code *)puVar3)(param_6)" identifier = (call_expression "(*(code *)puVar3)(param_6)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar4 + iVar8 * 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar4 + iVar8 * 4)" * (cast_expression "(undefined4 *)(iVar4 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar8 * 4)" ( (binary_expression "iVar4 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3afc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3afc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);" do (compound_statement "{\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }" if (parenthesized_expression "((*puVar9 & 0x800) != 0)" ( (binary_expression "(*puVar9 & 0x800) != 0" (parenthesized_expression "(*puVar9 & 0x800)" ( (binary_expression "*puVar9 & 0x800" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" else (compound_statement "{\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);" do (compound_statement "{\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }" if (parenthesized_expression "((uVar1 & 0x800) != 0)" ( (binary_expression "(uVar1 & 0x800) != 0" (parenthesized_expression "(uVar1 & 0x800)" ( (binary_expression "uVar1 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3af4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3af4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);" do (compound_statement "{\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }" if (parenthesized_expression "((*puVar9 & 0x200) != 0)" ( (binary_expression "(*puVar9 & 0x200) != 0" (parenthesized_expression "(*puVar9 & 0x200)" ( (binary_expression "*puVar9 & 0x200" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" else (compound_statement "{\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);" do (compound_statement "{\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }" if (parenthesized_expression "((uVar1 & 0x200) != 0)" ( (binary_expression "(uVar1 & 0x200) != 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" else (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b04)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b04" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);" do (compound_statement "{\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }" if (parenthesized_expression "((*puVar9 & 2) != 0)" ( (binary_expression "(*puVar9 & 2) != 0" (parenthesized_expression "(*puVar9 & 2)" ( (binary_expression "*puVar9 & 2" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" else (compound_statement "{\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);" do (compound_statement "{\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }" if (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3aec)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3aec" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);" do (compound_statement "{\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }" if (parenthesized_expression "((*puVar9 & 0x20) != 0)" ( (binary_expression "(*puVar9 & 0x20) != 0" (parenthesized_expression "(*puVar9 & 0x20)" ( (binary_expression "*puVar9 & 0x20" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" else (compound_statement "{\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);" do (compound_statement "{\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }" if (parenthesized_expression "((uVar1 & 0x20) != 0)" ( (binary_expression "(uVar1 & 0x20) != 0" (parenthesized_expression "(uVar1 & 0x20)" ( (binary_expression "uVar1 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b14)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);" do (compound_statement "{\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }" if (parenthesized_expression "((*puVar9 & 4) != 0)" ( (binary_expression "(*puVar9 & 4) != 0" (parenthesized_expression "(*puVar9 & 4)" ( (binary_expression "*puVar9 & 4" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" else (compound_statement "{\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);" do (compound_statement "{\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ae4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ae4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);" do (compound_statement "{\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }" if (parenthesized_expression "((*puVar9 & 8) != 0)" ( (binary_expression "(*puVar9 & 8) != 0" (parenthesized_expression "(*puVar9 & 8)" ( (binary_expression "*puVar9 & 8" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" else (compound_statement "{\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);" do (compound_statement "{\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }" if (parenthesized_expression "((uVar1 & 8) != 0)" ( (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != puVar11)" ( (binary_expression "puVar9 != puVar11" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3adc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3adc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);" do (compound_statement "{\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }" if (parenthesized_expression "((*puVar9 & 0x40) != 0)" ( (binary_expression "(*puVar9 & 0x40) != 0" (parenthesized_expression "(*puVar9 & 0x40)" ( (binary_expression "*puVar9 & 0x40" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" else (compound_statement "{\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);" do (compound_statement "{\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }" if (parenthesized_expression "((uVar1 & 0x40) != 0)" ( (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b0c)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b0c" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);" do (compound_statement "{\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }" if (parenthesized_expression "((*puVar9 & 1) != 0)" ( (binary_expression "(*puVar9 & 1) != 0" (parenthesized_expression "(*puVar9 & 1)" ( (binary_expression "*puVar9 & 1" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" else (compound_statement "{\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);" do (compound_statement "{\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }" if (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ad4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ad4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);" do (compound_statement "{\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }" if (parenthesized_expression "((*puVar9 & 0x100) != 0)" ( (binary_expression "(*puVar9 & 0x100) != 0" (parenthesized_expression "(*puVar9 & 0x100)" ( (binary_expression "*puVar9 & 0x100" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" else (compound_statement "{\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);" do (compound_statement "{\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }" if (parenthesized_expression "((uVar1 & 0x100) != 0)" ( (binary_expression "(uVar1 & 0x100) != 0" (parenthesized_expression "(uVar1 & 0x100)" ( (binary_expression "uVar1 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != puVar11)" ( (binary_expression "puVar9 != puVar11" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3acc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3acc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);" do (compound_statement "{\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }" if (parenthesized_expression "((*puVar9 & 0x80) != 0)" ( (binary_expression "(*puVar9 & 0x80) != 0" (parenthesized_expression "(*puVar9 & 0x80)" ( (binary_expression "*puVar9 & 0x80" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" else (compound_statement "{\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);" do (compound_statement "{\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }" if (parenthesized_expression "((uVar1 & 0x80) != 0)" ( (binary_expression "(uVar1 & 0x80) != 0" (parenthesized_expression "(uVar1 & 0x80)" ( (binary_expression "uVar1 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" else (compound_statement "{\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ac4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ac4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);" do (compound_statement "{\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }" if (parenthesized_expression "((*puVar9 & 0x400) != 0)" ( (binary_expression "(*puVar9 & 0x400) != 0" (parenthesized_expression "(*puVar9 & 0x400)" ( (binary_expression "*puVar9 & 0x400" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" else (compound_statement "{\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);" do (compound_statement "{\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }" if (parenthesized_expression "((uVar1 & 0x400) != 0)" ( (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" ( (binary_expression "uVar1 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" else (compound_statement "{\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3abc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3abc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);" do (compound_statement "{\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }" if (parenthesized_expression "((*puVar9 & 0x10) != 0)" ( (binary_expression "(*puVar9 & 0x10) != 0" (parenthesized_expression "(*puVar9 & 0x10)" ( (binary_expression "*puVar9 & 0x10" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" else (compound_statement "{\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);" do (compound_statement "{\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pbVar10 = param_1 + iVar4;" (assignment_expression "pbVar10 = param_1 + iVar4" identifier = (binary_expression "param_1 + iVar4" identifier + identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }" if (parenthesized_expression "((uVar1 & 0x10) != 0)" ( (binary_expression "(uVar1 & 0x10) != 0" (parenthesized_expression "(uVar1 & 0x10)" ( (binary_expression "uVar1 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*pbVar10 >> 5) * 4" identifier + (binary_expression "((int)(uint)*pbVar10 >> 5) * 4" (parenthesized_expression "((int)(uint)*pbVar10 >> 5)" ( (binary_expression "(int)(uint)*pbVar10 >> 5" (binary_expression "(int)(uint)*pbVar10" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*pbVar10 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*pbVar10 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar10 & 0x1f)" ( (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" * identifier) & number_literal) ))))) ;) })) }) while (parenthesized_expression "(iVar4 != 0x100)" ( (binary_expression "iVar4 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                          uVar5 = 4;\n                        }" else (compound_statement "{\n                          uVar5 = 4;\n                        }" { (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" identifier = number_literal) ;) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: reg_errcode_t build_charclass(uchar * trans, bitset_word_t * sbcset,\n   re_charset_t * mbcset, Idx * char_class_alloc, char * class_name, reg_syntax_t syntax,\n   re_charset_t * mbcset) */\n\nreg_errcode_t\nbuild_charclass(uchar *trans,bitset_word_t *sbcset,re_charset_t *mbcset,Idx *char_class_alloc,\n               char *class_name,reg_syntax_t syntax,re_charset_t *mbcset_1)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  wchar_t *pwVar5;\n  wchar_t wVar6;\n  undefined4 *puVar7;\n  reg_errcode_t rVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if ((int)mbcset_1 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }\n  }\n  iVar4 = *char_class_alloc;\n  pwVar5 = mbcset->mbchars;\n  if (*(int *)class_name == iVar4) {\n    iVar4 = iVar4 * 2 + 1;\n    pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);\n    if (pwVar5 == (wchar_t *)0x0) {\n      return _REG_ESPACE;\n    }\n    mbcset->mbchars = pwVar5;\n    *(int *)class_name = iVar4;\n    iVar4 = *char_class_alloc;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *char_class_alloc = iVar4 + 1;\n  wVar6 = (*(code *)puVar3)(syntax);\n  pwVar5[iVar4] = wVar6;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar7;\n    if (trans == (uchar *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return rVar8;\n}\n\n" comment (function_definition "reg_errcode_t\nbuild_charclass(uchar *trans,bitset_word_t *sbcset,re_charset_t *mbcset,Idx *char_class_alloc,\n               char *class_name,reg_syntax_t syntax,re_charset_t *mbcset_1)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  wchar_t *pwVar5;\n  wchar_t wVar6;\n  undefined4 *puVar7;\n  reg_errcode_t rVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if ((int)mbcset_1 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }\n  }\n  iVar4 = *char_class_alloc;\n  pwVar5 = mbcset->mbchars;\n  if (*(int *)class_name == iVar4) {\n    iVar4 = iVar4 * 2 + 1;\n    pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);\n    if (pwVar5 == (wchar_t *)0x0) {\n      return _REG_ESPACE;\n    }\n    mbcset->mbchars = pwVar5;\n    *(int *)class_name = iVar4;\n    iVar4 = *char_class_alloc;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *char_class_alloc = iVar4 + 1;\n  wVar6 = (*(code *)puVar3)(syntax);\n  pwVar5[iVar4] = wVar6;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar7;\n    if (trans == (uchar *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return rVar8;\n}" type_identifier (function_declarator "build_charclass(uchar *trans,bitset_word_t *sbcset,re_charset_t *mbcset,Idx *char_class_alloc,\n               char *class_name,reg_syntax_t syntax,re_charset_t *mbcset_1)" identifier (parameter_list "(uchar *trans,bitset_word_t *sbcset,re_charset_t *mbcset,Idx *char_class_alloc,\n               char *class_name,reg_syntax_t syntax,re_charset_t *mbcset_1)" ( (parameter_declaration "uchar *trans" type_identifier (pointer_declarator "*trans" * identifier)) , (parameter_declaration "bitset_word_t *sbcset" type_identifier (pointer_declarator "*sbcset" * identifier)) , (parameter_declaration "re_charset_t *mbcset" type_identifier (pointer_declarator "*mbcset" * identifier)) , (parameter_declaration "Idx *char_class_alloc" type_identifier (pointer_declarator "*char_class_alloc" * identifier)) , (parameter_declaration "char *class_name" primitive_type (pointer_declarator "*class_name" * identifier)) , (parameter_declaration "reg_syntax_t syntax" type_identifier identifier) , (parameter_declaration "re_charset_t *mbcset_1" type_identifier (pointer_declarator "*mbcset_1" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  wchar_t *pwVar5;\n  wchar_t wVar6;\n  undefined4 *puVar7;\n  reg_errcode_t rVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if ((int)mbcset_1 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }\n  }\n  iVar4 = *char_class_alloc;\n  pwVar5 = mbcset->mbchars;\n  if (*(int *)class_name == iVar4) {\n    iVar4 = iVar4 * 2 + 1;\n    pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);\n    if (pwVar5 == (wchar_t *)0x0) {\n      return _REG_ESPACE;\n    }\n    mbcset->mbchars = pwVar5;\n    *(int *)class_name = iVar4;\n    iVar4 = *char_class_alloc;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *char_class_alloc = iVar4 + 1;\n  wVar6 = (*(code *)puVar3)(syntax);\n  pwVar5[iVar4] = wVar6;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar7;\n    if (trans == (uchar *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return rVar8;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "wchar_t *pwVar5;" type_identifier (pointer_declarator "*pwVar5" * identifier) ;) (declaration "wchar_t wVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "reg_errcode_t rVar8;" type_identifier identifier ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "ushort *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (if_statement "if ((int)mbcset_1 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }\n  }" if (parenthesized_expression "((int)mbcset_1 << 9 < 0)" ( (binary_expression "(int)mbcset_1 << 9 < 0" (binary_expression "(int)mbcset_1 << 9" (cast_expression "(int)mbcset_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) < number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3b0c)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b0c" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n    }" { (expression_statement "syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);" (assignment_expression "syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14)" identifier = (call_expression "(reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14)" (parenthesized_expression "(reg_syntax_t)" ( identifier )) (argument_list "(PTR_DAT_0003d148 + -0x3b14)" ( (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal) )))) ;) }) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }" else (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }\n    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3b04)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b04" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);\n      }" { (expression_statement "syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14);" (assignment_expression "syntax = (reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14)" identifier = (call_expression "(reg_syntax_t)(PTR_DAT_0003d148 + -0x3b14)" (parenthesized_expression "(reg_syntax_t)" ( identifier )) (argument_list "(PTR_DAT_0003d148 + -0x3b14)" ( (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal) )))) ;) })) }))) })) (expression_statement "iVar4 = *char_class_alloc;" (assignment_expression "iVar4 = *char_class_alloc" identifier = (pointer_expression "*char_class_alloc" * identifier)) ;) (expression_statement "pwVar5 = mbcset->mbchars;" (assignment_expression "pwVar5 = mbcset->mbchars" identifier = (field_expression "mbcset->mbchars" identifier -> field_identifier)) ;) (if_statement "if (*(int *)class_name == iVar4) {\n    iVar4 = iVar4 * 2 + 1;\n    pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);\n    if (pwVar5 == (wchar_t *)0x0) {\n      return _REG_ESPACE;\n    }\n    mbcset->mbchars = pwVar5;\n    *(int *)class_name = iVar4;\n    iVar4 = *char_class_alloc;\n  }" if (parenthesized_expression "(*(int *)class_name == iVar4)" ( (binary_expression "*(int *)class_name == iVar4" (pointer_expression "*(int *)class_name" * (cast_expression "(int *)class_name" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n    iVar4 = iVar4 * 2 + 1;\n    pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);\n    if (pwVar5 == (wchar_t *)0x0) {\n      return _REG_ESPACE;\n    }\n    mbcset->mbchars = pwVar5;\n    *(int *)class_name = iVar4;\n    iVar4 = *char_class_alloc;\n  }" { (expression_statement "iVar4 = iVar4 * 2 + 1;" (assignment_expression "iVar4 = iVar4 * 2 + 1" identifier = (binary_expression "iVar4 * 2 + 1" (binary_expression "iVar4 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4);" (assignment_expression "pwVar5 = (wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4)" identifier = (cast_expression "(wchar_t *)(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_realloc_0003d2fc)(pwVar5,iVar4 * 4)" (parenthesized_expression "(*(code *)PTR_realloc_0003d2fc)" ( (pointer_expression "*(code *)PTR_realloc_0003d2fc" * (cast_expression "(code *)PTR_realloc_0003d2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pwVar5,iVar4 * 4)" ( identifier , (binary_expression "iVar4 * 4" identifier * number_literal) ))))) ;) (if_statement "if (pwVar5 == (wchar_t *)0x0) {\n      return _REG_ESPACE;\n    }" if (parenthesized_expression "(pwVar5 == (wchar_t *)0x0)" ( (binary_expression "pwVar5 == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return _REG_ESPACE;\n    }" { (return_statement "return _REG_ESPACE;" return identifier ;) })) (expression_statement "mbcset->mbchars = pwVar5;" (assignment_expression "mbcset->mbchars = pwVar5" (field_expression "mbcset->mbchars" identifier -> field_identifier) = identifier) ;) (expression_statement "*(int *)class_name = iVar4;" (assignment_expression "*(int *)class_name = iVar4" (pointer_expression "*(int *)class_name" * (cast_expression "(int *)class_name" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "iVar4 = *char_class_alloc;" (assignment_expression "iVar4 = *char_class_alloc" identifier = (pointer_expression "*char_class_alloc" * identifier)) ;) })) (expression_statement "puVar3 = PTR_wctype_0003d350;" (assignment_expression "puVar3 = PTR_wctype_0003d350" identifier = identifier) ;) (expression_statement "*char_class_alloc = iVar4 + 1;" (assignment_expression "*char_class_alloc = iVar4 + 1" (pointer_expression "*char_class_alloc" * identifier) = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "wVar6 = (*(code *)puVar3)(syntax);" (assignment_expression "wVar6 = (*(code *)puVar3)(syntax)" identifier = (call_expression "(*(code *)puVar3)(syntax)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax)" ( identifier )))) ;) (expression_statement "pwVar5[iVar4] = wVar6;" (assignment_expression "pwVar5[iVar4] = wVar6" (subscript_expression "pwVar5[iVar4]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3afc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3afc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3afc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar7;\n    if (trans == (uchar *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar7;\n    if (trans == (uchar *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }\n  }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      rVar8 = _REG_NOERROR;\n    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);" do (compound_statement "{\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x800) != 0) {\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }" if (parenthesized_expression "((*puVar9 & 0x800) != 0)" ( (binary_expression "(*puVar9 & 0x800) != 0" (parenthesized_expression "(*puVar9 & 0x800)" ( (binary_expression "*puVar9 & 0x800" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n        }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }" else (compound_statement "{\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);\n      rVar8 = _REG_NOERROR;\n    }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      } while (puVar11 != puVar9);" do (compound_statement "{\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }\n        trans = trans + 1;\n      }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x800) != 0) {\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }" if (parenthesized_expression "((uVar1 & 0x800) != 0)" ( (binary_expression "(uVar1 & 0x800) != 0" (parenthesized_expression "(uVar1 & 0x800)" ( (binary_expression "uVar1 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n        }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3af4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3af4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3af4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar7;\n      if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }\n    }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        rVar8 = _REG_NOERROR;\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);" do (compound_statement "{\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x200) != 0) {\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }" if (parenthesized_expression "((*puVar9 & 0x200) != 0)" ( (binary_expression "(*puVar9 & 0x200) != 0" (parenthesized_expression "(*puVar9 & 0x200)" ( (binary_expression "*puVar9 & 0x200" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n          }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }" else (compound_statement "{\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);\n        rVar8 = _REG_NOERROR;\n      }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        } while (puVar11 != puVar9);" do (compound_statement "{\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }\n          trans = trans + 1;\n        }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x200) != 0) {\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }" if (parenthesized_expression "((uVar1 & 0x200) != 0)" ( (binary_expression "(uVar1 & 0x200) != 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n          }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" else (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3b04)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b04" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar7;\n        if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }\n      }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          rVar8 = _REG_NOERROR;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);" do (compound_statement "{\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 2) != 0) {\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }" if (parenthesized_expression "((*puVar9 & 2) != 0)" ( (binary_expression "(*puVar9 & 2) != 0" (parenthesized_expression "(*puVar9 & 2)" ( (binary_expression "*puVar9 & 2" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n            }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }" else (compound_statement "{\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);\n          rVar8 = _REG_NOERROR;\n        }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          } while (puVar11 != puVar9);" do (compound_statement "{\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }\n            trans = trans + 1;\n          }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 2) != 0) {\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }" if (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;\n            }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)\n              ;" (assignment_expression "sbcset[(int)(uint)*trans >> 5] = sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3aec)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3aec)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3aec" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar7;\n          if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }\n        }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            rVar8 = _REG_NOERROR;\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);" do (compound_statement "{\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x20) != 0) {\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }" if (parenthesized_expression "((*puVar9 & 0x20) != 0)" ( (binary_expression "(*puVar9 & 0x20) != 0" (parenthesized_expression "(*puVar9 & 0x20)" ( (binary_expression "*puVar9 & 0x20" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n              }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }" else (compound_statement "{\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);\n            rVar8 = _REG_NOERROR;\n          }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            } while (puVar11 != puVar9);" do (compound_statement "{\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }\n              trans = trans + 1;\n            }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x20) != 0) {\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }" if (parenthesized_expression "((uVar1 & 0x20) != 0)" ( (binary_expression "(uVar1 & 0x20) != 0" (parenthesized_expression "(uVar1 & 0x20)" ( (binary_expression "uVar1 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n              }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                     sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b14)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3b14)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar7;\n            if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }\n          }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              rVar8 = _REG_NOERROR;\n            }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);" do (compound_statement "{\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 4) != 0) {\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }" if (parenthesized_expression "((*puVar9 & 4) != 0)" ( (binary_expression "(*puVar9 & 4) != 0" (parenthesized_expression "(*puVar9 & 4)" ( (binary_expression "*puVar9 & 4" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }" else (compound_statement "{\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);\n              rVar8 = _REG_NOERROR;\n            }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              } while (puVar11 != puVar9);" do (compound_statement "{\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }\n                trans = trans + 1;\n              }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                       sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ae4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3ae4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ae4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar7;\n              if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }\n            }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                rVar8 = _REG_NOERROR;\n              }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);" do (compound_statement "{\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 8) != 0) {\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }" if (parenthesized_expression "((*puVar9 & 8) != 0)" ( (binary_expression "(*puVar9 & 8) != 0" (parenthesized_expression "(*puVar9 & 8)" ( (binary_expression "*puVar9 & 8" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                  }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }" else (compound_statement "{\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);\n                rVar8 = _REG_NOERROR;\n              }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                } while (puVar9 != puVar11);" do (compound_statement "{\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }\n                  trans = trans + 1;\n                }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 8) != 0) {\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }" if (parenthesized_expression "((uVar1 & 8) != 0)" ( (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                  }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                         sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != puVar11)" ( (binary_expression "puVar9 != puVar11" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3adc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3adc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3adc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar7;\n                if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }\n              }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  rVar8 = _REG_NOERROR;\n                }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);" do (compound_statement "{\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x40) != 0) {\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }" if (parenthesized_expression "((*puVar9 & 0x40) != 0)" ( (binary_expression "(*puVar9 & 0x40) != 0" (parenthesized_expression "(*puVar9 & 0x40)" ( (binary_expression "*puVar9 & 0x40" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                      sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                    }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }" else (compound_statement "{\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);\n                  rVar8 = _REG_NOERROR;\n                }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  } while (puVar11 != puVar9);" do (compound_statement "{\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }\n                    trans = trans + 1;\n                  }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x40) != 0) {\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }" if (parenthesized_expression "((uVar1 & 0x40) != 0)" ( (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                    }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                           sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3b0c)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b0c" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar7;\n                  if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }\n                }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    rVar8 = _REG_NOERROR;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);" do (compound_statement "{\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 1) != 0) {\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }" if (parenthesized_expression "((*puVar9 & 1) != 0)" ( (binary_expression "(*puVar9 & 1) != 0" (parenthesized_expression "(*puVar9 & 1)" ( (binary_expression "*puVar9 & 1" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                        sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                      }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }" else (compound_statement "{\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);\n                    rVar8 = _REG_NOERROR;\n                  }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    } while (puVar11 != puVar9);" do (compound_statement "{\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }\n                      trans = trans + 1;\n                    }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 1) != 0) {\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }" if (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                      }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                             sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ad4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3ad4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ad4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar7;\n                    if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }\n                  }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      rVar8 = _REG_NOERROR;\n                    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);" do (compound_statement "{\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x100) != 0) {\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }" if (parenthesized_expression "((*puVar9 & 0x100) != 0)" ( (binary_expression "(*puVar9 & 0x100) != 0" (parenthesized_expression "(*puVar9 & 0x100)" ( (binary_expression "*puVar9 & 0x100" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                          sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                        }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }" else (compound_statement "{\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);\n                      rVar8 = _REG_NOERROR;\n                    }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      } while (puVar9 != puVar11);" do (compound_statement "{\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }\n                        trans = trans + 1;\n                      }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x100) != 0) {\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }" if (parenthesized_expression "((uVar1 & 0x100) != 0)" ( (binary_expression "(uVar1 & 0x100) != 0" (parenthesized_expression "(uVar1 & 0x100)" ( (binary_expression "uVar1 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                          sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                        }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                               sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != puVar11)" ( (binary_expression "puVar9 != puVar11" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }\n                  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3acc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3acc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3acc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar7;\n                      if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }\n                    }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        rVar8 = _REG_NOERROR;\n                      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);" do (compound_statement "{\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x80) != 0) {\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }" if (parenthesized_expression "((*puVar9 & 0x80) != 0)" ( (binary_expression "(*puVar9 & 0x80) != 0" (parenthesized_expression "(*puVar9 & 0x80)" ( (binary_expression "*puVar9 & 0x80" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                            sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                          }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }" else (compound_statement "{\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);\n                        rVar8 = _REG_NOERROR;\n                      }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        } while (puVar11 != puVar9);" do (compound_statement "{\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }\n                          trans = trans + 1;\n                        }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x80) != 0) {\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }" if (parenthesized_expression "((uVar1 & 0x80) != 0)" ( (binary_expression "(uVar1 & 0x80) != 0" (parenthesized_expression "(uVar1 & 0x80)" ( (binary_expression "uVar1 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                            sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                          }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                                 sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }" else (compound_statement "{\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }\n                    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3ac4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3ac4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ac4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                        puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar7;\n                        if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }\n                      }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          rVar8 = _REG_NOERROR;\n                        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);" do (compound_statement "{\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x400) != 0) {\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }" if (parenthesized_expression "((*puVar9 & 0x400) != 0)" ( (binary_expression "(*puVar9 & 0x400) != 0" (parenthesized_expression "(*puVar9 & 0x400)" ( (binary_expression "*puVar9 & 0x400" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                              sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                            }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }" else (compound_statement "{\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);\n                          rVar8 = _REG_NOERROR;\n                        }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          } while (puVar11 != puVar9);" do (compound_statement "{\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }\n                            trans = trans + 1;\n                          }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x400) != 0) {\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }" if (parenthesized_expression "((uVar1 & 0x400) != 0)" ( (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" ( (binary_expression "uVar1 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                              sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);\n                            }" { (expression_statement "sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f);" (assignment_expression "sbcset[(int)(uint)*trans >> 5] =\n                                   sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*trans >> 5] | 1 << (*trans & 0x1f)" (subscript_expression "sbcset[(int)(uint)*trans >> 5]" identifier [ (binary_expression "(int)(uint)*trans >> 5" (binary_expression "(int)(uint)*trans" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*trans & 0x1f)" number_literal << (parenthesized_expression "(*trans & 0x1f)" ( (binary_expression "*trans & 0x1f" (pointer_expression "*trans" * identifier) & number_literal) ))))) ;) })) (expression_statement "trans = trans + 1;" (assignment_expression "trans = trans + 1" identifier = (binary_expression "trans + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }" else (compound_statement "{\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }\n                      }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(syntax,PTR_DAT_0003d148 + -0x3abc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(syntax,PTR_DAT_0003d148 + -0x3abc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3abc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }\n                        else {\n                          rVar8 = _REG_ECTYPE;\n                        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                          puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar7;\n                          if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                        }" { (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar7;" (assignment_expression "puVar9 = (ushort *)*puVar7" identifier = (cast_expression "(ushort *)*puVar7" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (trans == (uchar *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }" if (parenthesized_expression "(trans == (uchar *)0x0)" ( (binary_expression "trans == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);" do (compound_statement "{\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if ((*puVar9 & 0x10) != 0) {\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }" if (parenthesized_expression "((*puVar9 & 0x10) != 0)" ( (binary_expression "(*puVar9 & 0x10) != 0" (parenthesized_expression "(*puVar9 & 0x10)" ( (binary_expression "*puVar9 & 0x10" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                                sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;\n                              }" { (expression_statement "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2;" (assignment_expression "sbcset[iVar4] = sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) = (binary_expression "sbcset[iVar4] | 1 << uVar2" (subscript_expression "sbcset[iVar4]" identifier [ identifier ]) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }) (else_clause "else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }" else (compound_statement "{\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            rVar8 = _REG_NOERROR;\n                          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);" do (compound_statement "{\n                              uVar1 = *puVar9;\n                              pbVar10 = trans + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }\n                            }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pbVar10 = trans + iVar4;" (assignment_expression "pbVar10 = trans + iVar4" identifier = (binary_expression "trans + iVar4" identifier + identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x10) != 0) {\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }" if (parenthesized_expression "((uVar1 & 0x10) != 0)" ( (binary_expression "(uVar1 & 0x10) != 0" (parenthesized_expression "(uVar1 & 0x10)" ( (binary_expression "uVar1 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                                sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);\n                              }" { (expression_statement "sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f);" (assignment_expression "sbcset[(int)(uint)*pbVar10 >> 5] =\n                                     sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f)" (subscript_expression "sbcset[(int)(uint)*pbVar10 >> 5]" identifier [ (binary_expression "(int)(uint)*pbVar10 >> 5" (binary_expression "(int)(uint)*pbVar10" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) = (binary_expression "sbcset[(int)(uint)*pbVar10 >> 5] | 1 << (*pbVar10 & 0x1f)" (subscript_expression "sbcset[(int)(uint)*pbVar10 >> 5]" identifier [ (binary_expression "(int)(uint)*pbVar10 >> 5" (binary_expression "(int)(uint)*pbVar10" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) ]) | (binary_expression "1 << (*pbVar10 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar10 & 0x1f)" ( (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" * identifier) & number_literal) ))))) ;) })) }) while (parenthesized_expression "(iVar4 != 0x100)" ( (binary_expression "iVar4 != 0x100" identifier != number_literal) )) ;) (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;) }))) }) (else_clause "else {\n                          rVar8 = _REG_ECTYPE;\n                        }" else (compound_statement "{\n                          rVar8 = _REG_ECTYPE;\n                        }" { (expression_statement "rVar8 = _REG_ECTYPE;" (assignment_expression "rVar8 = _REG_ECTYPE" identifier = identifier) ;) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) (return_statement "return rVar8;" return identifier ;) })))
(translation_unit "undefined4\nFUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined4\nFUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)" identifier (parameter_list "(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "ushort *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (if_statement "if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }" if (parenthesized_expression "(param_7 << 9 < 0)" ( (binary_expression "param_7 << 9 < 0" (binary_expression "param_7 << 9" identifier << number_literal) < number_literal) )) (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b0c)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b0c" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }" { (expression_statement "param_6 = PTR_DAT_0003d148 + -0x3b14;" (assignment_expression "param_6 = PTR_DAT_0003d148 + -0x3b14" identifier = (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" else (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b04)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b04" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }" { (expression_statement "param_6 = PTR_DAT_0003d148 + -0x3b14;" (assignment_expression "param_6 = PTR_DAT_0003d148 + -0x3b14" identifier = (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal)) ;) })) }))) })) (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "iVar4 = *param_3;" (assignment_expression "iVar4 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }" if (parenthesized_expression "(*param_5 == iVar8)" ( (binary_expression "*param_5 == iVar8" (pointer_expression "*param_5" * identifier) == identifier) )) (compound_statement "{\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }" { (expression_statement "iVar8 = iVar8 * 2 + 1;" (assignment_expression "iVar8 = iVar8 * 2 + 1" identifier = (binary_expression "iVar8 * 2 + 1" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);" (assignment_expression "iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4)" identifier = (call_expression "(*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4)" (parenthesized_expression "(*(code *)PTR_realloc_0003d2fc)" ( (pointer_expression "*(code *)PTR_realloc_0003d2fc" * (cast_expression "(code *)PTR_realloc_0003d2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,iVar8 * 4)" ( identifier , (binary_expression "iVar8 * 4" identifier * number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      return 0xc;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0xc;\n    }" { (return_statement "return 0xc;" return number_literal ;) })) (expression_statement "*param_3 = iVar4;" (assignment_expression "*param_3 = iVar4" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_5 = iVar8;" (assignment_expression "*param_5 = iVar8" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) })) (expression_statement "puVar3 = PTR_wctype_0003d350;" (assignment_expression "puVar3 = PTR_wctype_0003d350" identifier = identifier) ;) (expression_statement "*param_4 = iVar8 + 1;" (assignment_expression "*param_4 = iVar8 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = (*(code *)puVar3)(param_6);" (assignment_expression "uVar5 = (*(code *)puVar3)(param_6)" identifier = (call_expression "(*(code *)puVar3)(param_6)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar4 + iVar8 * 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar4 + iVar8 * 4)" * (cast_expression "(undefined4 *)(iVar4 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar8 * 4)" ( (binary_expression "iVar4 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3afc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3afc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);" do (compound_statement "{\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }" if (parenthesized_expression "((*puVar9 & 0x800) != 0)" ( (binary_expression "(*puVar9 & 0x800) != 0" (parenthesized_expression "(*puVar9 & 0x800)" ( (binary_expression "*puVar9 & 0x800" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" else (compound_statement "{\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);" do (compound_statement "{\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }" if (parenthesized_expression "((uVar1 & 0x800) != 0)" ( (binary_expression "(uVar1 & 0x800) != 0" (parenthesized_expression "(uVar1 & 0x800)" ( (binary_expression "uVar1 & 0x800" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3af4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3af4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);" do (compound_statement "{\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }" if (parenthesized_expression "((*puVar9 & 0x200) != 0)" ( (binary_expression "(*puVar9 & 0x200) != 0" (parenthesized_expression "(*puVar9 & 0x200)" ( (binary_expression "*puVar9 & 0x200" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" else (compound_statement "{\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);" do (compound_statement "{\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }" if (parenthesized_expression "((uVar1 & 0x200) != 0)" ( (binary_expression "(uVar1 & 0x200) != 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" else (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b04)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b04" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);" do (compound_statement "{\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }" if (parenthesized_expression "((*puVar9 & 2) != 0)" ( (binary_expression "(*puVar9 & 2) != 0" (parenthesized_expression "(*puVar9 & 2)" ( (binary_expression "*puVar9 & 2" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" else (compound_statement "{\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);" do (compound_statement "{\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }" if (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3aec)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3aec" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);" do (compound_statement "{\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }" if (parenthesized_expression "((*puVar9 & 0x20) != 0)" ( (binary_expression "(*puVar9 & 0x20) != 0" (parenthesized_expression "(*puVar9 & 0x20)" ( (binary_expression "*puVar9 & 0x20" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" else (compound_statement "{\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);" do (compound_statement "{\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }" if (parenthesized_expression "((uVar1 & 0x20) != 0)" ( (binary_expression "(uVar1 & 0x20) != 0" (parenthesized_expression "(uVar1 & 0x20)" ( (binary_expression "uVar1 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" else (compound_statement "{\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b14)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b14" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);" do (compound_statement "{\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }" if (parenthesized_expression "((*puVar9 & 4) != 0)" ( (binary_expression "(*puVar9 & 4) != 0" (parenthesized_expression "(*puVar9 & 4)" ( (binary_expression "*puVar9 & 4" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" else (compound_statement "{\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);" do (compound_statement "{\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" else (compound_statement "{\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ae4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ae4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);" do (compound_statement "{\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }" if (parenthesized_expression "((*puVar9 & 8) != 0)" ( (binary_expression "(*puVar9 & 8) != 0" (parenthesized_expression "(*puVar9 & 8)" ( (binary_expression "*puVar9 & 8" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" else (compound_statement "{\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);" do (compound_statement "{\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }" if (parenthesized_expression "((uVar1 & 8) != 0)" ( (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != puVar11)" ( (binary_expression "puVar9 != puVar11" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" else (compound_statement "{\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3adc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3adc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);" do (compound_statement "{\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }" if (parenthesized_expression "((*puVar9 & 0x40) != 0)" ( (binary_expression "(*puVar9 & 0x40) != 0" (parenthesized_expression "(*puVar9 & 0x40)" ( (binary_expression "*puVar9 & 0x40" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" else (compound_statement "{\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);" do (compound_statement "{\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }" if (parenthesized_expression "((uVar1 & 0x40) != 0)" ( (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" ( (binary_expression "uVar1 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" else (compound_statement "{\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b0c)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3b0c" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);" do (compound_statement "{\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }" if (parenthesized_expression "((*puVar9 & 1) != 0)" ( (binary_expression "(*puVar9 & 1) != 0" (parenthesized_expression "(*puVar9 & 1)" ( (binary_expression "*puVar9 & 1" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" else (compound_statement "{\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);" do (compound_statement "{\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }" if (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" else (compound_statement "{\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ad4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ad4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);" do (compound_statement "{\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }" if (parenthesized_expression "((*puVar9 & 0x100) != 0)" ( (binary_expression "(*puVar9 & 0x100) != 0" (parenthesized_expression "(*puVar9 & 0x100)" ( (binary_expression "*puVar9 & 0x100" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" else (compound_statement "{\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);" do (compound_statement "{\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }" if (parenthesized_expression "((uVar1 & 0x100) != 0)" ( (binary_expression "(uVar1 & 0x100) != 0" (parenthesized_expression "(uVar1 & 0x100)" ( (binary_expression "uVar1 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar9 != puVar11)" ( (binary_expression "puVar9 != puVar11" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" else (compound_statement "{\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3acc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3acc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);" do (compound_statement "{\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }" if (parenthesized_expression "((*puVar9 & 0x80) != 0)" ( (binary_expression "(*puVar9 & 0x80) != 0" (parenthesized_expression "(*puVar9 & 0x80)" ( (binary_expression "*puVar9 & 0x80" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" else (compound_statement "{\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);" do (compound_statement "{\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }" if (parenthesized_expression "((uVar1 & 0x80) != 0)" ( (binary_expression "(uVar1 & 0x80) != 0" (parenthesized_expression "(uVar1 & 0x80)" ( (binary_expression "uVar1 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" else (compound_statement "{\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ac4)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3ac4" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);" do (compound_statement "{\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }" if (parenthesized_expression "((*puVar9 & 0x400) != 0)" ( (binary_expression "(*puVar9 & 0x400) != 0" (parenthesized_expression "(*puVar9 & 0x400)" ( (binary_expression "*puVar9 & 0x400" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" else (compound_statement "{\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" { (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" identifier = (binary_expression "puVar9 + 0x100" identifier + number_literal)) ;) (do_statement "do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);" do (compound_statement "{\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }" if (parenthesized_expression "((uVar1 & 0x400) != 0)" ( (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" ( (binary_expression "uVar1 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" identifier + (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" ( (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*param_1 & 0x1f)" number_literal << (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))))) ;) })) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar11 != puVar9)" ( (binary_expression "puVar11 != puVar9" identifier != identifier) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" else (compound_statement "{\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" { (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc)" identifier = (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" ( (pointer_expression "*(code *)PTR_strcmp_0003d370" * (cast_expression "(code *)PTR_strcmp_0003d370" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3abc)" ( identifier , (binary_expression "PTR_DAT_0003d148 + -0x3abc" identifier + number_literal) )))) ;) (if_statement "if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }" { (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" * (cast_expression "(code *)PTR___ctype_b_loc_0003d258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" identifier = (cast_expression "(ushort *)*puVar6" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);" do (compound_statement "{\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            }" { (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" identifier = (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" identifier = (binary_expression "uVar12 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" identifier = (cast_expression "(uint *)(param_2 + iVar4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar4 * 4)" ( (binary_expression "param_2 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }" if (parenthesized_expression "((*puVar9 & 0x10) != 0)" ( (binary_expression "(*puVar9 & 0x10) != 0" (parenthesized_expression "(*puVar9 & 0x10)" ( (binary_expression "*puVar9 & 0x10" (pointer_expression "*puVar9" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }" { (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << uVar2" number_literal << identifier))) ;) })) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 != 0x100)" ( (binary_expression "uVar12 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" else (compound_statement "{\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);" do (compound_statement "{\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            }" { (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pbVar10 = param_1 + iVar4;" (assignment_expression "pbVar10 = param_1 + iVar4" identifier = (binary_expression "param_1 + iVar4" identifier + identifier)) ;) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }" if (parenthesized_expression "((uVar1 & 0x10) != 0)" ( (binary_expression "(uVar1 & 0x10) != 0" (parenthesized_expression "(uVar1 & 0x10)" ( (binary_expression "uVar1 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }" { (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" identifier = (cast_expression "(uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" ( (binary_expression "param_2 + ((int)(uint)*pbVar10 >> 5) * 4" identifier + (binary_expression "((int)(uint)*pbVar10 >> 5) * 4" (parenthesized_expression "((int)(uint)*pbVar10 >> 5)" ( (binary_expression "(int)(uint)*pbVar10 >> 5" (binary_expression "(int)(uint)*pbVar10" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f)" (pointer_expression "*puVar7" * identifier) = (binary_expression "*puVar7 | 1 << (*pbVar10 & 0x1f)" (pointer_expression "*puVar7" * identifier) | (binary_expression "1 << (*pbVar10 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar10 & 0x1f)" ( (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" * identifier) & number_literal) ))))) ;) })) }) while (parenthesized_expression "(iVar4 != 0x100)" ( (binary_expression "iVar4 != 0x100" identifier != number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n                          uVar5 = 4;\n                        }" else (compound_statement "{\n                          uVar5 = 4;\n                        }" { (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" identifier = number_literal) ;) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (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 , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (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 , (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * IDENT) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))))) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4\nFUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)\n\n{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}" (type_identifier "undefined4") (function_declarator "FUN_0001fc2c(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)" (identifier "FUN_0001fc2c") (parameter_list "(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,\n            int param_7)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined *param_6" (type_identifier "undefined") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) () ")"))) (compound_statement "{\n  ushort uVar1;\n  uint uVar2;\n  undefined *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 *puVar6;\n  uint *puVar7;\n  int iVar8;\n  ushort *puVar9;\n  byte *pbVar10;\n  ushort *puVar11;\n  uint uVar12;\n  \n  if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }\n  iVar8 = *param_4;\n  iVar4 = *param_3;\n  if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }\n  puVar3 = PTR_wctype_0003d350;\n  *param_4 = iVar8 + 1;\n  uVar5 = (*(code *)puVar3)(param_6);\n  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;\n  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);\n  if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return uVar5;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "ushort *puVar9;" (type_identifier "ushort") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "ushort *puVar11;" (type_identifier "ushort") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (if_statement "if (param_7 << 9 < 0) {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_7 << 9 < 0)" (( "(") (binary_expression "param_7 << 9 < 0" (binary_expression "param_7 << 9" (identifier "param_7") (<< "<<") (number_literal "9")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n    if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b0c)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3b0c" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b0c")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_6 = PTR_DAT_0003d148 + -0x3b14;\n    }" ({ "{") (expression_statement "param_6 = PTR_DAT_0003d148 + -0x3b14;" (assignment_expression "param_6 = PTR_DAT_0003d148 + -0x3b14" (identifier "param_6") (= "=") (binary_expression "PTR_DAT_0003d148 + -0x3b14" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b14"))) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" (else "else") (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }\n    }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b04)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3b04" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b04")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_6 = PTR_DAT_0003d148 + -0x3b14;\n      }" ({ "{") (expression_statement "param_6 = PTR_DAT_0003d148 + -0x3b14;" (assignment_expression "param_6 = PTR_DAT_0003d148 + -0x3b14" (identifier "param_6") (= "=") (binary_expression "PTR_DAT_0003d148 + -0x3b14" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b14"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" (identifier "iVar8") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "iVar4 = *param_3;" (assignment_expression "iVar4 = *param_3" (identifier "iVar4") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (*param_5 == iVar8) {\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }" (if "if") (parenthesized_expression "(*param_5 == iVar8)" (( "(") (binary_expression "*param_5 == iVar8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (== "==") (identifier "iVar8")) () ")")) (compound_statement "{\n    iVar8 = iVar8 * 2 + 1;\n    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);\n    if (iVar4 == 0) {\n      return 0xc;\n    }\n    *param_3 = iVar4;\n    *param_5 = iVar8;\n    iVar8 = *param_4;\n  }" ({ "{") (expression_statement "iVar8 = iVar8 * 2 + 1;" (assignment_expression "iVar8 = iVar8 * 2 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 * 2 + 1" (binary_expression "iVar8 * 2" (identifier "iVar8") (* "*") (number_literal "2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);" (assignment_expression "iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4)" (parenthesized_expression "(*(code *)PTR_realloc_0003d2fc)" (( "(") (pointer_expression "*(code *)PTR_realloc_0003d2fc" (* "*") (cast_expression "(code *)PTR_realloc_0003d2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_realloc_0003d2fc"))) () ")")) (argument_list "(iVar4,iVar8 * 4)" (( "(") (identifier "iVar4") (, ",") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      return 0xc;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0xc;\n    }" ({ "{") (return_statement "return 0xc;" (return "return") (number_literal "0xc") (; ";")) (} "}"))) (expression_statement "*param_3 = iVar4;" (assignment_expression "*param_3 = iVar4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*param_5 = iVar8;" (assignment_expression "*param_5 = iVar8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar8 = *param_4;" (assignment_expression "iVar8 = *param_4" (identifier "iVar8") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_wctype_0003d350;" (assignment_expression "puVar3 = PTR_wctype_0003d350" (identifier "puVar3") (= "=") (identifier "PTR_wctype_0003d350")) (; ";")) (expression_statement "*param_4 = iVar8 + 1;" (assignment_expression "*param_4 = iVar8 + 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = (*(code *)puVar3)(param_6);" (assignment_expression "uVar5 = (*(code *)puVar3)(param_6)" (identifier "uVar5") (= "=") (call_expression "(*(code *)puVar3)(param_6)" (parenthesized_expression "(*(code *)puVar3)" (( "(") (pointer_expression "*(code *)puVar3" (* "*") (cast_expression "(code *)puVar3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")")) (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;" (assignment_expression "*(undefined4 *)(iVar4 + iVar8 * 4) = uVar5" (pointer_expression "*(undefined4 *)(iVar4 + iVar8 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + iVar8 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar8 * 4)" (( "(") (binary_expression "iVar4 + iVar8 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3afc)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3afc" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3afc")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }\n  else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n    puVar9 = (ushort *)*puVar6;\n    if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }\n    else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar12 = 0;\n      do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);\n      uVar5 = 0;\n    }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n        iVar4 = (int)uVar12 >> 5;\n        uVar2 = uVar12 & 0x1f;\n        uVar12 = uVar12 + 1;\n        puVar7 = (uint *)(param_2 + iVar4 * 4);\n        if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }\n        puVar9 = puVar9 + 1;\n      }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x800) != 0) {\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }" (if "if") (parenthesized_expression "((*puVar9 & 0x800) != 0)" (( "(") (binary_expression "(*puVar9 & 0x800) != 0" (parenthesized_expression "(*puVar9 & 0x800)" (( "(") (binary_expression "*puVar9 & 0x800" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *puVar7 = *puVar7 | 1 << uVar2;\n        }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" (else "else") (compound_statement "{\n      puVar11 = puVar9 + 0x100;\n      do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);\n      uVar5 = 0;\n    }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n        uVar1 = *puVar9;\n        puVar9 = puVar9 + 1;\n        if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }\n        param_1 = param_1 + 1;\n      }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x800) != 0) {\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }" (if "if") (parenthesized_expression "((uVar1 & 0x800) != 0)" (( "(") (binary_expression "(uVar1 & 0x800) != 0" (parenthesized_expression "(uVar1 & 0x800)" (( "(") (binary_expression "uVar1 & 0x800" (identifier "uVar1") (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n        }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);\n    if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3af4)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3af4" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3af4")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }\n    else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n      puVar9 = (ushort *)*puVar6;\n      if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }\n    }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }\n      else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar12 = 0;\n        do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);\n        uVar5 = 0;\n      }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n          iVar4 = (int)uVar12 >> 5;\n          uVar2 = uVar12 & 0x1f;\n          uVar12 = uVar12 + 1;\n          puVar7 = (uint *)(param_2 + iVar4 * 4);\n          if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }\n          puVar9 = puVar9 + 1;\n        }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x200) != 0) {\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }" (if "if") (parenthesized_expression "((*puVar9 & 0x200) != 0)" (( "(") (binary_expression "(*puVar9 & 0x200) != 0" (parenthesized_expression "(*puVar9 & 0x200)" (( "(") (binary_expression "*puVar9 & 0x200" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *puVar7 = *puVar7 | 1 << uVar2;\n          }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" (else "else") (compound_statement "{\n        puVar11 = puVar9 + 0x100;\n        do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);\n        uVar5 = 0;\n      }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n          uVar1 = *puVar9;\n          puVar9 = puVar9 + 1;\n          if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }\n          param_1 = param_1 + 1;\n        }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x200) != 0) {\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar1 & 0x200) != 0)" (( "(") (binary_expression "(uVar1 & 0x200) != 0" (parenthesized_expression "(uVar1 & 0x200)" (( "(") (binary_expression "uVar1 & 0x200" (identifier "uVar1") (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n          }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);\n      if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b04)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3b04" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b04")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }\n      else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n        puVar9 = (ushort *)*puVar6;\n        if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }\n      }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }\n        else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar12 = 0;\n          do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);\n          uVar5 = 0;\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n            iVar4 = (int)uVar12 >> 5;\n            uVar2 = uVar12 & 0x1f;\n            uVar12 = uVar12 + 1;\n            puVar7 = (uint *)(param_2 + iVar4 * 4);\n            if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }\n            puVar9 = puVar9 + 1;\n          }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 2) != 0) {\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }" (if "if") (parenthesized_expression "((*puVar9 & 2) != 0)" (( "(") (binary_expression "(*puVar9 & 2) != 0" (parenthesized_expression "(*puVar9 & 2)" (( "(") (binary_expression "*puVar9 & 2" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *puVar7 = *puVar7 | 1 << uVar2;\n            }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" (else "else") (compound_statement "{\n          puVar11 = puVar9 + 0x100;\n          do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);\n          uVar5 = 0;\n        }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n            uVar1 = *puVar9;\n            puVar9 = puVar9 + 1;\n            if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }\n            param_1 = param_1 + 1;\n          }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 2) != 0) {\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }" (if "if") (parenthesized_expression "((uVar1 & 2) != 0)" (( "(") (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" (( "(") (binary_expression "uVar1 & 2" (identifier "uVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n            }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);\n        if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3aec)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3aec" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3aec")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }\n        else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n          puVar9 = (ushort *)*puVar6;\n          if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }\n        }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }\n          else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar12 = 0;\n            do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);\n            uVar5 = 0;\n          }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n              iVar4 = (int)uVar12 >> 5;\n              uVar2 = uVar12 & 0x1f;\n              uVar12 = uVar12 + 1;\n              puVar7 = (uint *)(param_2 + iVar4 * 4);\n              if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }\n              puVar9 = puVar9 + 1;\n            }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x20) != 0) {\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }" (if "if") (parenthesized_expression "((*puVar9 & 0x20) != 0)" (( "(") (binary_expression "(*puVar9 & 0x20) != 0" (parenthesized_expression "(*puVar9 & 0x20)" (( "(") (binary_expression "*puVar9 & 0x20" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *puVar7 = *puVar7 | 1 << uVar2;\n              }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" (else "else") (compound_statement "{\n            puVar11 = puVar9 + 0x100;\n            do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);\n            uVar5 = 0;\n          }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n              uVar1 = *puVar9;\n              puVar9 = puVar9 + 1;\n              if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }\n              param_1 = param_1 + 1;\n            }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x20) != 0) {\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }" (if "if") (parenthesized_expression "((uVar1 & 0x20) != 0)" (( "(") (binary_expression "(uVar1 & 0x20) != 0" (parenthesized_expression "(uVar1 & 0x20)" (( "(") (binary_expression "uVar1 & 0x20" (identifier "uVar1") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n              }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);\n          if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b14)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3b14" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b14")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n            puVar9 = (ushort *)*puVar6;\n            if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }\n          }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }\n            else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar12 = 0;\n              do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);\n              uVar5 = 0;\n            }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                iVar4 = (int)uVar12 >> 5;\n                uVar2 = uVar12 & 0x1f;\n                uVar12 = uVar12 + 1;\n                puVar7 = (uint *)(param_2 + iVar4 * 4);\n                if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }\n                puVar9 = puVar9 + 1;\n              }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 4) != 0) {\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }" (if "if") (parenthesized_expression "((*puVar9 & 4) != 0)" (( "(") (binary_expression "(*puVar9 & 4) != 0" (parenthesized_expression "(*puVar9 & 4)" (( "(") (binary_expression "*puVar9 & 4" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *puVar7 = *puVar7 | 1 << uVar2;\n                }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" (else "else") (compound_statement "{\n              puVar11 = puVar9 + 0x100;\n              do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);\n              uVar5 = 0;\n            }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n                uVar1 = *puVar9;\n                puVar9 = puVar9 + 1;\n                if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }\n                param_1 = param_1 + 1;\n              }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 4) != 0) {\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar1 & 4) != 0)" (( "(") (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);\n            if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ae4)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3ae4" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3ae4")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }\n            else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n              puVar9 = (ushort *)*puVar6;\n              if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }\n            }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }\n              else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                uVar12 = 0;\n                do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);\n                uVar5 = 0;\n              }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                  iVar4 = (int)uVar12 >> 5;\n                  uVar2 = uVar12 & 0x1f;\n                  uVar12 = uVar12 + 1;\n                  puVar7 = (uint *)(param_2 + iVar4 * 4);\n                  if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }\n                  puVar9 = puVar9 + 1;\n                }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 8) != 0) {\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }" (if "if") (parenthesized_expression "((*puVar9 & 8) != 0)" (( "(") (binary_expression "(*puVar9 & 8) != 0" (parenthesized_expression "(*puVar9 & 8)" (( "(") (binary_expression "*puVar9 & 8" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *puVar7 = *puVar7 | 1 << uVar2;\n                  }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" (else "else") (compound_statement "{\n                puVar11 = puVar9 + 0x100;\n                do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);\n                uVar5 = 0;\n              }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                } while (puVar9 != puVar11);" (do "do") (compound_statement "{\n                  uVar1 = *puVar9;\n                  puVar9 = puVar9 + 1;\n                  if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }\n                  param_1 = param_1 + 1;\n                }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 8) != 0) {\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }" (if "if") (parenthesized_expression "((uVar1 & 8) != 0)" (( "(") (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" (( "(") (binary_expression "uVar1 & 8" (identifier "uVar1") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                  }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != puVar11)" (( "(") (binary_expression "puVar9 != puVar11" (identifier "puVar9") (!= "!=") (identifier "puVar11")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\n              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);\n              if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3adc)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3adc" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3adc")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }\n              else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                puVar9 = (ushort *)*puVar6;\n                if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }\n              }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }\n                else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  uVar12 = 0;\n                  do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);\n                  uVar5 = 0;\n                }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                    iVar4 = (int)uVar12 >> 5;\n                    uVar2 = uVar12 & 0x1f;\n                    uVar12 = uVar12 + 1;\n                    puVar7 = (uint *)(param_2 + iVar4 * 4);\n                    if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }\n                    puVar9 = puVar9 + 1;\n                  }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x40) != 0) {\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }" (if "if") (parenthesized_expression "((*puVar9 & 0x40) != 0)" (( "(") (binary_expression "(*puVar9 & 0x40) != 0" (parenthesized_expression "(*puVar9 & 0x40)" (( "(") (binary_expression "*puVar9 & 0x40" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      *puVar7 = *puVar7 | 1 << uVar2;\n                    }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" (else "else") (compound_statement "{\n                  puVar11 = puVar9 + 0x100;\n                  do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);\n                  uVar5 = 0;\n                }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n                    uVar1 = *puVar9;\n                    puVar9 = puVar9 + 1;\n                    if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }\n                    param_1 = param_1 + 1;\n                  }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x40) != 0) {\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }" (if "if") (parenthesized_expression "((uVar1 & 0x40) != 0)" (( "(") (binary_expression "(uVar1 & 0x40) != 0" (parenthesized_expression "(uVar1 & 0x40)" (( "(") (binary_expression "uVar1 & 0x40" (identifier "uVar1") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                    }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);\n                if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3b0c)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3b0c" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3b0c")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }\n                else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                  puVar9 = (ushort *)*puVar6;\n                  if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }\n                }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }\n                  else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    uVar12 = 0;\n                    do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);\n                    uVar5 = 0;\n                  }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                      iVar4 = (int)uVar12 >> 5;\n                      uVar2 = uVar12 & 0x1f;\n                      uVar12 = uVar12 + 1;\n                      puVar7 = (uint *)(param_2 + iVar4 * 4);\n                      if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }\n                      puVar9 = puVar9 + 1;\n                    }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 1) != 0) {\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }" (if "if") (parenthesized_expression "((*puVar9 & 1) != 0)" (( "(") (binary_expression "(*puVar9 & 1) != 0" (parenthesized_expression "(*puVar9 & 1)" (( "(") (binary_expression "*puVar9 & 1" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        *puVar7 = *puVar7 | 1 << uVar2;\n                      }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" (else "else") (compound_statement "{\n                    puVar11 = puVar9 + 0x100;\n                    do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);\n                    uVar5 = 0;\n                  }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n                      uVar1 = *puVar9;\n                      puVar9 = puVar9 + 1;\n                      if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }\n                      param_1 = param_1 + 1;\n                    }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 1) != 0) {\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }" (if "if") (parenthesized_expression "((uVar1 & 1) != 0)" (( "(") (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" (( "(") (binary_expression "uVar1 & 1" (identifier "uVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                      }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);\n                  if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ad4)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3ad4" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3ad4")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }\n                  else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                    puVar9 = (ushort *)*puVar6;\n                    if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }\n                  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }\n                    else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      uVar12 = 0;\n                      do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);\n                      uVar5 = 0;\n                    }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                        iVar4 = (int)uVar12 >> 5;\n                        uVar2 = uVar12 & 0x1f;\n                        uVar12 = uVar12 + 1;\n                        puVar7 = (uint *)(param_2 + iVar4 * 4);\n                        if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }\n                        puVar9 = puVar9 + 1;\n                      }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x100) != 0) {\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }" (if "if") (parenthesized_expression "((*puVar9 & 0x100) != 0)" (( "(") (binary_expression "(*puVar9 & 0x100) != 0" (parenthesized_expression "(*puVar9 & 0x100)" (( "(") (binary_expression "*puVar9 & 0x100" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          *puVar7 = *puVar7 | 1 << uVar2;\n                        }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" (else "else") (compound_statement "{\n                      puVar11 = puVar9 + 0x100;\n                      do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);\n                      uVar5 = 0;\n                    }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      } while (puVar9 != puVar11);" (do "do") (compound_statement "{\n                        uVar1 = *puVar9;\n                        puVar9 = puVar9 + 1;\n                        if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }\n                        param_1 = param_1 + 1;\n                      }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x100) != 0) {\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }" (if "if") (parenthesized_expression "((uVar1 & 0x100) != 0)" (( "(") (binary_expression "(uVar1 & 0x100) != 0" (parenthesized_expression "(uVar1 & 0x100)" (( "(") (binary_expression "uVar1 & 0x100" (identifier "uVar1") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                        }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar9 != puVar11)" (( "(") (binary_expression "puVar9 != puVar11" (identifier "puVar9") (!= "!=") (identifier "puVar11")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);\n                    if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3acc)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3acc" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3acc")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }\n                    else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                      puVar9 = (ushort *)*puVar6;\n                      if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }\n                    }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }\n                      else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        uVar12 = 0;\n                        do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);\n                        uVar5 = 0;\n                      }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                          iVar4 = (int)uVar12 >> 5;\n                          uVar2 = uVar12 & 0x1f;\n                          uVar12 = uVar12 + 1;\n                          puVar7 = (uint *)(param_2 + iVar4 * 4);\n                          if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }\n                          puVar9 = puVar9 + 1;\n                        }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x80) != 0) {\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }" (if "if") (parenthesized_expression "((*puVar9 & 0x80) != 0)" (( "(") (binary_expression "(*puVar9 & 0x80) != 0" (parenthesized_expression "(*puVar9 & 0x80)" (( "(") (binary_expression "*puVar9 & 0x80" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            *puVar7 = *puVar7 | 1 << uVar2;\n                          }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" (else "else") (compound_statement "{\n                        puVar11 = puVar9 + 0x100;\n                        do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);\n                        uVar5 = 0;\n                      }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n                          uVar1 = *puVar9;\n                          puVar9 = puVar9 + 1;\n                          if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }\n                          param_1 = param_1 + 1;\n                        }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x80) != 0) {\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }" (if "if") (parenthesized_expression "((uVar1 & 0x80) != 0)" (( "(") (binary_expression "(uVar1 & 0x80) != 0" (parenthesized_expression "(uVar1 & 0x80)" (( "(") (binary_expression "uVar1 & 0x80" (identifier "uVar1") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                          }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" (else "else") (compound_statement "{\n                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);\n                      if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }\n                    }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3ac4)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3ac4" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3ac4")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }\n                      else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                        puVar9 = (ushort *)*puVar6;\n                        if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }\n                      }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }\n                        else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          uVar12 = 0;\n                          do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);\n                          uVar5 = 0;\n                        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                            iVar4 = (int)uVar12 >> 5;\n                            uVar2 = uVar12 & 0x1f;\n                            uVar12 = uVar12 + 1;\n                            puVar7 = (uint *)(param_2 + iVar4 * 4);\n                            if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }\n                            puVar9 = puVar9 + 1;\n                          }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x400) != 0) {\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }" (if "if") (parenthesized_expression "((*puVar9 & 0x400) != 0)" (( "(") (binary_expression "(*puVar9 & 0x400) != 0" (parenthesized_expression "(*puVar9 & 0x400)" (( "(") (binary_expression "*puVar9 & 0x400" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                              *puVar7 = *puVar7 | 1 << uVar2;\n                            }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" (else "else") (compound_statement "{\n                          puVar11 = puVar9 + 0x100;\n                          do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);\n                          uVar5 = 0;\n                        }" ({ "{") (expression_statement "puVar11 = puVar9 + 0x100;" (assignment_expression "puVar11 = puVar9 + 0x100" (identifier "puVar11") (= "=") (binary_expression "puVar9 + 0x100" (identifier "puVar9") (+ "+") (number_literal "0x100"))) (; ";")) (do_statement "do {\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          } while (puVar11 != puVar9);" (do "do") (compound_statement "{\n                            uVar1 = *puVar9;\n                            puVar9 = puVar9 + 1;\n                            if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }\n                            param_1 = param_1 + 1;\n                          }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x400) != 0) {\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }" (if "if") (parenthesized_expression "((uVar1 & 0x400) != 0)" (( "(") (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" (( "(") (binary_expression "uVar1 & 0x400" (identifier "uVar1") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);\n                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);\n                            }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*param_1 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*param_1 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*param_1 >> 5) * 4" (parenthesized_expression "((int)(uint)*param_1 >> 5)" (( "(") (binary_expression "(int)(uint)*param_1 >> 5" (binary_expression "(int)(uint)*param_1" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*param_1 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*param_1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != puVar9)" (( "(") (binary_expression "puVar11 != puVar9" (identifier "puVar11") (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" (else "else") (compound_statement "{\n                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);\n                        if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }\n                      }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);" (assignment_expression "iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc)" (parenthesized_expression "(*(code *)PTR_strcmp_0003d370)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0003d370" (* "*") (cast_expression "(code *)PTR_strcmp_0003d370" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0003d370"))) () ")")) (argument_list "(param_6,PTR_DAT_0003d148 + -0x3abc)" (( "(") (identifier "param_6") (, ",") (binary_expression "PTR_DAT_0003d148 + -0x3abc" (identifier "PTR_DAT_0003d148") (+ "+") (number_literal "-0x3abc")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }\n                        else {\n                          uVar5 = 4;\n                        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();\n                          puVar9 = (ushort *)*puVar6;\n                          if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }\n                        }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0003d258)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0003d258)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0003d258" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0003d258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0003d258"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar9 = (ushort *)*puVar6;" (assignment_expression "puVar9 = (ushort *)*puVar6" (identifier "puVar9") (= "=") (cast_expression "(ushort *)*puVar6" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }\n                          else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                            uVar12 = 0;\n                            do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);\n                            uVar5 = 0;\n                          }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            } while (uVar12 != 0x100);" (do "do") (compound_statement "{\n                              iVar4 = (int)uVar12 >> 5;\n                              uVar2 = uVar12 & 0x1f;\n                              uVar12 = uVar12 + 1;\n                              puVar7 = (uint *)(param_2 + iVar4 * 4);\n                              if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }\n                              puVar9 = puVar9 + 1;\n                            }" ({ "{") (expression_statement "iVar4 = (int)uVar12 >> 5;" (assignment_expression "iVar4 = (int)uVar12 >> 5" (identifier "iVar4") (= "=") (binary_expression "(int)uVar12 >> 5" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar2 = uVar12 & 0x1f;" (assignment_expression "uVar2 = uVar12 & 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar12 & 0x1f" (identifier "uVar12") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7 = (uint *)(param_2 + iVar4 * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + iVar4 * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + iVar4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar4 * 4)" (( "(") (binary_expression "param_2 + iVar4 * 4" (identifier "param_2") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((*puVar9 & 0x10) != 0) {\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }" (if "if") (parenthesized_expression "((*puVar9 & 0x10) != 0)" (( "(") (binary_expression "(*puVar9 & 0x10) != 0" (parenthesized_expression "(*puVar9 & 0x10)" (( "(") (binary_expression "*puVar9 & 0x10" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                *puVar7 = *puVar7 | 1 << uVar2;\n                              }" ({ "{") (expression_statement "*puVar7 = *puVar7 | 1 << uVar2;" (assignment_expression "*puVar7 = *puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << uVar2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << uVar2" (number_literal "1") (<< "<<") (identifier "uVar2")))) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0x100)" (( "(") (binary_expression "uVar12 != 0x100" (identifier "uVar12") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" (else "else") (compound_statement "{\n                            iVar4 = 0;\n                            do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);\n                            uVar5 = 0;\n                          }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            } while (iVar4 != 0x100);" (do "do") (compound_statement "{\n                              uVar1 = *puVar9;\n                              pbVar10 = param_1 + iVar4;\n                              puVar9 = puVar9 + 1;\n                              iVar4 = iVar4 + 1;\n                              if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }\n                            }" ({ "{") (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" (identifier "uVar1") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "pbVar10 = param_1 + iVar4;" (assignment_expression "pbVar10 = param_1 + iVar4" (identifier "pbVar10") (= "=") (binary_expression "param_1 + iVar4" (identifier "param_1") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar1 & 0x10) != 0) {\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }" (if "if") (parenthesized_expression "((uVar1 & 0x10) != 0)" (( "(") (binary_expression "(uVar1 & 0x10) != 0" (parenthesized_expression "(uVar1 & 0x10)" (( "(") (binary_expression "uVar1 & 0x10" (identifier "uVar1") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);\n                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);\n                              }" ({ "{") (expression_statement "puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);" (assignment_expression "puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + ((int)(uint)*pbVar10 >> 5) * 4)" (( "(") (binary_expression "param_2 + ((int)(uint)*pbVar10 >> 5) * 4" (identifier "param_2") (+ "+") (binary_expression "((int)(uint)*pbVar10 >> 5) * 4" (parenthesized_expression "((int)(uint)*pbVar10 >> 5)" (( "(") (binary_expression "(int)(uint)*pbVar10 >> 5" (binary_expression "(int)(uint)*pbVar10" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar10")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);" (assignment_expression "*puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "*puVar7 | 1 << (*pbVar10 & 0x1f)" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (| "|") (binary_expression "1 << (*pbVar10 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*pbVar10 & 0x1f)" (( "(") (binary_expression "*pbVar10 & 0x1f" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0x100)" (( "(") (binary_expression "iVar4 != 0x100" (identifier "iVar4") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                          uVar5 = 4;\n                        }" (else "else") (compound_statement "{\n                          uVar5 = 4;\n                        }" ({ "{") (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" (identifier "uVar5") (= "=") (number_literal "4")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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)) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (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) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (pointer_expression argument: (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)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) 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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement 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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (identifier)) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))))))))))))))))))))))))))))))) (return_statement (identifier)))))

undefined4
MASKED(byte *param_1,int param_2,int *param_3,int *param_4,int *param_5,undefined *param_6,
            int param_7)

{
  ushort uVar1;
  uint uVar2;
  undefined *puVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 *puVar6;
  uint *puVar7;
  int iVar8;
  ushort *puVar9;
  byte *pbVar10;
  ushort *puVar11;
  uint uVar12;
  
  if (param_7 << 9 < 0) {
    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);
    if (iVar4 == 0) {
      param_6 = PTR_DAT_0003d148 + -0x3b14;
    }
    else {
      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);
      if (iVar4 == 0) {
        param_6 = PTR_DAT_0003d148 + -0x3b14;
      }
    }
  }
  iVar8 = *param_4;
  iVar4 = *param_3;
  if (*param_5 == iVar8) {
    iVar8 = iVar8 * 2 + 1;
    iVar4 = (*(code *)PTR_realloc_0003d2fc)(iVar4,iVar8 * 4);
    if (iVar4 == 0) {
      return 0xc;
    }
    *param_3 = iVar4;
    *param_5 = iVar8;
    iVar8 = *param_4;
  }
  puVar3 = PTR_wctype_0003d350;
  *param_4 = iVar8 + 1;
  uVar5 = (*(code *)puVar3)(param_6);
  *(undefined4 *)(iVar4 + iVar8 * 4) = uVar5;
  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3afc);
  if (iVar4 == 0) {
    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
    puVar9 = (ushort *)*puVar6;
    if (param_1 == (byte *)0x0) {
      uVar12 = 0;
      do {
        iVar4 = (int)uVar12 >> 5;
        uVar2 = uVar12 & 0x1f;
        uVar12 = uVar12 + 1;
        puVar7 = (uint *)(param_2 + iVar4 * 4);
        if ((*puVar9 & 0x800) != 0) {
          *puVar7 = *puVar7 | 1 << uVar2;
        }
        puVar9 = puVar9 + 1;
      } while (uVar12 != 0x100);
      uVar5 = 0;
    }
    else {
      puVar11 = puVar9 + 0x100;
      do {
        uVar1 = *puVar9;
        puVar9 = puVar9 + 1;
        if ((uVar1 & 0x800) != 0) {
          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
        }
        param_1 = param_1 + 1;
      } while (puVar11 != puVar9);
      uVar5 = 0;
    }
  }
  else {
    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3af4);
    if (iVar4 == 0) {
      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
      puVar9 = (ushort *)*puVar6;
      if (param_1 == (byte *)0x0) {
        uVar12 = 0;
        do {
          iVar4 = (int)uVar12 >> 5;
          uVar2 = uVar12 & 0x1f;
          uVar12 = uVar12 + 1;
          puVar7 = (uint *)(param_2 + iVar4 * 4);
          if ((*puVar9 & 0x200) != 0) {
            *puVar7 = *puVar7 | 1 << uVar2;
          }
          puVar9 = puVar9 + 1;
        } while (uVar12 != 0x100);
        uVar5 = 0;
      }
      else {
        puVar11 = puVar9 + 0x100;
        do {
          uVar1 = *puVar9;
          puVar9 = puVar9 + 1;
          if ((uVar1 & 0x200) != 0) {
            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
          }
          param_1 = param_1 + 1;
        } while (puVar11 != puVar9);
        uVar5 = 0;
      }
    }
    else {
      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b04);
      if (iVar4 == 0) {
        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
        puVar9 = (ushort *)*puVar6;
        if (param_1 == (byte *)0x0) {
          uVar12 = 0;
          do {
            iVar4 = (int)uVar12 >> 5;
            uVar2 = uVar12 & 0x1f;
            uVar12 = uVar12 + 1;
            puVar7 = (uint *)(param_2 + iVar4 * 4);
            if ((*puVar9 & 2) != 0) {
              *puVar7 = *puVar7 | 1 << uVar2;
            }
            puVar9 = puVar9 + 1;
          } while (uVar12 != 0x100);
          uVar5 = 0;
        }
        else {
          puVar11 = puVar9 + 0x100;
          do {
            uVar1 = *puVar9;
            puVar9 = puVar9 + 1;
            if ((uVar1 & 2) != 0) {
              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
            }
            param_1 = param_1 + 1;
          } while (puVar11 != puVar9);
          uVar5 = 0;
        }
      }
      else {
        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3aec);
        if (iVar4 == 0) {
          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
          puVar9 = (ushort *)*puVar6;
          if (param_1 == (byte *)0x0) {
            uVar12 = 0;
            do {
              iVar4 = (int)uVar12 >> 5;
              uVar2 = uVar12 & 0x1f;
              uVar12 = uVar12 + 1;
              puVar7 = (uint *)(param_2 + iVar4 * 4);
              if ((*puVar9 & 0x20) != 0) {
                *puVar7 = *puVar7 | 1 << uVar2;
              }
              puVar9 = puVar9 + 1;
            } while (uVar12 != 0x100);
            uVar5 = 0;
          }
          else {
            puVar11 = puVar9 + 0x100;
            do {
              uVar1 = *puVar9;
              puVar9 = puVar9 + 1;
              if ((uVar1 & 0x20) != 0) {
                puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
              }
              param_1 = param_1 + 1;
            } while (puVar11 != puVar9);
            uVar5 = 0;
          }
        }
        else {
          iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b14);
          if (iVar4 == 0) {
            puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
            puVar9 = (ushort *)*puVar6;
            if (param_1 == (byte *)0x0) {
              uVar12 = 0;
              do {
                iVar4 = (int)uVar12 >> 5;
                uVar2 = uVar12 & 0x1f;
                uVar12 = uVar12 + 1;
                puVar7 = (uint *)(param_2 + iVar4 * 4);
                if ((*puVar9 & 4) != 0) {
                  *puVar7 = *puVar7 | 1 << uVar2;
                }
                puVar9 = puVar9 + 1;
              } while (uVar12 != 0x100);
              uVar5 = 0;
            }
            else {
              puVar11 = puVar9 + 0x100;
              do {
                uVar1 = *puVar9;
                puVar9 = puVar9 + 1;
                if ((uVar1 & 4) != 0) {
                  puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                  *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                }
                param_1 = param_1 + 1;
              } while (puVar11 != puVar9);
              uVar5 = 0;
            }
          }
          else {
            iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ae4);
            if (iVar4 == 0) {
              puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
              puVar9 = (ushort *)*puVar6;
              if (param_1 == (byte *)0x0) {
                uVar12 = 0;
                do {
                  iVar4 = (int)uVar12 >> 5;
                  uVar2 = uVar12 & 0x1f;
                  uVar12 = uVar12 + 1;
                  puVar7 = (uint *)(param_2 + iVar4 * 4);
                  if ((*puVar9 & 8) != 0) {
                    *puVar7 = *puVar7 | 1 << uVar2;
                  }
                  puVar9 = puVar9 + 1;
                } while (uVar12 != 0x100);
                uVar5 = 0;
              }
              else {
                puVar11 = puVar9 + 0x100;
                do {
                  uVar1 = *puVar9;
                  puVar9 = puVar9 + 1;
                  if ((uVar1 & 8) != 0) {
                    puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                    *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                  }
                  param_1 = param_1 + 1;
                } while (puVar9 != puVar11);
                uVar5 = 0;
              }
            }
            else {
              iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3adc);
              if (iVar4 == 0) {
                puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                puVar9 = (ushort *)*puVar6;
                if (param_1 == (byte *)0x0) {
                  uVar12 = 0;
                  do {
                    iVar4 = (int)uVar12 >> 5;
                    uVar2 = uVar12 & 0x1f;
                    uVar12 = uVar12 + 1;
                    puVar7 = (uint *)(param_2 + iVar4 * 4);
                    if ((*puVar9 & 0x40) != 0) {
                      *puVar7 = *puVar7 | 1 << uVar2;
                    }
                    puVar9 = puVar9 + 1;
                  } while (uVar12 != 0x100);
                  uVar5 = 0;
                }
                else {
                  puVar11 = puVar9 + 0x100;
                  do {
                    uVar1 = *puVar9;
                    puVar9 = puVar9 + 1;
                    if ((uVar1 & 0x40) != 0) {
                      puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                      *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                    }
                    param_1 = param_1 + 1;
                  } while (puVar11 != puVar9);
                  uVar5 = 0;
                }
              }
              else {
                iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3b0c);
                if (iVar4 == 0) {
                  puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                  puVar9 = (ushort *)*puVar6;
                  if (param_1 == (byte *)0x0) {
                    uVar12 = 0;
                    do {
                      iVar4 = (int)uVar12 >> 5;
                      uVar2 = uVar12 & 0x1f;
                      uVar12 = uVar12 + 1;
                      puVar7 = (uint *)(param_2 + iVar4 * 4);
                      if ((*puVar9 & 1) != 0) {
                        *puVar7 = *puVar7 | 1 << uVar2;
                      }
                      puVar9 = puVar9 + 1;
                    } while (uVar12 != 0x100);
                    uVar5 = 0;
                  }
                  else {
                    puVar11 = puVar9 + 0x100;
                    do {
                      uVar1 = *puVar9;
                      puVar9 = puVar9 + 1;
                      if ((uVar1 & 1) != 0) {
                        puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                        *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                      }
                      param_1 = param_1 + 1;
                    } while (puVar11 != puVar9);
                    uVar5 = 0;
                  }
                }
                else {
                  iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ad4);
                  if (iVar4 == 0) {
                    puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                    puVar9 = (ushort *)*puVar6;
                    if (param_1 == (byte *)0x0) {
                      uVar12 = 0;
                      do {
                        iVar4 = (int)uVar12 >> 5;
                        uVar2 = uVar12 & 0x1f;
                        uVar12 = uVar12 + 1;
                        puVar7 = (uint *)(param_2 + iVar4 * 4);
                        if ((*puVar9 & 0x100) != 0) {
                          *puVar7 = *puVar7 | 1 << uVar2;
                        }
                        puVar9 = puVar9 + 1;
                      } while (uVar12 != 0x100);
                      uVar5 = 0;
                    }
                    else {
                      puVar11 = puVar9 + 0x100;
                      do {
                        uVar1 = *puVar9;
                        puVar9 = puVar9 + 1;
                        if ((uVar1 & 0x100) != 0) {
                          puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                          *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                        }
                        param_1 = param_1 + 1;
                      } while (puVar9 != puVar11);
                      uVar5 = 0;
                    }
                  }
                  else {
                    iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3acc);
                    if (iVar4 == 0) {
                      puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                      puVar9 = (ushort *)*puVar6;
                      if (param_1 == (byte *)0x0) {
                        uVar12 = 0;
                        do {
                          iVar4 = (int)uVar12 >> 5;
                          uVar2 = uVar12 & 0x1f;
                          uVar12 = uVar12 + 1;
                          puVar7 = (uint *)(param_2 + iVar4 * 4);
                          if ((*puVar9 & 0x80) != 0) {
                            *puVar7 = *puVar7 | 1 << uVar2;
                          }
                          puVar9 = puVar9 + 1;
                        } while (uVar12 != 0x100);
                        uVar5 = 0;
                      }
                      else {
                        puVar11 = puVar9 + 0x100;
                        do {
                          uVar1 = *puVar9;
                          puVar9 = puVar9 + 1;
                          if ((uVar1 & 0x80) != 0) {
                            puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                            *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                          }
                          param_1 = param_1 + 1;
                        } while (puVar11 != puVar9);
                        uVar5 = 0;
                      }
                    }
                    else {
                      iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3ac4);
                      if (iVar4 == 0) {
                        puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                        puVar9 = (ushort *)*puVar6;
                        if (param_1 == (byte *)0x0) {
                          uVar12 = 0;
                          do {
                            iVar4 = (int)uVar12 >> 5;
                            uVar2 = uVar12 & 0x1f;
                            uVar12 = uVar12 + 1;
                            puVar7 = (uint *)(param_2 + iVar4 * 4);
                            if ((*puVar9 & 0x400) != 0) {
                              *puVar7 = *puVar7 | 1 << uVar2;
                            }
                            puVar9 = puVar9 + 1;
                          } while (uVar12 != 0x100);
                          uVar5 = 0;
                        }
                        else {
                          puVar11 = puVar9 + 0x100;
                          do {
                            uVar1 = *puVar9;
                            puVar9 = puVar9 + 1;
                            if ((uVar1 & 0x400) != 0) {
                              puVar7 = (uint *)(param_2 + ((int)(uint)*param_1 >> 5) * 4);
                              *puVar7 = *puVar7 | 1 << (*param_1 & 0x1f);
                            }
                            param_1 = param_1 + 1;
                          } while (puVar11 != puVar9);
                          uVar5 = 0;
                        }
                      }
                      else {
                        iVar4 = (*(code *)PTR_strcmp_0003d370)(param_6,PTR_DAT_0003d148 + -0x3abc);
                        if (iVar4 == 0) {
                          puVar6 = (undefined4 *)(*(code *)PTR___ctype_b_loc_0003d258)();
                          puVar9 = (ushort *)*puVar6;
                          if (param_1 == (byte *)0x0) {
                            uVar12 = 0;
                            do {
                              iVar4 = (int)uVar12 >> 5;
                              uVar2 = uVar12 & 0x1f;
                              uVar12 = uVar12 + 1;
                              puVar7 = (uint *)(param_2 + iVar4 * 4);
                              if ((*puVar9 & 0x10) != 0) {
                                *puVar7 = *puVar7 | 1 << uVar2;
                              }
                              puVar9 = puVar9 + 1;
                            } while (uVar12 != 0x100);
                            uVar5 = 0;
                          }
                          else {
                            iVar4 = 0;
                            do {
                              uVar1 = *puVar9;
                              pbVar10 = param_1 + iVar4;
                              puVar9 = puVar9 + 1;
                              iVar4 = iVar4 + 1;
                              if ((uVar1 & 0x10) != 0) {
                                puVar7 = (uint *)(param_2 + ((int)(uint)*pbVar10 >> 5) * 4);
                                *puVar7 = *puVar7 | 1 << (*pbVar10 & 0x1f);
                              }
                            } while (iVar4 != 0x100);
                            uVar5 = 0;
                          }
                        }
                        else {
                          uVar5 = 4;
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return uVar5;
}

