
/* WARNING: Unknown calling convention */

int peek_token(re_token_t *token,re_string_t *input,reg_syntax_t syntax)

{
  byte bVar1;
  uchar **ppuVar2;
  re_token_t *token_00;
  wint_t wVar3;
  int iVar4;
  int *piVar5;
  uint uVar6;
  undefined1 *puVar7;
  re_string_t *prVar8;
  re_string_t *prVar9;
  uint uVar10;
  re_token_t next;
  
  token_00 = *(re_token_t **)PTR___stack_chk_guard_004bf38c;
  prVar8 = input;
  prVar9 = (re_string_t *)syntax;
  if (input->stop <= input->cur_idx) {
    token->field_0x4 = 2;
    iVar4 = 0;
    goto LAB_0048ce98;
  }
  uVar10 = (uint)input->mbs[input->cur_idx];
  (token->opr).c = input->mbs[input->cur_idx];
  *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffff9ff;
  if (((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&
     (input->wcs[input->cur_idx] == 0xffffffff)) {
    token->field_0x4 = 1;
    *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;
    iVar4 = 1;
    goto LAB_0048ce98;
  }
  if (uVar10 != 0x5c) {
    token->field_0x4 = 1;
    if (input->mb_cur_max < 2) {
      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();
      uVar6 = 1;
      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {
        uVar6 = (uint)(uVar10 == 0x5f);
      }
      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;
    }
    else {
      prVar8 = (re_string_t *)input->cur_idx;
      wVar3 = re_string_wchar_at(input,(Idx)prVar8);
      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);
      *(uint *)&token->field_0x4 =
           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;
    }
    switch(uVar10 - 10 & 0xff) {
    case 0:
      if ((syntax & 0x800) == 0) {
        iVar4 = 1;
      }
      else {
        token->field_0x4 = 10;
        iVar4 = 1;
      }
      break;
    default:
      iVar4 = 1;
      break;
    case 0x1a:
      if (((syntax & 8) == 0) &&
         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {
        input->cur_idx = iVar4;
        prVar8 = input;
        peek_token(&next,input,syntax);
        input->cur_idx = input->cur_idx + -1;
        prVar9 = (re_string_t *)syntax;
        if (1 < (byte)(next._4_1_ - 9)) {
          iVar4 = 1;
          break;
        }
      }
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x20;
      iVar4 = 1;
      break;
    case 0x1e:
      if ((syntax & 0x2000) == 0) {
        iVar4 = 1;
      }
      else {
        token->field_0x4 = 8;
        iVar4 = 1;
      }
      break;
    case 0x1f:
      if ((syntax & 0x2000) == 0) {
        iVar4 = 1;
      }
      else {
        token->field_0x4 = 9;
        iVar4 = 1;
      }
      break;
    case 0x20:
      token->field_0x4 = 0xb;
      iVar4 = 1;
      break;
    case 0x21:
      if ((syntax & 0x402) == 0) {
        token->field_0x4 = 0x12;
        iVar4 = 1;
      }
      else {
        iVar4 = 1;
      }
      break;
    case 0x24:
      token->field_0x4 = 5;
      iVar4 = 1;
      break;
    case 0x35:
      if ((syntax & 0x402) == 0) {
        token->field_0x4 = 0x13;
        iVar4 = 1;
      }
      else {
        iVar4 = 1;
      }
      break;
    case 0x51:
      token->field_0x4 = 0x14;
      iVar4 = 1;
      break;
    case 0x54:
      if ((syntax & 0x800008) == 0) {
        if (input->cur_idx != 0) {
          if ((syntax & 0x800) == 0) {
            iVar4 = 1;
            break;
          }
          if (input->mbs[input->cur_idx + -1] != '\n') {
            iVar4 = 1;
            break;
          }
        }
      }
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x10;
      iVar4 = 1;
      break;
    case 0x71:
      if ((syntax & 0x1200) == 0x1200) {
        token->field_0x4 = 0x17;
        iVar4 = 1;
      }
      else {
        iVar4 = 1;
      }
      break;
    case 0x72:
      if ((syntax & 0x8400) == 0x8000) {
        token->field_0x4 = 10;
        iVar4 = 1;
      }
      else {
        iVar4 = 1;
      }
      break;
    case 0x73:
      if ((syntax & 0x1200) == 0x1200) {
        token->field_0x4 = 0x18;
        iVar4 = 1;
      }
      else {
        iVar4 = 1;
      }
    }
    goto LAB_0048ce98;
  }
  prVar8 = (re_string_t *)input->cur_idx;
  ppuVar2 = &prVar8->raw_mbs;
  puVar7 = (undefined1 *)((int)ppuVar2 + 1);
  if (input->len <= (int)puVar7) {
    token->field_0x4 = 0x24;
    iVar4 = 1;
    goto LAB_0048ce98;
  }
  if (input->mbs_allocated == '\0') {
    uVar10 = (uint)input->mbs[(int)puVar7];
  }
  else {
    if (1 < input->mb_cur_max) {
      prVar9 = (re_string_t *)0xffffffff;
      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);
      if ((input->wcs[(int)puVar7] == 0xffffffff) ||
         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&
          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {
        uVar10 = (uint)input->mbs[(int)puVar7];
        goto LAB_0048cf14;
      }
    }
    if (input->offsets_needed == '\0') {
      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];
    }
    else {
      prVar8 = (re_string_t *)input->offsets[(int)puVar7];
      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));
      uVar10 = (uint)bVar1;
      if ((bVar1 & 0x80) != 0) {
        uVar10 = (uint)input->mbs[(int)puVar7];
      }
    }
  }
LAB_0048cf14:
  (token->opr).c = (uchar)uVar10;
  token->field_0x4 = 1;
  if (input->mb_cur_max < 2) {
    piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();
    *(uint *)&token->field_0x4 =
         *(uint *)&token->field_0x4 & 0xfffffdff |
         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;
  }
  else {
    prVar8 = (re_string_t *)(input->cur_idx + 1);
    wVar3 = re_string_wchar_at(input,(Idx)prVar8);
    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);
    *(uint *)&token->field_0x4 =
         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;
  }
  switch(uVar10 - 0x27 & 0xff) {
  case 0:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x80;
      iVar4 = 2;
    }
    break;
  case 1:
    if ((syntax & 0x2000) == 0) {
      token->field_0x4 = 8;
      iVar4 = 2;
    }
    else {
      iVar4 = 2;
    }
    break;
  case 2:
    if ((syntax & 0x2000) == 0) {
      token->field_0x4 = 9;
      iVar4 = 2;
    }
    else {
      iVar4 = 2;
    }
    break;
  default:
    iVar4 = 2;
    break;
  case 4:
    iVar4 = 2;
    if ((syntax & 0x402) == 2) {
      token->field_0x4 = 0x12;
      iVar4 = 2;
    }
    break;
  case 10:
  case 0xb:
  case 0xc:
  case 0xd:
  case 0xe:
  case 0xf:
  case 0x10:
  case 0x11:
  case 0x12:
    if ((syntax & 0x4000) == 0) {
      token->field_0x4 = 4;
      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);
      iVar4 = 2;
    }
    else {
      iVar4 = 2;
    }
    break;
  case 0x15:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 6;
      iVar4 = 2;
    }
    break;
  case 0x17:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 9;
      iVar4 = 2;
    }
    break;
  case 0x18:
    iVar4 = 2;
    if ((syntax & 0x402) == 2) {
      token->field_0x4 = 0x13;
      iVar4 = 2;
    }
    break;
  case 0x1b:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x200;
      iVar4 = 2;
    }
    break;
  case 0x2c:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0x23;
      iVar4 = 2;
    }
    break;
  case 0x30:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0x21;
      iVar4 = 2;
    }
    break;
  case 0x39:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x40;
      iVar4 = 2;
    }
    break;
  case 0x3b:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x100;
      iVar4 = 2;
    }
    break;
  case 0x4c:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0x22;
      iVar4 = 2;
    }
    break;
  case 0x50:
    if ((int)(syntax << 0xc) < 0) {
      iVar4 = 2;
    }
    else {
      token->field_0x4 = 0x20;
      iVar4 = 2;
    }
    break;
  case 0x54:
    if ((syntax & 0x1200) == 0x200) {
      token->field_0x4 = 0x17;
      iVar4 = 2;
    }
    else {
      iVar4 = 2;
    }
    break;
  case 0x55:
    if ((syntax & 0x8400) == 0) {
      token->field_0x4 = 10;
      iVar4 = 2;
    }
    else {
      iVar4 = 2;
    }
    break;
  case 0x56:
    if ((syntax & 0x1200) == 0x200) {
      token->field_0x4 = 0x18;
      iVar4 = 2;
    }
    else {
      iVar4 = 2;
    }
  }
LAB_0048ce98:
  if (token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c) {
    return iVar4;
  }
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  iVar4 = peek_token(token_00,prVar8,(reg_syntax_t)prVar9);
  iVar4 = prVar8->cur_idx + iVar4;
  prVar8->cur_idx = iVar4;
  return iVar4;
}



int FUN_0048cd50(byte *param_1,int *param_2,uint param_3)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  uint uVar7;
  undefined1 auStack_24 [4];
  char local_20;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;
  piVar6 = param_2;
  if (param_2[0xe] <= param_2[10]) {
    param_1[4] = 2;
    iVar2 = 0;
    goto LAB_0048ce98;
  }
  bVar1 = *(byte *)(param_2[1] + param_2[10]);
  uVar7 = (uint)bVar1;
  *param_1 = bVar1;
  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;
  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&
     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {
    param_1[4] = 1;
    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;
    iVar2 = 1;
    goto LAB_0048ce98;
  }
  if (uVar7 != 0x5c) {
    param_1[4] = 1;
    if (param_2[0x14] < 2) {
      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);
      uVar5 = 1;
      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {
        uVar5 = (uint)(uVar7 == 0x5f);
      }
      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;
    }
    else {
      piVar6 = (int *)param_2[10];
      iVar2 = FUN_00489d48();
      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);
      *(uint *)(param_1 + 4) =
           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;
    }
    switch(uVar7 - 10 & 0xff) {
    case 0:
      if ((param_3 & 0x800) == 0) {
        iVar2 = 1;
      }
      else {
        param_1[4] = 10;
        iVar2 = 1;
      }
      break;
    default:
      iVar2 = 1;
      break;
    case 0x1a:
      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {
        param_2[10] = param_2[10] + 1;
        piVar6 = param_2;
        FUN_0048cd50(auStack_24,param_2,param_3);
        param_2[10] = param_2[10] + -1;
        if (1 < (byte)(local_20 - 9U)) {
          iVar2 = 1;
          break;
        }
      }
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x20;
      iVar2 = 1;
      break;
    case 0x1e:
      if ((param_3 & 0x2000) == 0) {
        iVar2 = 1;
      }
      else {
        param_1[4] = 8;
        iVar2 = 1;
      }
      break;
    case 0x1f:
      if ((param_3 & 0x2000) == 0) {
        iVar2 = 1;
      }
      else {
        param_1[4] = 9;
        iVar2 = 1;
      }
      break;
    case 0x20:
      param_1[4] = 0xb;
      iVar2 = 1;
      break;
    case 0x21:
      if ((param_3 & 0x402) == 0) {
        param_1[4] = 0x12;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x24:
      param_1[4] = 5;
      iVar2 = 1;
      break;
    case 0x35:
      if ((param_3 & 0x402) == 0) {
        param_1[4] = 0x13;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x51:
      param_1[4] = 0x14;
      iVar2 = 1;
      break;
    case 0x54:
      if ((param_3 & 0x800008) == 0) {
        if (param_2[10] != 0) {
          if ((param_3 & 0x800) == 0) {
            iVar2 = 1;
            break;
          }
          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {
            iVar2 = 1;
            break;
          }
        }
      }
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x10;
      iVar2 = 1;
      break;
    case 0x71:
      if ((param_3 & 0x1200) == 0x1200) {
        param_1[4] = 0x17;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x72:
      if ((param_3 & 0x8400) == 0x8000) {
        param_1[4] = 10;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x73:
      if ((param_3 & 0x1200) == 0x1200) {
        param_1[4] = 0x18;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
    }
    goto LAB_0048ce98;
  }
  piVar6 = (int *)param_2[10];
  iVar2 = (int)piVar6 + 1;
  if (param_2[0xc] <= iVar2) {
    param_1[4] = 0x24;
    iVar2 = 1;
    goto LAB_0048ce98;
  }
  if (*(char *)((int)param_2 + 0x4b) == '\0') {
    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);
  }
  else {
    if (1 < param_2[0x14]) {
      piVar6 = (int *)((int)piVar6 + 2);
      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||
         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {
        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);
        goto LAB_0048cf14;
      }
    }
    if (*(char *)(param_2 + 0x13) == '\0') {
      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);
    }
    else {
      piVar6 = *(int **)(param_2[3] + iVar2 * 4);
      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);
      uVar7 = (uint)bVar1;
      if ((bVar1 & 0x80) != 0) {
        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);
      }
    }
  }
LAB_0048cf14:
  *param_1 = (byte)uVar7;
  param_1[4] = 1;
  if (param_2[0x14] < 2) {
    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);
    *(uint *)(param_1 + 4) =
         *(uint *)(param_1 + 4) & 0xfffffdff |
         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;
  }
  else {
    piVar6 = (int *)(param_2[10] + 1);
    iVar2 = FUN_00489d48();
    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);
    *(uint *)(param_1 + 4) =
         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;
  }
  switch(uVar7 - 0x27 & 0xff) {
  case 0:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x80;
      iVar2 = 2;
    }
    break;
  case 1:
    if ((param_3 & 0x2000) == 0) {
      param_1[4] = 8;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 2:
    if ((param_3 & 0x2000) == 0) {
      param_1[4] = 9;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  default:
    iVar2 = 2;
    break;
  case 4:
    iVar2 = 2;
    if ((param_3 & 0x402) == 2) {
      param_1[4] = 0x12;
      iVar2 = 2;
    }
    break;
  case 10:
  case 0xb:
  case 0xc:
  case 0xd:
  case 0xe:
  case 0xf:
  case 0x10:
  case 0x11:
  case 0x12:
    if ((param_3 & 0x4000) == 0) {
      param_1[4] = 4;
      *(uint *)param_1 = uVar7 - 0x31;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 0x15:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 6;
      iVar2 = 2;
    }
    break;
  case 0x17:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 9;
      iVar2 = 2;
    }
    break;
  case 0x18:
    iVar2 = 2;
    if ((param_3 & 0x402) == 2) {
      param_1[4] = 0x13;
      iVar2 = 2;
    }
    break;
  case 0x1b:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 2;
      param_1[3] = 0;
      iVar2 = 2;
    }
    break;
  case 0x2c:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x23;
      iVar2 = 2;
    }
    break;
  case 0x30:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x21;
      iVar2 = 2;
    }
    break;
  case 0x39:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x40;
      iVar2 = 2;
    }
    break;
  case 0x3b:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 1;
      param_1[3] = 0;
      iVar2 = 2;
    }
    break;
  case 0x4c:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x22;
      iVar2 = 2;
    }
    break;
  case 0x50:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x20;
      iVar2 = 2;
    }
    break;
  case 0x54:
    if ((param_3 & 0x1200) == 0x200) {
      param_1[4] = 0x17;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 0x55:
    if ((param_3 & 0x8400) == 0) {
      param_1[4] = 10;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 0x56:
    if ((param_3 & 0x1200) == 0x200) {
      param_1[4] = 0x18;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
  }
LAB_0048ce98:
  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {
    return iVar2;
  }
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  iVar2 = FUN_0048cd50();
  iVar3 = piVar6[10];
  piVar6[10] = iVar3 + iVar2;
  return iVar3 + iVar2;
}


addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
lui gp,0x4c
addiu gp,gp,0x6b20
sw gp,0x10(sp)
or s1,a0,zero
lw v0,-0x7794(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
lw v1,0x28(a1)
lw v0,0x38(a1)
slt v0,v1,v0
beq v0,zero,0x0048ce8c
_or s0,a1,zero
lw v0,0x4(a1)
addu v1,v0,v1
lbu s2,0x0(v1)
sb s2,0x0(a0)
lw v0,0x4(a0)
ins v0,zero,0x9,0x1
ins v0,zero,0xa,0x1
sw v0,0x4(a0)
lw v1,0x50(a1)
slti v0,v1,0x2
bne v0,zero,0x0048cdf4
_or s3,a2,zero
lw v0,0x28(a1)
lw a0,0x1c(a1)
beq v0,a0,0x0048cdf4
_sll v0,v0,0x2
lw a0,0x8(a1)
addu v0,a0,v0
lw a0,0x0(v0)
li v0,-0x1
beq a0,v0,0x0048cec8
_li v0,0x1
li v0,0x5c
beq s2,v0,0x0048cee4
_li v0,0x1
sb v0,0x4(s1)
lw v0,0x50(s0)
slti v0,v0,0x2
bne v0,zero,0x0048d2f0
_or a0,s0,zero
lw a1,0x28(s0)
jal 0x00489d48
_nop
lw gp,0x10(sp)
or s4,v0,zero
or a0,v0,zero
lw t9,-0x78c4(gp)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x0048d2e8
_nop
xori s4,s4,0x5f
sltiu s4,s4,0x1
sltu s4,zero,s4
lw v0,0x4(s1)
ins v0,s4,0x9,0x1
sw v0,0x4(s1)
addiu s2,s2,-0xa
andi v0,s2,0xff
sltiu v0,v0,0x74
beq v0,zero,0x0048d5bc
_andi s2,s2,0xff
sll s2,s2,0x2
lui v0,0x4b
addiu v0,v0,-0x4bc0
addu s2,v0,s2
lw v0,0x0(s2)
jr v0
_nop
li v0,0x2
sb v0,0x4(a0)
or v0,zero,zero
lw a0,0x24(sp)
lw v1,-0x7794(gp)
lw v1,0x0(v1)
bne a0,v1,0x0048d60c
_lw ra,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x40
sb v0,0x4(s1)
lw v0,0x4(s1)
li v1,0x1
ins v0,v1,0xa,0x1
sw v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
lw a1,0x28(s0)
addiu a0,a1,0x1
lw v0,0x30(s0)
slt v0,a0,v0
beq v0,zero,0x0048cf6c
_li v0,0x24
lbu v0,0x4b(s0)
bne v0,zero,0x0048cf78
_slti v1,v1,0x2
lw v0,0x4(s0)
addu a0,v0,a0
lbu s2,0x0(a0)
sb s2,0x0(s1)
li v0,0x1
sb v0,0x4(s1)
lw v0,0x50(s0)
slti v0,v0,0x2
bne v0,zero,0x0048d050
_or a0,s0,zero
lw a1,0x28(s0)
addiu a1,a1,0x1
jal 0x00489d48
_nop
lw gp,0x10(sp)
or s0,v0,zero
or a0,v0,zero
lw t9,-0x78c4(gp)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x0048d00c
_xori v0,s0,0x5f
b 0x0048d010
_sltiu v0,v0,0x1
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
bne v1,zero,0x0048cfb4
_sll v1,a0,0x2
lw v0,0x8(s0)
addu a2,v0,v1
lw a3,0x0(a2)
li a2,-0x1
beq a3,a2,0x0048cffc
_addiu a1,a1,0x2
lw a2,0x1c(s0)
beq a2,a1,0x0048cfb4
_addu v0,v0,v1
lw v1,0x4(v0)
li v0,-0x1
beq v1,v0,0x0048cffc
_nop
lbu v0,0x4c(s0)
beq v0,zero,0x0048d5f4
_sll v0,a0,0x2
lw v1,0xc(s0)
addu v1,v1,v0
lw v0,0x0(s0)
lw a1,0x0(v1)
lw v1,0x18(s0)
addu v0,v0,a1
addu v0,v0,v1
lbu s2,0x0(v0)
andi v0,s2,0x80
beq v0,zero,0x0048cf14
_nop
lw v0,0x4(s0)
addu a0,v0,a0
b 0x0048cf14
_lbu s2,0x0(a0)
lw v0,0x4(s0)
addu a0,v0,a0
b 0x0048cf14
_lbu s2,0x0(a0)
li v0,0x1
sltu v0,zero,v0
lw v1,0x4(s1)
ins v1,v0,0x9,0x1
sw v1,0x4(s1)
addiu v0,s2,-0x27
andi v1,v0,0xff
sltiu v1,v1,0x57
beq v1,zero,0x0048d544
_lui v1,0x4b
andi v0,v0,0xff
sll v0,v0,0x2
addiu v1,v1,-0x49f0
addu v0,v1,v0
lw v0,0x0(v0)
jr v0
_nop
lw t9,-0x79b8(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x0(v0)
sll v1,s2,0x1
addu v0,v0,v1
lhu v0,0x0(v0)
andi v0,v0,0x800
bne v0,zero,0x0048d084
_xori v0,s2,0x5f
b 0x0048d088
_sltiu v0,v0,0x1
li v0,0x1
sltu v0,zero,v0
lw v1,0x4(s1)
ins v1,v0,0x9,0x1
b 0x0048d020
_sw v1,0x4(s1)
andi s3,s3,0x8400
bne s3,zero,0x0048d54c
_nop
li v0,0xa
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x4000
bne s3,zero,0x0048d554
_addiu s2,s2,-0x31
li v0,0x4
sb v0,0x4(s1)
sw s2,0x0(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d55c
_nop
li v0,0xc
sb v0,0x4(s1)
li v0,0x6
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d564
_nop
li v0,0xc
sb v0,0x4(s1)
li v0,0x9
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d56c
_nop
li v0,0xc
sb v0,0x4(s1)
li v0,0x100
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d574
_nop
li v0,0xc
sb v0,0x4(s1)
li v0,0x200
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d57c
_nop
li v0,0x20
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d584
_nop
li v0,0x21
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d58c
_nop
li v0,0x22
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d594
_nop
li v0,0x23
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d59c
_nop
li v0,0xc
sb v0,0x4(s1)
li v0,0x40
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x2
ext s3,s3,0x13,0x1
bne s3,zero,0x0048d5a4
_nop
li v0,0xc
sb v0,0x4(s1)
li v0,0x80
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x2000
bne s3,zero,0x0048d5ac
_nop
li v0,0x8
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x2000
bne s3,zero,0x0048d5b4
_nop
li v0,0x9
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x402
li v0,0x2
bne s3,v0,0x0048ce98
_nop
li v0,0x12
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x402
li v0,0x2
bne s3,v0,0x0048ce98
_nop
li v0,0x13
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x1200
li v0,0x200
beq s3,v0,0x0048d2b0
_nop
b 0x0048ce98
_li v0,0x2
li v0,0x17
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
andi s3,s3,0x1200
li v0,0x200
beq s3,v0,0x0048d2d8
_nop
b 0x0048ce98
_li v0,0x2
li v0,0x18
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x2
b 0x0048ce4c
_li s4,0x1
lw t9,-0x79b8(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x0(v0)
sll v1,s2,0x1
addu v0,v0,v1
lhu v0,0x0(v0)
andi v0,v0,0x800
bne v0,zero,0x0048d324
_li v1,0x1
xori v1,s2,0x5f
sltiu v1,v1,0x1
lw v0,0x4(s1)
ins v0,v1,0x9,0x1
b 0x0048ce5c
_sw v0,0x4(s1)
andi s3,s3,0x800
beq s3,zero,0x0048d5c4
_nop
li v0,0xa
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x8400
ori v0,zero,0x8000
beq s3,v0,0x0048d368
_nop
b 0x0048ce98
_li v0,0x1
li v0,0xa
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
li v0,0xb
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x402
bne s3,zero,0x0048d5cc
_nop
li v0,0x12
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x402
bne s3,zero,0x0048d5d4
_nop
li v0,0x13
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x1200
li v0,0x1200
beq s3,v0,0x0048d3d8
_nop
b 0x0048ce98
_li v0,0x1
li v0,0x17
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x1200
li v0,0x1200
beq s3,v0,0x0048d400
_nop
b 0x0048ce98
_li v0,0x1
li v0,0x18
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x2000
beq s3,zero,0x0048d5dc
_nop
li v0,0x8
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
andi s3,s3,0x2000
beq s3,zero,0x0048d5e4
_nop
li v0,0x9
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
li v0,0x14
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
li v0,0x5
sb v0,0x4(s1)
b 0x0048ce98
_li v0,0x1
lui v0,0x80
addiu v0,v0,0x8
and v0,s3,v0
bne v0,zero,0x0048d4b4
_li v0,0xc
lw v0,0x28(s0)
beq v0,zero,0x0048d4b0
_andi s3,s3,0x800
beq s3,zero,0x0048d5ec
_nop
lw v1,0x4(s0)
addu v0,v1,v0
lbu v1,-0x1(v0)
li v0,0xa
beq v1,v0,0x0048d4b0
_nop
b 0x0048ce98
_li v0,0x1
li v0,0xc
sb v0,0x4(s1)
li v0,0x10
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x1
andi v0,s3,0x8
bne v0,zero,0x0048d4ec
_li v0,0xc
lw v0,0x28(s0)
addiu v0,v0,0x1
lw v1,0x30(s0)
bne v0,v1,0x0048d500
_or a2,s3,zero
li v0,0xc
sb v0,0x4(s1)
li v0,0x20
sw v0,0x0(s1)
b 0x0048ce98
_li v0,0x1
sw v0,0x28(s0)
or a1,s0,zero
addiu a0,sp,0x1c
jal 0x0048cd50
_nop
lw gp,0x10(sp)
lw v0,0x28(s0)
addiu v0,v0,-0x1
sw v0,0x28(s0)
lbu v0,0x20(sp)
addiu v0,v0,-0x9
andi v0,v0,0xff
sltiu v0,v0,0x2
bne v0,zero,0x0048d4e8
_nop
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x2
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x1
b 0x0048ce98
_li v0,0x1
lw v0,0x0(s0)
lw v1,0x18(s0)
addu v0,v0,a0
addu v0,v0,v1
b 0x0048cf14
_lbu s2,0x0(v0)
lw t9,-0x77d4(gp)
jalr t9
_nop
(translation_unit "int FUN_0048cd50(byte *param_1,int *param_2,uint param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}\n\n" (function_definition "int FUN_0048cd50(byte *param_1,int *param_2,uint param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}" primitive_type (function_declarator "FUN_0048cd50(byte *param_1,int *param_2,uint param_3)" identifier (parameter_list "(byte *param_1,int *param_2,uint param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined1 auStack_24 [4];" type_identifier (array_declarator "auStack_24 [4]" identifier [ number_literal ]) ;) (declaration "char local_20;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_004bf38c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(int *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar6 = param_2;" (assignment_expression "piVar6 = param_2" identifier = identifier) ;) (if_statement "if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(param_2[0xe] <= param_2[10])" ( (binary_expression "param_2[0xe] <= param_2[10]" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) <= (subscript_expression "param_2[10]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 2;" (assignment_expression "param_1[4] = 2" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (expression_statement "bVar1 = *(byte *)(param_2[1] + param_2[10]);" (assignment_expression "bVar1 = *(byte *)(param_2[1] + param_2[10])" identifier = (pointer_expression "*(byte *)(param_2[1] + param_2[10])" * (cast_expression "(byte *)(param_2[1] + param_2[10])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + param_2[10])" ( (binary_expression "param_2[1] + param_2[10]" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (subscript_expression "param_2[10]" identifier [ number_literal ])) ))))) ;) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*param_1 = bVar1;" (assignment_expression "*param_1 = bVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffff9ff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1))" ( (binary_expression "((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)" (parenthesized_expression "((1 < param_2[0x14]) && (param_2[10] != param_2[7]))" ( (binary_expression "(1 < param_2[0x14]) && (param_2[10] != param_2[7])" (parenthesized_expression "(1 < param_2[0x14])" ( (binary_expression "1 < param_2[0x14]" number_literal < (subscript_expression "param_2[0x14]" identifier [ number_literal ])) )) && (parenthesized_expression "(param_2[10] != param_2[7])" ( (binary_expression "param_2[10] != param_2[7]" (subscript_expression "param_2[10]" identifier [ number_literal ]) != (subscript_expression "param_2[7]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(*(int *)(param_2[2] + param_2[10] * 4) == -1)" ( (binary_expression "*(int *)(param_2[2] + param_2[10] * 4) == -1" (pointer_expression "*(int *)(param_2[2] + param_2[10] * 4)" * (cast_expression "(int *)(param_2[2] + param_2[10] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + param_2[10] * 4)" ( (binary_expression "param_2[2] + param_2[10] * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "param_2[10] * 4" (subscript_expression "param_2[10]" identifier [ number_literal ]) * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffbff | 0x400" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffbff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (if_statement "if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(uVar7 != 0x5c)" ( (binary_expression "uVar7 != 0x5c" identifier != number_literal) )) (compound_statement "{\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" if (parenthesized_expression "(param_2[0x14] < 2)" ( (binary_expression "param_2[0x14] < 2" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" * (cast_expression "(code *)PTR___ctype_b_loc_004bf168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }" if (parenthesized_expression "((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0)" ( (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar4 + uVar7 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar4 + uVar7 * 2)" * (cast_expression "(ushort *)(*piVar4 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + uVar7 * 2)" ( (binary_expression "*piVar4 + uVar7 * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }" { (expression_statement "uVar5 = (uint)(uVar7 == 0x5f);" (assignment_expression "uVar5 = (uint)(uVar7 == 0x5f)" identifier = (call_expression "(uint)(uVar7 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 == 0x5f)" ( (binary_expression "uVar7 == 0x5f" identifier == number_literal) )))) ;) })) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "uVar5 << 9" identifier << number_literal))) ;) }) (else_clause "else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" else (compound_statement "{\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" { (expression_statement "piVar6 = (int *)param_2[10];" (assignment_expression "piVar6 = (int *)param_2[10]" identifier = (cast_expression "(int *)param_2[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = FUN_00489d48();" (assignment_expression "iVar2 = FUN_00489d48()" identifier = (call_expression "FUN_00489d48()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(iVar2)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (call_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0 || iVar2 == 0x5f)" ( (binary_expression "iVar3 != 0 || iVar2 == 0x5f" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "iVar2 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }))) (switch_statement "switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }" switch (parenthesized_expression "(uVar7 - 10 & 0xff)" ( (binary_expression "uVar7 - 10 & 0xff" (binary_expression "uVar7 - 10" identifier - number_literal) & number_literal) )) (compound_statement "{\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }" { (case_statement "case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x800) == 0)" ( (binary_expression "(param_3 & 0x800) == 0" (parenthesized_expression "(param_3 & 0x800)" ( (binary_expression "param_3 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" else (compound_statement "{\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n      iVar2 = 1;\n      break;" default : (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;" case number_literal : (if_statement "if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }" if (parenthesized_expression "(((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc]))" ( (binary_expression "((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])" (parenthesized_expression "((param_3 & 8) == 0)" ( (binary_expression "(param_3 & 8) == 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_2[10] + 1 != param_2[0xc])" ( (binary_expression "param_2[10] + 1 != param_2[0xc]" (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) != (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ))) )) (compound_statement "{\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }" { (expression_statement "param_2[10] = param_2[10] + 1;" (assignment_expression "param_2[10] = param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) = (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar6 = param_2;" (assignment_expression "piVar6 = param_2" identifier = identifier) ;) (expression_statement "FUN_0048cd50(auStack_24,param_2,param_3);" (call_expression "FUN_0048cd50(auStack_24,param_2,param_3)" identifier (argument_list "(auStack_24,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_2[10] = param_2[10] + -1;" (assignment_expression "param_2[10] = param_2[10] + -1" (subscript_expression "param_2[10]" identifier [ number_literal ]) = (binary_expression "param_2[10] + -1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }" if (parenthesized_expression "(1 < (byte)(local_20 - 9U))" ( (binary_expression "1 < (byte)(local_20 - 9U)" number_literal < (call_expression "(byte)(local_20 - 9U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_20 - 9U)" ( (binary_expression "local_20 - 9U" identifier - number_literal) )))) )) (compound_statement "{\n          iVar2 = 1;\n          break;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x20;" (assignment_expression "param_1[3] = 0x20" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" else (compound_statement "{\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 8;" (assignment_expression "param_1[4] = 8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" else (compound_statement "{\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 9;" (assignment_expression "param_1[4] = 9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;" case number_literal : (expression_statement "param_1[4] = 0xb;" (assignment_expression "param_1[4] = 0xb" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x402) == 0)" ( (binary_expression "(param_3 & 0x402) == 0" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x12;" (assignment_expression "param_1[4] = 0x12" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;" case number_literal : (expression_statement "param_1[4] = 5;" (assignment_expression "param_1[4] = 5" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x402) == 0)" ( (binary_expression "(param_3 & 0x402) == 0" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x13;" (assignment_expression "param_1[4] = 0x13" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;" case number_literal : (expression_statement "param_1[4] = 0x14;" (assignment_expression "param_1[4] = 0x14" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;" case number_literal : (if_statement "if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }" if (parenthesized_expression "((param_3 & 0x800008) == 0)" ( (binary_expression "(param_3 & 0x800008) == 0" (parenthesized_expression "(param_3 & 0x800008)" ( (binary_expression "param_3 & 0x800008" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }" { (if_statement "if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }" if (parenthesized_expression "(param_2[10] != 0)" ( (binary_expression "param_2[10] != 0" (subscript_expression "param_2[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }" { (if_statement "if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }" if (parenthesized_expression "((param_3 & 0x800) == 0)" ( (binary_expression "(param_3 & 0x800) == 0" (parenthesized_expression "(param_3 & 0x800)" ( (binary_expression "param_3 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar2 = 1;\n            break;\n          }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }" if (parenthesized_expression "(*(char *)(param_2[1] + param_2[10] + -1) != '\n')" ( (binary_expression "*(char *)(param_2[1] + param_2[10] + -1) != '\n'" (pointer_expression "*(char *)(param_2[1] + param_2[10] + -1)" * (cast_expression "(char *)(param_2[1] + param_2[10] + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + param_2[10] + -1)" ( (binary_expression "param_2[1] + param_2[10] + -1" (binary_expression "param_2[1] + param_2[10]" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n            iVar2 = 1;\n            break;\n          }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x1200) == 0x1200)" ( (binary_expression "(param_3 & 0x1200) == 0x1200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x17;" (assignment_expression "param_1[4] = 0x17" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x8400) == 0x8000)" ( (binary_expression "(param_3 & 0x8400) == 0x8000" (parenthesized_expression "(param_3 & 0x8400)" ( (binary_expression "param_3 & 0x8400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x1200) == 0x1200)" ( (binary_expression "(param_3 & 0x1200) == 0x1200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x18;" (assignment_expression "param_1[4] = 0x18" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) })))) })) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)param_2[10];" (assignment_expression "piVar6 = (int *)param_2[10]" identifier = (cast_expression "(int *)param_2[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = (int)piVar6 + 1;" (assignment_expression "iVar2 = (int)piVar6 + 1" identifier = (binary_expression "(int)piVar6 + 1" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(param_2[0xc] <= iVar2)" ( (binary_expression "param_2[0xc] <= iVar2" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 0x24;" (assignment_expression "param_1[4] = 0x24" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)((int)param_2 + 0x4b) == '\0')" ( (binary_expression "*(char *)((int)param_2 + 0x4b) == '\0'" (pointer_expression "*(char *)((int)param_2 + 0x4b)" * (cast_expression "(char *)((int)param_2 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x4b)" ( (binary_expression "(int)param_2 + 0x4b" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }" { (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" identifier = (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2[1] + iVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + iVar2)" ( (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier) ))))) ;) }) (else_clause "else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" else (compound_statement "{\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" { (if_statement "if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }" if (parenthesized_expression "(1 < param_2[0x14])" ( (binary_expression "1 < param_2[0x14]" number_literal < (subscript_expression "param_2[0x14]" identifier [ number_literal ])) )) (compound_statement "{\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }" { (expression_statement "piVar6 = (int *)((int)piVar6 + 2);" (assignment_expression "piVar6 = (int *)((int)piVar6 + 2)" identifier = (cast_expression "(int *)((int)piVar6 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 2)" ( (binary_expression "(int)piVar6 + 2" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }" if (parenthesized_expression "((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1))))" ( (binary_expression "(*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))" (parenthesized_expression "(*(int *)(param_2[2] + iVar2 * 4) == -1)" ( (binary_expression "*(int *)(param_2[2] + iVar2 * 4) == -1" (pointer_expression "*(int *)(param_2[2] + iVar2 * 4)" * (cast_expression "(int *)(param_2[2] + iVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + iVar2 * 4)" ( (binary_expression "param_2[2] + iVar2 * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "iVar2 * 4" identifier * number_literal)) )))) == number_literal) )) || (parenthesized_expression "(((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))" ( (parenthesized_expression "((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1))" ( (binary_expression "(int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)" (binary_expression "(int *)param_2[7] != piVar6" (cast_expression "(int *)param_2[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != identifier) && (parenthesized_expression "(*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)" ( (binary_expression "*(int *)(param_2[2] + iVar2 * 4 + 4) == -1" (pointer_expression "*(int *)(param_2[2] + iVar2 * 4 + 4)" * (cast_expression "(int *)(param_2[2] + iVar2 * 4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + iVar2 * 4 + 4)" ( (binary_expression "param_2[2] + iVar2 * 4 + 4" (binary_expression "param_2[2] + iVar2 * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "iVar2 * 4" identifier * number_literal)) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }" { (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" identifier = (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2[1] + iVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + iVar2)" ( (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier) ))))) ;) (goto_statement "goto LAB_0048cf14;" goto statement_identifier ;) })) })) (if_statement "if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x13) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x13) == '\0'" (pointer_expression "*(char *)(param_2 + 0x13)" * (cast_expression "(char *)(param_2 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x13)" ( (binary_expression "param_2 + 0x13" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }" { (expression_statement "uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);" (assignment_expression "uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6])" identifier = (binary_expression "(uint)*(byte *)(*param_2 + iVar2 + param_2[6])" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*param_2 + iVar2 + param_2[6])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + iVar2 + param_2[6])" ( (binary_expression "*param_2 + iVar2 + param_2[6]" (binary_expression "*param_2 + iVar2" (pointer_expression "*param_2" * identifier) + identifier) + (subscript_expression "param_2[6]" identifier [ number_literal ])) ))))) ;) }) (else_clause "else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" else (compound_statement "{\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" { (expression_statement "piVar6 = *(int **)(param_2[3] + iVar2 * 4);" (assignment_expression "piVar6 = *(int **)(param_2[3] + iVar2 * 4)" identifier = (pointer_expression "*(int **)(param_2[3] + iVar2 * 4)" * (cast_expression "(int **)(param_2[3] + iVar2 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[3] + iVar2 * 4)" ( (binary_expression "param_2[3] + iVar2 * 4" (subscript_expression "param_2[3]" identifier [ number_literal ]) + (binary_expression "iVar2 * 4" identifier * number_literal)) ))))) ;) (expression_statement "bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);" (assignment_expression "bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2)" identifier = (pointer_expression "*(byte *)((int)piVar6 + param_2[6] + *param_2)" * (cast_expression "(byte *)((int)piVar6 + param_2[6] + *param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + param_2[6] + *param_2)" ( (binary_expression "(int)piVar6 + param_2[6] + *param_2" (binary_expression "(int)piVar6 + param_2[6]" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_2[6]" identifier [ number_literal ])) + (pointer_expression "*param_2" * identifier)) ))))) ;) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }" if (parenthesized_expression "((bVar1 & 0x80) != 0)" ( (binary_expression "(bVar1 & 0x80) != 0" (parenthesized_expression "(bVar1 & 0x80)" ( (binary_expression "bVar1 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }" { (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" identifier = (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2[1] + iVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + iVar2)" ( (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier) ))))) ;) })) }))) }))) (labeled_statement "LAB_0048cf14:\n  *param_1 = (byte)uVar7;" statement_identifier : (expression_statement "*param_1 = (byte)uVar7;" (assignment_expression "*param_1 = (byte)uVar7" (pointer_expression "*param_1" * identifier) = (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;)) (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" if (parenthesized_expression "(param_2[0x14] < 2)" ( (binary_expression "param_2[0x14] < 2" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" * (cast_expression "(code *)PTR___ctype_b_loc_004bf168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (call_expression "(uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f)" ( (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f" (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar4 + uVar7 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar4 + uVar7 * 2)" * (cast_expression "(ushort *)(*piVar4 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + uVar7 * 2)" ( (binary_expression "*piVar4 + uVar7 * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) || (binary_expression "uVar7 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }) (else_clause "else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" else (compound_statement "{\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" { (expression_statement "piVar6 = (int *)(param_2[10] + 1);" (assignment_expression "piVar6 = (int *)(param_2[10] + 1)" identifier = (cast_expression "(int *)(param_2[10] + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 1)" ( (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "iVar2 = FUN_00489d48();" (assignment_expression "iVar2 = FUN_00489d48()" identifier = (call_expression "FUN_00489d48()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(iVar2)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (call_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0 || iVar2 == 0x5f)" ( (binary_expression "iVar3 != 0 || iVar2 == 0x5f" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "iVar2 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }))) (switch_statement "switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" switch (parenthesized_expression "(uVar7 - 0x27 & 0xff)" ( (binary_expression "uVar7 - 0x27 & 0xff" (binary_expression "uVar7 - 0x27" identifier - number_literal) & number_literal) )) (compound_statement "{\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" { (case_statement "case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x80;" (assignment_expression "param_1[3] = 0x80" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 8;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 8;" (assignment_expression "param_1[4] = 8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 9;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 9;" (assignment_expression "param_1[4] = 9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n    iVar2 = 2;\n    break;" default : (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x402) == 2)" ( (binary_expression "(param_3 & 0x402) == 2" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x12;" (assignment_expression "param_1[4] = 0x12" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x4000) == 0)" ( (binary_expression "(param_3 & 0x4000) == 0" (parenthesized_expression "(param_3 & 0x4000)" ( (binary_expression "param_3 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 4;" (assignment_expression "param_1[4] = 4" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(uint *)param_1 = uVar7 - 0x31;" (assignment_expression "*(uint *)param_1 = uVar7 - 0x31" (pointer_expression "*(uint *)param_1" * (cast_expression "(uint *)param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar7 - 0x31" identifier - number_literal)) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 6;" (assignment_expression "param_1[3] = 6" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 9;" (assignment_expression "param_1[3] = 9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x402) == 2)" ( (binary_expression "(param_3 & 0x402) == 2" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x13;" (assignment_expression "param_1[4] = 0x13" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 2;" (assignment_expression "param_1[2] = 2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x23;" (assignment_expression "param_1[4] = 0x23" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x21;" (assignment_expression "param_1[4] = 0x21" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x40;" (assignment_expression "param_1[3] = 0x40" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x22;" (assignment_expression "param_1[4] = 0x22" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x20;" (assignment_expression "param_1[4] = 0x20" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x1200) == 0x200)" ( (binary_expression "(param_3 & 0x1200) == 0x200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x17;" (assignment_expression "param_1[4] = 0x17" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x8400) == 0)" ( (binary_expression "(param_3 & 0x8400) == 0" (parenthesized_expression "(param_3 & 0x8400)" ( (binary_expression "param_3 & 0x8400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 10;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x1200) == 0x200)" ( (binary_expression "(param_3 & 0x1200) == 0x200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x18;" (assignment_expression "param_1[4] = 0x18" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) })))) })) (labeled_statement "LAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(int *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0048cd50();" (assignment_expression "iVar2 = FUN_0048cd50()" identifier = (call_expression "FUN_0048cd50()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = piVar6[10];" (assignment_expression "iVar3 = piVar6[10]" identifier = (subscript_expression "piVar6[10]" identifier [ number_literal ])) ;) (expression_statement "piVar6[10] = iVar3 + iVar2;" (assignment_expression "piVar6[10] = iVar3 + iVar2" (subscript_expression "piVar6[10]" identifier [ number_literal ]) = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) (return_statement "return iVar3 + iVar2;" return (binary_expression "iVar3 + iVar2" identifier + identifier) ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint peek_token(re_token_t *token,re_string_t *input,reg_syntax_t syntax)\n\n{\n  byte bVar1;\n  uchar **ppuVar2;\n  re_token_t *token_00;\n  wint_t wVar3;\n  int iVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  re_string_t *prVar8;\n  re_string_t *prVar9;\n  uint uVar10;\n  re_token_t next;\n  \n  token_00 = *(re_token_t **)PTR___stack_chk_guard_004bf38c;\n  prVar8 = input;\n  prVar9 = (re_string_t *)syntax;\n  if (input->stop <= input->cur_idx) {\n    token->field_0x4 = 2;\n    iVar4 = 0;\n    goto LAB_0048ce98;\n  }\n  uVar10 = (uint)input->mbs[input->cur_idx];\n  (token->opr).c = input->mbs[input->cur_idx];\n  *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffff9ff;\n  if (((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&\n     (input->wcs[input->cur_idx] == 0xffffffff)) {\n    token->field_0x4 = 1;\n    *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar10 != 0x5c) {\n    token->field_0x4 = 1;\n    if (input->mb_cur_max < 2) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }\n    else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }\n    switch(uVar10 - 10 & 0xff) {\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  prVar8 = (re_string_t *)input->cur_idx;\n  ppuVar2 = &prVar8->raw_mbs;\n  puVar7 = (undefined1 *)((int)ppuVar2 + 1);\n  if (input->len <= (int)puVar7) {\n    token->field_0x4 = 0x24;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }\n  if (input->mbs_allocated == '\0') {\n    uVar10 = (uint)input->mbs[(int)puVar7];\n  }\n  else {\n    if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }\n    if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }\n  }\nLAB_0048cf14:\n  (token->opr).c = (uchar)uVar10;\n  token->field_0x4 = 1;\n  if (input->mb_cur_max < 2) {\n    piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;\n  }\n  else {\n    prVar8 = (re_string_t *)(input->cur_idx + 1);\n    wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n  }\n  switch(uVar10 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }\n    break;\n  case 1:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 2:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  default:\n    iVar4 = 2;\n    break;\n  case 4:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }\n    break;\n  case 0x18:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }\n    break;\n  case 0x54:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x55:\n    if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x56:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar4 = peek_token(token_00,prVar8,(reg_syntax_t)prVar9);\n  iVar4 = prVar8->cur_idx + iVar4;\n  prVar8->cur_idx = iVar4;\n  return iVar4;\n}\n\n" comment (function_definition "int peek_token(re_token_t *token,re_string_t *input,reg_syntax_t syntax)\n\n{\n  byte bVar1;\n  uchar **ppuVar2;\n  re_token_t *token_00;\n  wint_t wVar3;\n  int iVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  re_string_t *prVar8;\n  re_string_t *prVar9;\n  uint uVar10;\n  re_token_t next;\n  \n  token_00 = *(re_token_t **)PTR___stack_chk_guard_004bf38c;\n  prVar8 = input;\n  prVar9 = (re_string_t *)syntax;\n  if (input->stop <= input->cur_idx) {\n    token->field_0x4 = 2;\n    iVar4 = 0;\n    goto LAB_0048ce98;\n  }\n  uVar10 = (uint)input->mbs[input->cur_idx];\n  (token->opr).c = input->mbs[input->cur_idx];\n  *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffff9ff;\n  if (((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&\n     (input->wcs[input->cur_idx] == 0xffffffff)) {\n    token->field_0x4 = 1;\n    *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar10 != 0x5c) {\n    token->field_0x4 = 1;\n    if (input->mb_cur_max < 2) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }\n    else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }\n    switch(uVar10 - 10 & 0xff) {\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  prVar8 = (re_string_t *)input->cur_idx;\n  ppuVar2 = &prVar8->raw_mbs;\n  puVar7 = (undefined1 *)((int)ppuVar2 + 1);\n  if (input->len <= (int)puVar7) {\n    token->field_0x4 = 0x24;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }\n  if (input->mbs_allocated == '\0') {\n    uVar10 = (uint)input->mbs[(int)puVar7];\n  }\n  else {\n    if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }\n    if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }\n  }\nLAB_0048cf14:\n  (token->opr).c = (uchar)uVar10;\n  token->field_0x4 = 1;\n  if (input->mb_cur_max < 2) {\n    piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;\n  }\n  else {\n    prVar8 = (re_string_t *)(input->cur_idx + 1);\n    wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n  }\n  switch(uVar10 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }\n    break;\n  case 1:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 2:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  default:\n    iVar4 = 2;\n    break;\n  case 4:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }\n    break;\n  case 0x18:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }\n    break;\n  case 0x54:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x55:\n    if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x56:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar4 = peek_token(token_00,prVar8,(reg_syntax_t)prVar9);\n  iVar4 = prVar8->cur_idx + iVar4;\n  prVar8->cur_idx = iVar4;\n  return iVar4;\n}" primitive_type (function_declarator "peek_token(re_token_t *token,re_string_t *input,reg_syntax_t syntax)" identifier (parameter_list "(re_token_t *token,re_string_t *input,reg_syntax_t syntax)" ( (parameter_declaration "re_token_t *token" type_identifier (pointer_declarator "*token" * identifier)) , (parameter_declaration "re_string_t *input" type_identifier (pointer_declarator "*input" * identifier)) , (parameter_declaration "reg_syntax_t syntax" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  uchar **ppuVar2;\n  re_token_t *token_00;\n  wint_t wVar3;\n  int iVar4;\n  int *piVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  re_string_t *prVar8;\n  re_string_t *prVar9;\n  uint uVar10;\n  re_token_t next;\n  \n  token_00 = *(re_token_t **)PTR___stack_chk_guard_004bf38c;\n  prVar8 = input;\n  prVar9 = (re_string_t *)syntax;\n  if (input->stop <= input->cur_idx) {\n    token->field_0x4 = 2;\n    iVar4 = 0;\n    goto LAB_0048ce98;\n  }\n  uVar10 = (uint)input->mbs[input->cur_idx];\n  (token->opr).c = input->mbs[input->cur_idx];\n  *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffff9ff;\n  if (((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&\n     (input->wcs[input->cur_idx] == 0xffffffff)) {\n    token->field_0x4 = 1;\n    *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar10 != 0x5c) {\n    token->field_0x4 = 1;\n    if (input->mb_cur_max < 2) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }\n    else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }\n    switch(uVar10 - 10 & 0xff) {\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  prVar8 = (re_string_t *)input->cur_idx;\n  ppuVar2 = &prVar8->raw_mbs;\n  puVar7 = (undefined1 *)((int)ppuVar2 + 1);\n  if (input->len <= (int)puVar7) {\n    token->field_0x4 = 0x24;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }\n  if (input->mbs_allocated == '\0') {\n    uVar10 = (uint)input->mbs[(int)puVar7];\n  }\n  else {\n    if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }\n    if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }\n  }\nLAB_0048cf14:\n  (token->opr).c = (uchar)uVar10;\n  token->field_0x4 = 1;\n  if (input->mb_cur_max < 2) {\n    piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;\n  }\n  else {\n    prVar8 = (re_string_t *)(input->cur_idx + 1);\n    wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n  }\n  switch(uVar10 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }\n    break;\n  case 1:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 2:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  default:\n    iVar4 = 2;\n    break;\n  case 4:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }\n    break;\n  case 0x18:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }\n    break;\n  case 0x54:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x55:\n    if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x56:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar4 = peek_token(token_00,prVar8,(reg_syntax_t)prVar9);\n  iVar4 = prVar8->cur_idx + iVar4;\n  prVar8->cur_idx = iVar4;\n  return iVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uchar **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "re_token_t *token_00;" type_identifier (pointer_declarator "*token_00" * identifier) ;) (declaration "wint_t wVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "re_string_t *prVar8;" type_identifier (pointer_declarator "*prVar8" * identifier) ;) (declaration "re_string_t *prVar9;" type_identifier (pointer_declarator "*prVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "re_token_t next;" type_identifier identifier ;) (expression_statement "token_00 = *(re_token_t **)PTR___stack_chk_guard_004bf38c;" (assignment_expression "token_00 = *(re_token_t **)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(re_token_t **)PTR___stack_chk_guard_004bf38c" * (cast_expression "(re_token_t **)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "re_token_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "prVar8 = input;" (assignment_expression "prVar8 = input" identifier = identifier) ;) (expression_statement "prVar9 = (re_string_t *)syntax;" (assignment_expression "prVar9 = (re_string_t *)syntax" identifier = (cast_expression "(re_string_t *)syntax" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (input->stop <= input->cur_idx) {\n    token->field_0x4 = 2;\n    iVar4 = 0;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(input->stop <= input->cur_idx)" ( (binary_expression "input->stop <= input->cur_idx" (field_expression "input->stop" identifier -> field_identifier) <= (field_expression "input->cur_idx" identifier -> field_identifier)) )) (compound_statement "{\n    token->field_0x4 = 2;\n    iVar4 = 0;\n    goto LAB_0048ce98;\n  }" { (expression_statement "token->field_0x4 = 2;" (assignment_expression "token->field_0x4 = 2" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (expression_statement "uVar10 = (uint)input->mbs[input->cur_idx];" (assignment_expression "uVar10 = (uint)input->mbs[input->cur_idx]" identifier = (cast_expression "(uint)input->mbs[input->cur_idx]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "input->mbs[input->cur_idx]" (field_expression "input->mbs" identifier -> field_identifier) [ (field_expression "input->cur_idx" identifier -> field_identifier) ]))) ;) (expression_statement "(token->opr).c = input->mbs[input->cur_idx];" (assignment_expression "(token->opr).c = input->mbs[input->cur_idx]" (field_expression "(token->opr).c" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "input->mbs[input->cur_idx]" (field_expression "input->mbs" identifier -> field_identifier) [ (field_expression "input->cur_idx" identifier -> field_identifier) ])) ;) (expression_statement "*(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffff9ff;" (assignment_expression "*(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffff9ff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&token->field_0x4 & 0xfffff9ff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) & number_literal)) ;) (if_statement "if (((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&\n     (input->wcs[input->cur_idx] == 0xffffffff)) {\n    token->field_0x4 = 1;\n    *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&\n     (input->wcs[input->cur_idx] == 0xffffffff))" ( (binary_expression "((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&\n     (input->wcs[input->cur_idx] == 0xffffffff)" (parenthesized_expression "((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len))" ( (binary_expression "(1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)" (parenthesized_expression "(1 < input->mb_cur_max)" ( (binary_expression "1 < input->mb_cur_max" number_literal < (field_expression "input->mb_cur_max" identifier -> field_identifier)) )) && (parenthesized_expression "(input->cur_idx != input->valid_len)" ( (binary_expression "input->cur_idx != input->valid_len" (field_expression "input->cur_idx" identifier -> field_identifier) != (field_expression "input->valid_len" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(input->wcs[input->cur_idx] == 0xffffffff)" ( (binary_expression "input->wcs[input->cur_idx] == 0xffffffff" (subscript_expression "input->wcs[input->cur_idx]" (field_expression "input->wcs" identifier -> field_identifier) [ (field_expression "input->cur_idx" identifier -> field_identifier) ]) == number_literal) ))) )) (compound_statement "{\n    token->field_0x4 = 1;\n    *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }" { (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400;" (assignment_expression "*(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffbff | 0x400" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&token->field_0x4 & 0xfffffbff | 0x400" (binary_expression "*(uint *)&token->field_0x4 & 0xfffffbff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) & number_literal) | number_literal)) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (if_statement "if (uVar10 != 0x5c) {\n    token->field_0x4 = 1;\n    if (input->mb_cur_max < 2) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }\n    else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }\n    switch(uVar10 - 10 & 0xff) {\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(uVar10 != 0x5c)" ( (binary_expression "uVar10 != 0x5c" identifier != number_literal) )) (compound_statement "{\n    token->field_0x4 = 1;\n    if (input->mb_cur_max < 2) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }\n    else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }\n    switch(uVar10 - 10 & 0xff) {\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" { (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (if_statement "if (input->mb_cur_max < 2) {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }\n    else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }" if (parenthesized_expression "(input->mb_cur_max < 2)" ( (binary_expression "input->mb_cur_max < 2" (field_expression "input->mb_cur_max" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n      uVar6 = 1;\n      if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }\n      *(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" * (cast_expression "(code *)PTR___ctype_b_loc_004bf168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if ((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0) {\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }" if (parenthesized_expression "((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0)" ( (binary_expression "(*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + uVar10 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar5 + uVar10 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar5 + uVar10 * 2)" * (cast_expression "(ushort *)(*piVar5 + uVar10 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar10 * 2)" ( (binary_expression "*piVar5 + uVar10 * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar10 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar6 = (uint)(uVar10 == 0x5f);\n      }" { (expression_statement "uVar6 = (uint)(uVar10 == 0x5f);" (assignment_expression "uVar6 = (uint)(uVar10 == 0x5f)" identifier = (call_expression "(uint)(uVar10 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 == 0x5f)" ( (binary_expression "uVar10 == 0x5f" identifier == number_literal) )))) ;) })) (expression_statement "*(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9;" (assignment_expression "*(uint *)&token->field_0x4 = *(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff | uVar6 << 9" (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) & number_literal) | (binary_expression "uVar6 << 9" identifier << number_literal))) ;) }) (else_clause "else {\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }" else (compound_statement "{\n      prVar8 = (re_string_t *)input->cur_idx;\n      wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n      iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n      *(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n    }" { (expression_statement "prVar8 = (re_string_t *)input->cur_idx;" (assignment_expression "prVar8 = (re_string_t *)input->cur_idx" identifier = (cast_expression "(re_string_t *)input->cur_idx" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "input->cur_idx" identifier -> field_identifier))) ;) (expression_statement "wVar3 = re_string_wchar_at(input,(Idx)prVar8);" (assignment_expression "wVar3 = re_string_wchar_at(input,(Idx)prVar8)" identifier = (call_expression "re_string_wchar_at(input,(Idx)prVar8)" identifier (argument_list "(input,(Idx)prVar8)" ( identifier , (cast_expression "(Idx)prVar8" ( (type_descriptor "Idx" type_identifier) ) identifier) )))) ;) (expression_statement "iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);" (assignment_expression "iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(wVar3)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(wVar3)" ( identifier )))) ;) (expression_statement "*(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;" (assignment_expression "*(uint *)&token->field_0x4 =\n           *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9" (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) & number_literal) | (binary_expression "(uint)(iVar4 != 0 || wVar3 == 0x5f) << 9" (call_expression "(uint)(iVar4 != 0 || wVar3 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 != 0 || wVar3 == 0x5f)" ( (binary_expression "iVar4 != 0 || wVar3 == 0x5f" (binary_expression "iVar4 != 0" identifier != number_literal) || (binary_expression "wVar3 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }))) (switch_statement "switch(uVar10 - 10 & 0xff) {\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }" switch (parenthesized_expression "(uVar10 - 10 & 0xff)" ( (binary_expression "uVar10 - 10 & 0xff" (binary_expression "uVar10 - 10" identifier - number_literal) & number_literal) )) (compound_statement "{\n    case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;\n    default:\n      iVar4 = 1;\n      break;\n    case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;\n    case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;\n    case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;\n    case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;\n    case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;\n    case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;\n    case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;\n    case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n    }" { (case_statement "case 0:\n      if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x800) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x800) == 0)" ( (binary_expression "(syntax & 0x800) == 0" (parenthesized_expression "(syntax & 0x800)" ( (binary_expression "syntax & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }" else (compound_statement "{\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 10;" (assignment_expression "token->field_0x4 = 10" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n      iVar4 = 1;\n      break;" default : (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1a:\n      if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x20;\n      iVar4 = 1;\n      break;" case number_literal : (if_statement "if (((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)) {\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }" if (parenthesized_expression "(((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len))" ( (binary_expression "((syntax & 8) == 0) &&\n         (iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)" (parenthesized_expression "((syntax & 8) == 0)" ( (binary_expression "(syntax & 8) == 0" (parenthesized_expression "(syntax & 8)" ( (binary_expression "syntax & 8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len)" ( (comma_expression "iVar4 = input->cur_idx + 1, prVar9 = (re_string_t *)syntax, iVar4 != input->len" (assignment_expression "iVar4 = input->cur_idx + 1" identifier = (binary_expression "input->cur_idx + 1" (field_expression "input->cur_idx" identifier -> field_identifier) + number_literal)) , (comma_expression "prVar9 = (re_string_t *)syntax, iVar4 != input->len" (assignment_expression "prVar9 = (re_string_t *)syntax" identifier = (cast_expression "(re_string_t *)syntax" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "iVar4 != input->len" identifier != (field_expression "input->len" identifier -> field_identifier)))) ))) )) (compound_statement "{\n        input->cur_idx = iVar4;\n        prVar8 = input;\n        peek_token(&next,input,syntax);\n        input->cur_idx = input->cur_idx + -1;\n        prVar9 = (re_string_t *)syntax;\n        if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }\n      }" { (expression_statement "input->cur_idx = iVar4;" (assignment_expression "input->cur_idx = iVar4" (field_expression "input->cur_idx" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar8 = input;" (assignment_expression "prVar8 = input" identifier = identifier) ;) (expression_statement "peek_token(&next,input,syntax);" (call_expression "peek_token(&next,input,syntax)" identifier (argument_list "(&next,input,syntax)" ( (pointer_expression "&next" & identifier) , identifier , identifier ))) ;) (expression_statement "input->cur_idx = input->cur_idx + -1;" (assignment_expression "input->cur_idx = input->cur_idx + -1" (field_expression "input->cur_idx" identifier -> field_identifier) = (binary_expression "input->cur_idx + -1" (field_expression "input->cur_idx" identifier -> field_identifier) + number_literal)) ;) (expression_statement "prVar9 = (re_string_t *)syntax;" (assignment_expression "prVar9 = (re_string_t *)syntax" identifier = (cast_expression "(re_string_t *)syntax" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (1 < (byte)(next._4_1_ - 9)) {\n          iVar4 = 1;\n          break;\n        }" if (parenthesized_expression "(1 < (byte)(next._4_1_ - 9))" ( (binary_expression "1 < (byte)(next._4_1_ - 9)" number_literal < (call_expression "(byte)(next._4_1_ - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(next._4_1_ - 9)" ( (binary_expression "next._4_1_ - 9" (field_expression "next._4_1_" identifier . field_identifier) - number_literal) )))) )) (compound_statement "{\n          iVar4 = 1;\n          break;\n        }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 0x20;" (assignment_expression "(token->opr).idx = 0x20" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1e:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x2000) == 0)" ( (binary_expression "(syntax & 0x2000) == 0" (parenthesized_expression "(syntax & 0x2000)" ( (binary_expression "syntax & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }" else (compound_statement "{\n        token->field_0x4 = 8;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 8;" (assignment_expression "token->field_0x4 = 8" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n      if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x2000) == 0) {\n        iVar4 = 1;\n      }\n      else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x2000) == 0)" ( (binary_expression "(syntax & 0x2000) == 0" (parenthesized_expression "(syntax & 0x2000)" ( (binary_expression "syntax & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }" else (compound_statement "{\n        token->field_0x4 = 9;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 9;" (assignment_expression "token->field_0x4 = 9" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x20:\n      token->field_0x4 = 0xb;\n      iVar4 = 1;\n      break;" case number_literal : (expression_statement "token->field_0x4 = 0xb;" (assignment_expression "token->field_0x4 = 0xb" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x21:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x402) == 0)" ( (binary_expression "(syntax & 0x402) == 0" (parenthesized_expression "(syntax & 0x402)" ( (binary_expression "syntax & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        token->field_0x4 = 0x12;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 0x12;" (assignment_expression "token->field_0x4 = 0x12" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 1;\n      }" else (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x24:\n      token->field_0x4 = 5;\n      iVar4 = 1;\n      break;" case number_literal : (expression_statement "token->field_0x4 = 5;" (assignment_expression "token->field_0x4 = 5" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n      if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x402) == 0) {\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x402) == 0)" ( (binary_expression "(syntax & 0x402) == 0" (parenthesized_expression "(syntax & 0x402)" ( (binary_expression "syntax & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        token->field_0x4 = 0x13;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 0x13;" (assignment_expression "token->field_0x4 = 0x13" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 1;\n      }" else (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x51:\n      token->field_0x4 = 0x14;\n      iVar4 = 1;\n      break;" case number_literal : (expression_statement "token->field_0x4 = 0x14;" (assignment_expression "token->field_0x4 = 0x14" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:\n      if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x10;\n      iVar4 = 1;\n      break;" case number_literal : (if_statement "if ((syntax & 0x800008) == 0) {\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }" if (parenthesized_expression "((syntax & 0x800008) == 0)" ( (binary_expression "(syntax & 0x800008) == 0" (parenthesized_expression "(syntax & 0x800008)" ( (binary_expression "syntax & 0x800008" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }\n      }" { (if_statement "if (input->cur_idx != 0) {\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }" if (parenthesized_expression "(input->cur_idx != 0)" ( (binary_expression "input->cur_idx != 0" (field_expression "input->cur_idx" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }\n          if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }\n        }" { (if_statement "if ((syntax & 0x800) == 0) {\n            iVar4 = 1;\n            break;\n          }" if (parenthesized_expression "((syntax & 0x800) == 0)" ( (binary_expression "(syntax & 0x800) == 0" (parenthesized_expression "(syntax & 0x800)" ( (binary_expression "syntax & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar4 = 1;\n            break;\n          }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (input->mbs[input->cur_idx + -1] != '\n') {\n            iVar4 = 1;\n            break;\n          }" if (parenthesized_expression "(input->mbs[input->cur_idx + -1] != '\n')" ( (binary_expression "input->mbs[input->cur_idx + -1] != '\n'" (subscript_expression "input->mbs[input->cur_idx + -1]" (field_expression "input->mbs" identifier -> field_identifier) [ (binary_expression "input->cur_idx + -1" (field_expression "input->cur_idx" identifier -> field_identifier) + number_literal) ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n            iVar4 = 1;\n            break;\n          }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 0x10;" (assignment_expression "(token->opr).idx = 0x10" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x71:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x1200) == 0x1200)" ( (binary_expression "(syntax & 0x1200) == 0x1200" (parenthesized_expression "(syntax & 0x1200)" ( (binary_expression "syntax & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        token->field_0x4 = 0x17;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 0x17;" (assignment_expression "token->field_0x4 = 0x17" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 1;\n      }" else (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x72:\n      if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((syntax & 0x8400) == 0x8000) {\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x8400) == 0x8000)" ( (binary_expression "(syntax & 0x8400) == 0x8000" (parenthesized_expression "(syntax & 0x8400)" ( (binary_expression "syntax & 0x8400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        token->field_0x4 = 10;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 10;" (assignment_expression "token->field_0x4 = 10" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 1;\n      }" else (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x73:\n      if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }" case number_literal : (if_statement "if ((syntax & 0x1200) == 0x1200) {\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }\n      else {\n        iVar4 = 1;\n      }" if (parenthesized_expression "((syntax & 0x1200) == 0x1200)" ( (binary_expression "(syntax & 0x1200) == 0x1200" (parenthesized_expression "(syntax & 0x1200)" ( (binary_expression "syntax & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        token->field_0x4 = 0x18;\n        iVar4 = 1;\n      }" { (expression_statement "token->field_0x4 = 0x18;" (assignment_expression "token->field_0x4 = 0x18" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 1;\n      }" else (compound_statement "{\n        iVar4 = 1;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) })))) })) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (expression_statement "prVar8 = (re_string_t *)input->cur_idx;" (assignment_expression "prVar8 = (re_string_t *)input->cur_idx" identifier = (cast_expression "(re_string_t *)input->cur_idx" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "input->cur_idx" identifier -> field_identifier))) ;) (expression_statement "ppuVar2 = &prVar8->raw_mbs;" (assignment_expression "ppuVar2 = &prVar8->raw_mbs" identifier = (pointer_expression "&prVar8->raw_mbs" & (field_expression "prVar8->raw_mbs" identifier -> field_identifier))) ;) (expression_statement "puVar7 = (undefined1 *)((int)ppuVar2 + 1);" (assignment_expression "puVar7 = (undefined1 *)((int)ppuVar2 + 1)" identifier = (cast_expression "(undefined1 *)((int)ppuVar2 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar2 + 1)" ( (binary_expression "(int)ppuVar2 + 1" (cast_expression "(int)ppuVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (input->len <= (int)puVar7) {\n    token->field_0x4 = 0x24;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(input->len <= (int)puVar7)" ( (binary_expression "input->len <= (int)puVar7" (field_expression "input->len" identifier -> field_identifier) <= (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    token->field_0x4 = 0x24;\n    iVar4 = 1;\n    goto LAB_0048ce98;\n  }" { (expression_statement "token->field_0x4 = 0x24;" (assignment_expression "token->field_0x4 = 0x24" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (if_statement "if (input->mbs_allocated == '\0') {\n    uVar10 = (uint)input->mbs[(int)puVar7];\n  }\n  else {\n    if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }\n    if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }\n  }" if (parenthesized_expression "(input->mbs_allocated == '\0')" ( (binary_expression "input->mbs_allocated == '\0'" (field_expression "input->mbs_allocated" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar10 = (uint)input->mbs[(int)puVar7];\n  }" { (expression_statement "uVar10 = (uint)input->mbs[(int)puVar7];" (assignment_expression "uVar10 = (uint)input->mbs[(int)puVar7]" identifier = (cast_expression "(uint)input->mbs[(int)puVar7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "input->mbs[(int)puVar7]" (field_expression "input->mbs" identifier -> field_identifier) [ (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) }) (else_clause "else {\n    if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }\n    if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }\n  }" else (compound_statement "{\n    if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }\n    if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }\n  }" { (if_statement "if (1 < input->mb_cur_max) {\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }" if (parenthesized_expression "(1 < input->mb_cur_max)" ( (binary_expression "1 < input->mb_cur_max" number_literal < (field_expression "input->mb_cur_max" identifier -> field_identifier)) )) (compound_statement "{\n      prVar9 = (re_string_t *)0xffffffff;\n      prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);\n      if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }\n    }" { (expression_statement "prVar9 = (re_string_t *)0xffffffff;" (assignment_expression "prVar9 = (re_string_t *)0xffffffff" identifier = (cast_expression "(re_string_t *)0xffffffff" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2);" (assignment_expression "prVar8 = (re_string_t *)((int)&prVar8->raw_mbs + 2)" identifier = (cast_expression "(re_string_t *)((int)&prVar8->raw_mbs + 2)" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar8->raw_mbs + 2)" ( (binary_expression "(int)&prVar8->raw_mbs + 2" (cast_expression "(int)&prVar8->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar8->raw_mbs" & (field_expression "prVar8->raw_mbs" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }" if (parenthesized_expression "((input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff))))" ( (binary_expression "(input->wcs[(int)puVar7] == 0xffffffff) ||\n         ((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))" (parenthesized_expression "(input->wcs[(int)puVar7] == 0xffffffff)" ( (binary_expression "input->wcs[(int)puVar7] == 0xffffffff" (subscript_expression "input->wcs[(int)puVar7]" (field_expression "input->wcs" identifier -> field_identifier) [ (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ]) == number_literal) )) || (parenthesized_expression "((prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))" ( (parenthesized_expression "(prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff))" ( (comma_expression "prVar9 = (re_string_t *)input->valid_len, prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)" (assignment_expression "prVar9 = (re_string_t *)input->valid_len" identifier = (cast_expression "(re_string_t *)input->valid_len" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "input->valid_len" identifier -> field_identifier))) , (binary_expression "prVar9 != prVar8 &&\n          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)" (binary_expression "prVar9 != prVar8" identifier != identifier) && (parenthesized_expression "(input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)" ( (binary_expression "input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff" (subscript_expression "input->wcs[(int)((int)ppuVar2 + 2)]" (field_expression "input->wcs" identifier -> field_identifier) [ (cast_expression "(int)((int)ppuVar2 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)ppuVar2 + 2)" ( (binary_expression "(int)ppuVar2 + 2" (cast_expression "(int)ppuVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) == number_literal) )))) )) ))) )) (compound_statement "{\n        uVar10 = (uint)input->mbs[(int)puVar7];\n        goto LAB_0048cf14;\n      }" { (expression_statement "uVar10 = (uint)input->mbs[(int)puVar7];" (assignment_expression "uVar10 = (uint)input->mbs[(int)puVar7]" identifier = (cast_expression "(uint)input->mbs[(int)puVar7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "input->mbs[(int)puVar7]" (field_expression "input->mbs" identifier -> field_identifier) [ (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (goto_statement "goto LAB_0048cf14;" goto statement_identifier ;) })) })) (if_statement "if (input->offsets_needed == '\0') {\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }\n    else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }" if (parenthesized_expression "(input->offsets_needed == '\0')" ( (binary_expression "input->offsets_needed == '\0'" (field_expression "input->offsets_needed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];\n    }" { (expression_statement "uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];" (assignment_expression "uVar10 = (uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)]" identifier = (cast_expression "(uint)(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)]" identifier [ (cast_expression "(int)(input->raw_mbs + input->raw_mbs_idx)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(input->raw_mbs + input->raw_mbs_idx)" ( (binary_expression "input->raw_mbs + input->raw_mbs_idx" (field_expression "input->raw_mbs" identifier -> field_identifier) + (field_expression "input->raw_mbs_idx" identifier -> field_identifier)) ))) ])))) ;) }) (else_clause "else {\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }" else (compound_statement "{\n      prVar8 = (re_string_t *)input->offsets[(int)puVar7];\n      bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));\n      uVar10 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }\n    }" { (expression_statement "prVar8 = (re_string_t *)input->offsets[(int)puVar7];" (assignment_expression "prVar8 = (re_string_t *)input->offsets[(int)puVar7]" identifier = (cast_expression "(re_string_t *)input->offsets[(int)puVar7]" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "input->offsets[(int)puVar7]" (field_expression "input->offsets" identifier -> field_identifier) [ (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));" (assignment_expression "bVar1 = *(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx))" identifier = (pointer_expression "*(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx))" * (cast_expression "(byte *)((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx))" ( (binary_expression "(int)&prVar8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx)" (cast_expression "(int)&prVar8->raw_mbs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar8->raw_mbs" & (field_expression "prVar8->raw_mbs" identifier -> field_identifier))) + (cast_expression "(int)(input->raw_mbs + input->raw_mbs_idx)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(input->raw_mbs + input->raw_mbs_idx)" ( (binary_expression "input->raw_mbs + input->raw_mbs_idx" (field_expression "input->raw_mbs" identifier -> field_identifier) + (field_expression "input->raw_mbs_idx" identifier -> field_identifier)) )))) ))))) ;) (expression_statement "uVar10 = (uint)bVar1;" (assignment_expression "uVar10 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar1 & 0x80) != 0) {\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }" if (parenthesized_expression "((bVar1 & 0x80) != 0)" ( (binary_expression "(bVar1 & 0x80) != 0" (parenthesized_expression "(bVar1 & 0x80)" ( (binary_expression "bVar1 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar10 = (uint)input->mbs[(int)puVar7];\n      }" { (expression_statement "uVar10 = (uint)input->mbs[(int)puVar7];" (assignment_expression "uVar10 = (uint)input->mbs[(int)puVar7]" identifier = (cast_expression "(uint)input->mbs[(int)puVar7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "input->mbs[(int)puVar7]" (field_expression "input->mbs" identifier -> field_identifier) [ (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) })) }))) }))) (labeled_statement "LAB_0048cf14:\n  (token->opr).c = (uchar)uVar10;" statement_identifier : (expression_statement "(token->opr).c = (uchar)uVar10;" (assignment_expression "(token->opr).c = (uchar)uVar10" (field_expression "(token->opr).c" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uchar)uVar10" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;)) (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (if_statement "if (input->mb_cur_max < 2) {\n    piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;\n  }\n  else {\n    prVar8 = (re_string_t *)(input->cur_idx + 1);\n    wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n  }" if (parenthesized_expression "(input->mb_cur_max < 2)" ( (binary_expression "input->mb_cur_max < 2" (field_expression "input->mb_cur_max" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n    piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;\n  }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" * (cast_expression "(code *)PTR___ctype_b_loc_004bf168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9;" (assignment_expression "*(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9" (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) & number_literal) | (binary_expression "(uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f) << 9" (call_expression "(uint)((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f)" ( (binary_expression "(*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0 || uVar10 == 0x5f" (binary_expression "(*(ushort *)(*piVar5 + uVar10 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(*piVar5 + uVar10 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar5 + uVar10 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar5 + uVar10 * 2)" * (cast_expression "(ushort *)(*piVar5 + uVar10 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar10 * 2)" ( (binary_expression "*piVar5 + uVar10 * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar10 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) || (binary_expression "uVar10 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }) (else_clause "else {\n    prVar8 = (re_string_t *)(input->cur_idx + 1);\n    wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n  }" else (compound_statement "{\n    prVar8 = (re_string_t *)(input->cur_idx + 1);\n    wVar3 = re_string_wchar_at(input,(Idx)prVar8);\n    iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);\n    *(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;\n  }" { (expression_statement "prVar8 = (re_string_t *)(input->cur_idx + 1);" (assignment_expression "prVar8 = (re_string_t *)(input->cur_idx + 1)" identifier = (cast_expression "(re_string_t *)(input->cur_idx + 1)" ( (type_descriptor "re_string_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(input->cur_idx + 1)" ( (binary_expression "input->cur_idx + 1" (field_expression "input->cur_idx" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "wVar3 = re_string_wchar_at(input,(Idx)prVar8);" (assignment_expression "wVar3 = re_string_wchar_at(input,(Idx)prVar8)" identifier = (call_expression "re_string_wchar_at(input,(Idx)prVar8)" identifier (argument_list "(input,(Idx)prVar8)" ( identifier , (cast_expression "(Idx)prVar8" ( (type_descriptor "Idx" type_identifier) ) identifier) )))) ;) (expression_statement "iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3);" (assignment_expression "iVar4 = (*(code *)PTR_iswalnum_004bf25c)(wVar3)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(wVar3)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(wVar3)" ( identifier )))) ;) (expression_statement "*(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9;" (assignment_expression "*(uint *)&token->field_0x4 =\n         *(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff | (uint)(iVar4 != 0 || wVar3 == 0x5f) << 9" (binary_expression "*(uint *)&token->field_0x4 & 0xfffffdff" (pointer_expression "*(uint *)&token->field_0x4" * (cast_expression "(uint *)&token->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) & number_literal) | (binary_expression "(uint)(iVar4 != 0 || wVar3 == 0x5f) << 9" (call_expression "(uint)(iVar4 != 0 || wVar3 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 != 0 || wVar3 == 0x5f)" ( (binary_expression "iVar4 != 0 || wVar3 == 0x5f" (binary_expression "iVar4 != 0" identifier != number_literal) || (binary_expression "wVar3 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }))) (switch_statement "switch(uVar10 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }\n    break;\n  case 1:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 2:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  default:\n    iVar4 = 2;\n    break;\n  case 4:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }\n    break;\n  case 0x18:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }\n    break;\n  case 0x54:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x55:\n    if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x56:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }" switch (parenthesized_expression "(uVar10 - 0x27 & 0xff)" ( (binary_expression "uVar10 - 0x27 & 0xff" (binary_expression "uVar10 - 0x27" identifier - number_literal) & number_literal) )) (compound_statement "{\n  case 0:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }\n    break;\n  case 1:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 2:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  default:\n    iVar4 = 2;\n    break;\n  case 4:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }\n    break;\n  case 0x18:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }\n    break;\n  case 0x54:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x55:\n    if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;\n  case 0x56:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }" { (case_statement "case 0:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x80;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 0x80;" (assignment_expression "(token->opr).idx = 0x80" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 1:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x2000) == 0)" ( (binary_expression "(syntax & 0x2000) == 0" (parenthesized_expression "(syntax & 0x2000)" ( (binary_expression "syntax & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 8;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 8;" (assignment_expression "token->field_0x4 = 8" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 2:\n    if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((syntax & 0x2000) == 0) {\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x2000) == 0)" ( (binary_expression "(syntax & 0x2000) == 0" (parenthesized_expression "(syntax & 0x2000)" ( (binary_expression "syntax & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 9;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 9;" (assignment_expression "token->field_0x4 = 9" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n    iVar4 = 2;\n    break;" default : (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) (if_statement "if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x402) == 2)" ( (binary_expression "(syntax & 0x402) == 2" (parenthesized_expression "(syntax & 0x402)" ( (binary_expression "syntax & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 0x12;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x12;" (assignment_expression "token->field_0x4 = 0x12" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:\n    if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((syntax & 0x4000) == 0) {\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x4000) == 0)" ( (binary_expression "(syntax & 0x4000) == 0" (parenthesized_expression "(syntax & 0x4000)" ( (binary_expression "syntax & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 4;\n      (token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 4;" (assignment_expression "token->field_0x4 = 4" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31);" (assignment_expression "(token->opr).sbcset = (re_bitset_ptr_t)(uVar10 - 0x31)" (field_expression "(token->opr).sbcset" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = (call_expression "(re_bitset_ptr_t)(uVar10 - 0x31)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(uVar10 - 0x31)" ( (binary_expression "uVar10 - 0x31" identifier - number_literal) )))) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 6;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 6;" (assignment_expression "(token->opr).idx = 6" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 9;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 9;" (assignment_expression "(token->opr).idx = 9" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x18:\n    iVar4 = 2;\n    if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) (if_statement "if ((syntax & 0x402) == 2) {\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x402) == 2)" ( (binary_expression "(syntax & 0x402) == 2" (parenthesized_expression "(syntax & 0x402)" ( (binary_expression "syntax & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 0x13;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x13;" (assignment_expression "token->field_0x4 = 0x13" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x200;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 0x200;" (assignment_expression "(token->opr).idx = 0x200" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x2c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0x23;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x23;" (assignment_expression "token->field_0x4 = 0x23" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x30:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0x21;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x21;" (assignment_expression "token->field_0x4 = 0x21" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x39:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x40;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 0x40;" (assignment_expression "(token->opr).idx = 0x40" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x3b:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0xc;\n      (token->opr).idx = 0x100;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0xc;" (assignment_expression "token->field_0x4 = 0xc" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "(token->opr).idx = 0x100;" (assignment_expression "(token->opr).idx = 0x100" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x4c:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0x22;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x22;" (assignment_expression "token->field_0x4 = 0x22" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x50:\n    if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(syntax << 0xc) < 0) {\n      iVar4 = 2;\n    }\n    else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }" if (parenthesized_expression "((int)(syntax << 0xc) < 0)" ( (binary_expression "(int)(syntax << 0xc) < 0" (cast_expression "(int)(syntax << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(syntax << 0xc)" ( (binary_expression "syntax << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }" else (compound_statement "{\n      token->field_0x4 = 0x20;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x20;" (assignment_expression "token->field_0x4 = 0x20" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x1200) == 0x200)" ( (binary_expression "(syntax & 0x1200) == 0x200" (parenthesized_expression "(syntax & 0x1200)" ( (binary_expression "syntax & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 0x17;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x17;" (assignment_expression "token->field_0x4 = 0x17" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x55:\n    if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((syntax & 0x8400) == 0) {\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x8400) == 0)" ( (binary_expression "(syntax & 0x8400) == 0" (parenthesized_expression "(syntax & 0x8400)" ( (binary_expression "syntax & 0x8400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 10;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 10;" (assignment_expression "token->field_0x4 = 10" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x56:\n    if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" case number_literal : (if_statement "if ((syntax & 0x1200) == 0x200) {\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "((syntax & 0x1200) == 0x200)" ( (binary_expression "(syntax & 0x1200) == 0x200" (parenthesized_expression "(syntax & 0x1200)" ( (binary_expression "syntax & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      token->field_0x4 = 0x18;\n      iVar4 = 2;\n    }" { (expression_statement "token->field_0x4 = 0x18;" (assignment_expression "token->field_0x4 = 0x18" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) })))) })) (labeled_statement "LAB_0048ce98:\n  if (token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c) {\n    return iVar4;\n  }" statement_identifier : (if_statement "if (token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c) {\n    return iVar4;\n  }" if (parenthesized_expression "(token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "token_00 == *(re_token_t **)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(re_token_t **)PTR___stack_chk_guard_004bf38c" * (cast_expression "(re_token_t **)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "re_token_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = peek_token(token_00,prVar8,(reg_syntax_t)prVar9);" (assignment_expression "iVar4 = peek_token(token_00,prVar8,(reg_syntax_t)prVar9)" identifier = (call_expression "peek_token(token_00,prVar8,(reg_syntax_t)prVar9)" identifier (argument_list "(token_00,prVar8,(reg_syntax_t)prVar9)" ( identifier , identifier , (cast_expression "(reg_syntax_t)prVar9" ( (type_descriptor "reg_syntax_t" type_identifier) ) identifier) )))) ;) (expression_statement "iVar4 = prVar8->cur_idx + iVar4;" (assignment_expression "iVar4 = prVar8->cur_idx + iVar4" identifier = (binary_expression "prVar8->cur_idx + iVar4" (field_expression "prVar8->cur_idx" identifier -> field_identifier) + identifier)) ;) (expression_statement "prVar8->cur_idx = iVar4;" (assignment_expression "prVar8->cur_idx = iVar4" (field_expression "prVar8->cur_idx" identifier -> field_identifier) = identifier) ;) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "int FUN_0048cd50(byte *param_1,int *param_2,uint param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}\n\n" (function_definition "int FUN_0048cd50(byte *param_1,int *param_2,uint param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}" primitive_type (function_declarator "FUN_0048cd50(byte *param_1,int *param_2,uint param_3)" identifier (parameter_list "(byte *param_1,int *param_2,uint param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined1 auStack_24 [4];" type_identifier (array_declarator "auStack_24 [4]" identifier [ number_literal ]) ;) (declaration "char local_20;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_004bf38c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(int *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar6 = param_2;" (assignment_expression "piVar6 = param_2" identifier = identifier) ;) (if_statement "if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(param_2[0xe] <= param_2[10])" ( (binary_expression "param_2[0xe] <= param_2[10]" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) <= (subscript_expression "param_2[10]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 2;" (assignment_expression "param_1[4] = 2" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (expression_statement "bVar1 = *(byte *)(param_2[1] + param_2[10]);" (assignment_expression "bVar1 = *(byte *)(param_2[1] + param_2[10])" identifier = (pointer_expression "*(byte *)(param_2[1] + param_2[10])" * (cast_expression "(byte *)(param_2[1] + param_2[10])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + param_2[10])" ( (binary_expression "param_2[1] + param_2[10]" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (subscript_expression "param_2[10]" identifier [ number_literal ])) ))))) ;) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*param_1 = bVar1;" (assignment_expression "*param_1 = bVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffff9ff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1))" ( (binary_expression "((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)" (parenthesized_expression "((1 < param_2[0x14]) && (param_2[10] != param_2[7]))" ( (binary_expression "(1 < param_2[0x14]) && (param_2[10] != param_2[7])" (parenthesized_expression "(1 < param_2[0x14])" ( (binary_expression "1 < param_2[0x14]" number_literal < (subscript_expression "param_2[0x14]" identifier [ number_literal ])) )) && (parenthesized_expression "(param_2[10] != param_2[7])" ( (binary_expression "param_2[10] != param_2[7]" (subscript_expression "param_2[10]" identifier [ number_literal ]) != (subscript_expression "param_2[7]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(*(int *)(param_2[2] + param_2[10] * 4) == -1)" ( (binary_expression "*(int *)(param_2[2] + param_2[10] * 4) == -1" (pointer_expression "*(int *)(param_2[2] + param_2[10] * 4)" * (cast_expression "(int *)(param_2[2] + param_2[10] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + param_2[10] * 4)" ( (binary_expression "param_2[2] + param_2[10] * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "param_2[10] * 4" (subscript_expression "param_2[10]" identifier [ number_literal ]) * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffbff | 0x400" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffbff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (if_statement "if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(uVar7 != 0x5c)" ( (binary_expression "uVar7 != 0x5c" identifier != number_literal) )) (compound_statement "{\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" if (parenthesized_expression "(param_2[0x14] < 2)" ( (binary_expression "param_2[0x14] < 2" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" * (cast_expression "(code *)PTR___ctype_b_loc_004bf168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }" if (parenthesized_expression "((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0)" ( (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar4 + uVar7 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar4 + uVar7 * 2)" * (cast_expression "(ushort *)(*piVar4 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + uVar7 * 2)" ( (binary_expression "*piVar4 + uVar7 * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }" { (expression_statement "uVar5 = (uint)(uVar7 == 0x5f);" (assignment_expression "uVar5 = (uint)(uVar7 == 0x5f)" identifier = (call_expression "(uint)(uVar7 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 == 0x5f)" ( (binary_expression "uVar7 == 0x5f" identifier == number_literal) )))) ;) })) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "uVar5 << 9" identifier << number_literal))) ;) }) (else_clause "else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" else (compound_statement "{\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" { (expression_statement "piVar6 = (int *)param_2[10];" (assignment_expression "piVar6 = (int *)param_2[10]" identifier = (cast_expression "(int *)param_2[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = FUN_00489d48();" (assignment_expression "iVar2 = FUN_00489d48()" identifier = (call_expression "FUN_00489d48()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(iVar2)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (call_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0 || iVar2 == 0x5f)" ( (binary_expression "iVar3 != 0 || iVar2 == 0x5f" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "iVar2 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }))) (switch_statement "switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }" switch (parenthesized_expression "(uVar7 - 10 & 0xff)" ( (binary_expression "uVar7 - 10 & 0xff" (binary_expression "uVar7 - 10" identifier - number_literal) & number_literal) )) (compound_statement "{\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }" { (case_statement "case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x800) == 0)" ( (binary_expression "(param_3 & 0x800) == 0" (parenthesized_expression "(param_3 & 0x800)" ( (binary_expression "param_3 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" else (compound_statement "{\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n      iVar2 = 1;\n      break;" default : (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;" case number_literal : (if_statement "if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }" if (parenthesized_expression "(((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc]))" ( (binary_expression "((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])" (parenthesized_expression "((param_3 & 8) == 0)" ( (binary_expression "(param_3 & 8) == 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_2[10] + 1 != param_2[0xc])" ( (binary_expression "param_2[10] + 1 != param_2[0xc]" (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) != (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ))) )) (compound_statement "{\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }" { (expression_statement "param_2[10] = param_2[10] + 1;" (assignment_expression "param_2[10] = param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) = (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar6 = param_2;" (assignment_expression "piVar6 = param_2" identifier = identifier) ;) (expression_statement "FUN_0048cd50(auStack_24,param_2,param_3);" (call_expression "FUN_0048cd50(auStack_24,param_2,param_3)" identifier (argument_list "(auStack_24,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_2[10] = param_2[10] + -1;" (assignment_expression "param_2[10] = param_2[10] + -1" (subscript_expression "param_2[10]" identifier [ number_literal ]) = (binary_expression "param_2[10] + -1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }" if (parenthesized_expression "(1 < (byte)(local_20 - 9U))" ( (binary_expression "1 < (byte)(local_20 - 9U)" number_literal < (call_expression "(byte)(local_20 - 9U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_20 - 9U)" ( (binary_expression "local_20 - 9U" identifier - number_literal) )))) )) (compound_statement "{\n          iVar2 = 1;\n          break;\n        }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x20;" (assignment_expression "param_1[3] = 0x20" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" else (compound_statement "{\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 8;" (assignment_expression "param_1[4] = 8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" else (compound_statement "{\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 9;" (assignment_expression "param_1[4] = 9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;" case number_literal : (expression_statement "param_1[4] = 0xb;" (assignment_expression "param_1[4] = 0xb" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x402) == 0)" ( (binary_expression "(param_3 & 0x402) == 0" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x12;" (assignment_expression "param_1[4] = 0x12" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;" case number_literal : (expression_statement "param_1[4] = 5;" (assignment_expression "param_1[4] = 5" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x402) == 0)" ( (binary_expression "(param_3 & 0x402) == 0" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x13;" (assignment_expression "param_1[4] = 0x13" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;" case number_literal : (expression_statement "param_1[4] = 0x14;" (assignment_expression "param_1[4] = 0x14" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;" case number_literal : (if_statement "if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }" if (parenthesized_expression "((param_3 & 0x800008) == 0)" ( (binary_expression "(param_3 & 0x800008) == 0" (parenthesized_expression "(param_3 & 0x800008)" ( (binary_expression "param_3 & 0x800008" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }" { (if_statement "if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }" if (parenthesized_expression "(param_2[10] != 0)" ( (binary_expression "param_2[10] != 0" (subscript_expression "param_2[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }" { (if_statement "if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }" if (parenthesized_expression "((param_3 & 0x800) == 0)" ( (binary_expression "(param_3 & 0x800) == 0" (parenthesized_expression "(param_3 & 0x800)" ( (binary_expression "param_3 & 0x800" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar2 = 1;\n            break;\n          }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }" if (parenthesized_expression "(*(char *)(param_2[1] + param_2[10] + -1) != '\n')" ( (binary_expression "*(char *)(param_2[1] + param_2[10] + -1) != '\n'" (pointer_expression "*(char *)(param_2[1] + param_2[10] + -1)" * (cast_expression "(char *)(param_2[1] + param_2[10] + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + param_2[10] + -1)" ( (binary_expression "param_2[1] + param_2[10] + -1" (binary_expression "param_2[1] + param_2[10]" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n            iVar2 = 1;\n            break;\n          }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x1200) == 0x1200)" ( (binary_expression "(param_3 & 0x1200) == 0x1200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x17;" (assignment_expression "param_1[4] = 0x17" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" case number_literal : (if_statement "if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x8400) == 0x8000)" ( (binary_expression "(param_3 & 0x8400) == 0x8000" (parenthesized_expression "(param_3 & 0x8400)" ( (binary_expression "param_3 & 0x8400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" if (parenthesized_expression "((param_3 & 0x1200) == 0x1200)" ( (binary_expression "(param_3 & 0x1200) == 0x1200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }" { (expression_statement "param_1[4] = 0x18;" (assignment_expression "param_1[4] = 0x18" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar2 = 1;\n      }" else (compound_statement "{\n        iVar2 = 1;\n      }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) })))) })) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (expression_statement "piVar6 = (int *)param_2[10];" (assignment_expression "piVar6 = (int *)param_2[10]" identifier = (cast_expression "(int *)param_2[10]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = (int)piVar6 + 1;" (assignment_expression "iVar2 = (int)piVar6 + 1" identifier = (binary_expression "(int)piVar6 + 1" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" if (parenthesized_expression "(param_2[0xc] <= iVar2)" ( (binary_expression "param_2[0xc] <= iVar2" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" { (expression_statement "param_1[4] = 0x24;" (assignment_expression "param_1[4] = 0x24" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0048ce98;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)((int)param_2 + 0x4b) == '\0')" ( (binary_expression "*(char *)((int)param_2 + 0x4b) == '\0'" (pointer_expression "*(char *)((int)param_2 + 0x4b)" * (cast_expression "(char *)((int)param_2 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x4b)" ( (binary_expression "(int)param_2 + 0x4b" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }" { (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" identifier = (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2[1] + iVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + iVar2)" ( (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier) ))))) ;) }) (else_clause "else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" else (compound_statement "{\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" { (if_statement "if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }" if (parenthesized_expression "(1 < param_2[0x14])" ( (binary_expression "1 < param_2[0x14]" number_literal < (subscript_expression "param_2[0x14]" identifier [ number_literal ])) )) (compound_statement "{\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }" { (expression_statement "piVar6 = (int *)((int)piVar6 + 2);" (assignment_expression "piVar6 = (int *)((int)piVar6 + 2)" identifier = (cast_expression "(int *)((int)piVar6 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 2)" ( (binary_expression "(int)piVar6 + 2" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }" if (parenthesized_expression "((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1))))" ( (binary_expression "(*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))" (parenthesized_expression "(*(int *)(param_2[2] + iVar2 * 4) == -1)" ( (binary_expression "*(int *)(param_2[2] + iVar2 * 4) == -1" (pointer_expression "*(int *)(param_2[2] + iVar2 * 4)" * (cast_expression "(int *)(param_2[2] + iVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + iVar2 * 4)" ( (binary_expression "param_2[2] + iVar2 * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "iVar2 * 4" identifier * number_literal)) )))) == number_literal) )) || (parenthesized_expression "(((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))" ( (parenthesized_expression "((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1))" ( (binary_expression "(int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)" (binary_expression "(int *)param_2[7] != piVar6" (cast_expression "(int *)param_2[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != identifier) && (parenthesized_expression "(*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)" ( (binary_expression "*(int *)(param_2[2] + iVar2 * 4 + 4) == -1" (pointer_expression "*(int *)(param_2[2] + iVar2 * 4 + 4)" * (cast_expression "(int *)(param_2[2] + iVar2 * 4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + iVar2 * 4 + 4)" ( (binary_expression "param_2[2] + iVar2 * 4 + 4" (binary_expression "param_2[2] + iVar2 * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "iVar2 * 4" identifier * number_literal)) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }" { (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" identifier = (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2[1] + iVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + iVar2)" ( (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier) ))))) ;) (goto_statement "goto LAB_0048cf14;" goto statement_identifier ;) })) })) (if_statement "if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x13) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x13) == '\0'" (pointer_expression "*(char *)(param_2 + 0x13)" * (cast_expression "(char *)(param_2 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x13)" ( (binary_expression "param_2 + 0x13" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }" { (expression_statement "uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);" (assignment_expression "uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6])" identifier = (binary_expression "(uint)*(byte *)(*param_2 + iVar2 + param_2[6])" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*param_2 + iVar2 + param_2[6])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_2 + iVar2 + param_2[6])" ( (binary_expression "*param_2 + iVar2 + param_2[6]" (binary_expression "*param_2 + iVar2" (pointer_expression "*param_2" * identifier) + identifier) + (subscript_expression "param_2[6]" identifier [ number_literal ])) ))))) ;) }) (else_clause "else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" else (compound_statement "{\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" { (expression_statement "piVar6 = *(int **)(param_2[3] + iVar2 * 4);" (assignment_expression "piVar6 = *(int **)(param_2[3] + iVar2 * 4)" identifier = (pointer_expression "*(int **)(param_2[3] + iVar2 * 4)" * (cast_expression "(int **)(param_2[3] + iVar2 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[3] + iVar2 * 4)" ( (binary_expression "param_2[3] + iVar2 * 4" (subscript_expression "param_2[3]" identifier [ number_literal ]) + (binary_expression "iVar2 * 4" identifier * number_literal)) ))))) ;) (expression_statement "bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);" (assignment_expression "bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2)" identifier = (pointer_expression "*(byte *)((int)piVar6 + param_2[6] + *param_2)" * (cast_expression "(byte *)((int)piVar6 + param_2[6] + *param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + param_2[6] + *param_2)" ( (binary_expression "(int)piVar6 + param_2[6] + *param_2" (binary_expression "(int)piVar6 + param_2[6]" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_2[6]" identifier [ number_literal ])) + (pointer_expression "*param_2" * identifier)) ))))) ;) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }" if (parenthesized_expression "((bVar1 & 0x80) != 0)" ( (binary_expression "(bVar1 & 0x80) != 0" (parenthesized_expression "(bVar1 & 0x80)" ( (binary_expression "bVar1 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }" { (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" identifier = (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2[1] + iVar2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + iVar2)" ( (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier) ))))) ;) })) }))) }))) (labeled_statement "LAB_0048cf14:\n  *param_1 = (byte)uVar7;" statement_identifier : (expression_statement "*param_1 = (byte)uVar7;" (assignment_expression "*param_1 = (byte)uVar7" (pointer_expression "*param_1" * identifier) = (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;)) (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" if (parenthesized_expression "(param_2[0x14] < 2)" ( (binary_expression "param_2[0x14] < 2" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" * (cast_expression "(code *)PTR___ctype_b_loc_004bf168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (call_expression "(uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f)" ( (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f" (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800)" ( (binary_expression "*(ushort *)(*piVar4 + uVar7 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar4 + uVar7 * 2)" * (cast_expression "(ushort *)(*piVar4 + uVar7 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + uVar7 * 2)" ( (binary_expression "*piVar4 + uVar7 * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "uVar7 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) || (binary_expression "uVar7 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }) (else_clause "else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" else (compound_statement "{\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" { (expression_statement "piVar6 = (int *)(param_2[10] + 1);" (assignment_expression "piVar6 = (int *)(param_2[10] + 1)" identifier = (cast_expression "(int *)(param_2[10] + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 1)" ( (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "iVar2 = FUN_00489d48();" (assignment_expression "iVar2 = FUN_00489d48()" identifier = (call_expression "FUN_00489d48()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(iVar2)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) & number_literal) | (binary_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (call_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0 || iVar2 == 0x5f)" ( (binary_expression "iVar3 != 0 || iVar2 == 0x5f" (binary_expression "iVar3 != 0" identifier != number_literal) || (binary_expression "iVar2 == 0x5f" identifier == number_literal)) ))) << number_literal))) ;) }))) (switch_statement "switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" switch (parenthesized_expression "(uVar7 - 0x27 & 0xff)" ( (binary_expression "uVar7 - 0x27 & 0xff" (binary_expression "uVar7 - 0x27" identifier - number_literal) & number_literal) )) (compound_statement "{\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" { (case_statement "case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x80;" (assignment_expression "param_1[3] = 0x80" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 8;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 8;" (assignment_expression "param_1[4] = 8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x2000) == 0)" ( (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" ( (binary_expression "param_3 & 0x2000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 9;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 9;" (assignment_expression "param_1[4] = 9" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n    iVar2 = 2;\n    break;" default : (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x402) == 2)" ( (binary_expression "(param_3 & 0x402) == 2" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x12;" (assignment_expression "param_1[4] = 0x12" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:" case number_literal :) (case_statement "case 0xc:" case number_literal :) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0xe:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x4000) == 0)" ( (binary_expression "(param_3 & 0x4000) == 0" (parenthesized_expression "(param_3 & 0x4000)" ( (binary_expression "param_3 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 4;" (assignment_expression "param_1[4] = 4" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(uint *)param_1 = uVar7 - 0x31;" (assignment_expression "*(uint *)param_1 = uVar7 - 0x31" (pointer_expression "*(uint *)param_1" * (cast_expression "(uint *)param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar7 - 0x31" identifier - number_literal)) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 6;" (assignment_expression "param_1[3] = 6" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 9;" (assignment_expression "param_1[3] = 9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) (if_statement "if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x402) == 2)" ( (binary_expression "(param_3 & 0x402) == 2" (parenthesized_expression "(param_3 & 0x402)" ( (binary_expression "param_3 & 0x402" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x13;" (assignment_expression "param_1[4] = 0x13" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 2;" (assignment_expression "param_1[2] = 2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x23;" (assignment_expression "param_1[4] = 0x23" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x21;" (assignment_expression "param_1[4] = 0x21" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0x40;" (assignment_expression "param_1[3] = 0x40" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x22;" (assignment_expression "param_1[4] = 0x22" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" if (parenthesized_expression "((int)(param_3 << 0xc) < 0)" ( (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 << 0xc)" ( (binary_expression "param_3 << 0xc" identifier << number_literal) ))) < number_literal) )) (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" else (compound_statement "{\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x20;" (assignment_expression "param_1[4] = 0x20" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x1200) == 0x200)" ( (binary_expression "(param_3 & 0x1200) == 0x200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x17;" (assignment_expression "param_1[4] = 0x17" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" case number_literal : (if_statement "if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x8400) == 0)" ( (binary_expression "(param_3 & 0x8400) == 0" (parenthesized_expression "(param_3 & 0x8400)" ( (binary_expression "param_3 & 0x8400" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 10;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" case number_literal : (if_statement "if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" if (parenthesized_expression "((param_3 & 0x1200) == 0x200)" ( (binary_expression "(param_3 & 0x1200) == 0x200" (parenthesized_expression "(param_3 & 0x1200)" ( (binary_expression "param_3 & 0x1200" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }" { (expression_statement "param_1[4] = 0x18;" (assignment_expression "param_1[4] = 0x18" (subscript_expression "param_1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = 2;\n    }" else (compound_statement "{\n      iVar2 = 2;\n    }" { (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" identifier = number_literal) ;) })))) })) (labeled_statement "LAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(int *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = FUN_0048cd50();" (assignment_expression "iVar2 = FUN_0048cd50()" identifier = (call_expression "FUN_0048cd50()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = piVar6[10];" (assignment_expression "iVar3 = piVar6[10]" identifier = (subscript_expression "piVar6[10]" identifier [ number_literal ])) ;) (expression_statement "piVar6[10] = iVar3 + iVar2;" (assignment_expression "piVar6[10] = iVar3 + iVar2" (subscript_expression "piVar6[10]" identifier [ number_literal ]) = (binary_expression "iVar3 + iVar2" identifier + identifier)) ;) (return_statement "return iVar3 + iVar2;" return (binary_expression "iVar3 + iVar2" identifier + identifier) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression IDENT << LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT == LIT)) ))) << LIT))) ;) }))) (switch_statement switch (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) != (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) )))) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + IDENT) + (subscript_expression IDENT [ LIT ])) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) + (pointer_expression * IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) || (binary_expression IDENT == LIT)) ))) << LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT == LIT)) ))) << LIT))) ;) }))) (switch_statement switch (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (return_statement return (binary_expression IDENT + IDENT) ;) })))
(function_definition "int FUN_0048cd50(byte *param_1,int *param_2,uint param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}" (primitive_type "int") (function_declarator "FUN_0048cd50(byte *param_1,int *param_2,uint param_3)" (identifier "FUN_0048cd50") (parameter_list "(byte *param_1,int *param_2,uint param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  undefined1 auStack_24 [4];\n  char local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;\n  piVar6 = param_2;\n  if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }\n  bVar1 = *(byte *)(param_2[1] + param_2[10]);\n  uVar7 = (uint)bVar1;\n  *param_1 = bVar1;\n  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;\n  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }\n  piVar6 = (int *)param_2[10];\n  iVar2 = (int)piVar6 + 1;\n  if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }\n  if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }\nLAB_0048cf14:\n  *param_1 = (byte)uVar7;\n  param_1[4] = 1;\n  if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }\n  switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }\nLAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  iVar2 = FUN_0048cd50();\n  iVar3 = piVar6[10];\n  piVar6[10] = iVar3 + iVar2;\n  return iVar3 + iVar2;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined1 auStack_24 [4];" (type_identifier "undefined1") (array_declarator "auStack_24 [4]" (identifier "auStack_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "char local_20;" (primitive_type "char") (identifier "local_20") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_004bf38c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_004bf38c" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_004bf38c")))) (; ";")) (expression_statement "piVar6 = param_2;" (assignment_expression "piVar6 = param_2" (identifier "piVar6") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2[0xe] <= param_2[10]) {\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }" (if "if") (parenthesized_expression "(param_2[0xe] <= param_2[10])" (( "(") (binary_expression "param_2[0xe] <= param_2[10]" (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]")) (<= "<=") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) () ")")) (compound_statement "{\n    param_1[4] = 2;\n    iVar2 = 0;\n    goto LAB_0048ce98;\n  }" ({ "{") (expression_statement "param_1[4] = 2;" (assignment_expression "param_1[4] = 2" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0048ce98;" (goto "goto") (statement_identifier "LAB_0048ce98") (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)(param_2[1] + param_2[10]);" (assignment_expression "bVar1 = *(byte *)(param_2[1] + param_2[10])" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2[1] + param_2[10])" (* "*") (cast_expression "(byte *)(param_2[1] + param_2[10])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + param_2[10])" (( "(") (binary_expression "param_2[1] + param_2[10]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) () ")"))))) (; ";")) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" (identifier "uVar7") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (expression_statement "*param_1 = bVar1;" (assignment_expression "*param_1 = bVar1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 4) & 0xfffff9ff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfffff9ff"))) (; ";")) (if_statement "if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" (if "if") (parenthesized_expression "(((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1))" (( "(") (binary_expression "((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&\n     (*(int *)(param_2[2] + param_2[10] * 4) == -1)" (parenthesized_expression "((1 < param_2[0x14]) && (param_2[10] != param_2[7]))" (( "(") (binary_expression "(1 < param_2[0x14]) && (param_2[10] != param_2[7])" (parenthesized_expression "(1 < param_2[0x14])" (( "(") (binary_expression "1 < param_2[0x14]" (number_literal "1") (< "<") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(param_2[10] != param_2[7])" (( "(") (binary_expression "param_2[10] != param_2[7]" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (!= "!=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_2[2] + param_2[10] * 4) == -1)" (( "(") (binary_expression "*(int *)(param_2[2] + param_2[10] * 4) == -1" (pointer_expression "*(int *)(param_2[2] + param_2[10] * 4)" (* "*") (cast_expression "(int *)(param_2[2] + param_2[10] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + param_2[10] * 4)" (( "(") (binary_expression "param_2[2] + param_2[10] * 4" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "param_2[10] * 4" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    param_1[4] = 1;\n    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" ({ "{") (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 4) & 0xfffffbff | 0x400" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffbff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfffffbff")) (| "|") (number_literal "0x400"))) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0048ce98;" (goto "goto") (statement_identifier "LAB_0048ce98") (; ";")) (} "}"))) (if_statement "if (uVar7 != 0x5c) {\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" (if "if") (parenthesized_expression "(uVar7 != 0x5c)" (( "(") (binary_expression "uVar7 != 0x5c" (identifier "uVar7") (!= "!=") (number_literal "0x5c")) () ")")) (compound_statement "{\n    param_1[4] = 1;\n    if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }\n    switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }\n    goto LAB_0048ce98;\n  }" ({ "{") (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_2[0x14] < 2) {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }\n    else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" (if "if") (parenthesized_expression "(param_2[0x14] < 2)" (( "(") (binary_expression "param_2[0x14] < 2" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n      uVar5 = 1;\n      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }\n      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;\n    }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_004bf168" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_004bf168"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }" (if "if") (parenthesized_expression "((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800)" (( "(") (binary_expression "*(ushort *)(*piVar4 + uVar7 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar4 + uVar7 * 2)" (* "*") (cast_expression "(ushort *)(*piVar4 + uVar7 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + uVar7 * 2)" (( "(") (binary_expression "*piVar4 + uVar7 * 2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (binary_expression "uVar7 * 2" (identifier "uVar7") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = (uint)(uVar7 == 0x5f);\n      }" ({ "{") (expression_statement "uVar5 = (uint)(uVar7 == 0x5f);" (assignment_expression "uVar5 = (uint)(uVar7 == 0x5f)" (identifier "uVar5") (= "=") (call_expression "(uint)(uVar7 == 0x5f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 == 0x5f)" (( "(") (binary_expression "uVar7 == 0x5f" (identifier "uVar7") (== "==") (number_literal "0x5f")) () ")")))) (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;" (assignment_expression "*(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfffffdff")) (| "|") (binary_expression "uVar5 << 9" (identifier "uVar5") (<< "<<") (number_literal "9")))) (; ";")) (} "}")) (else_clause "else {\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" (else "else") (compound_statement "{\n      piVar6 = (int *)param_2[10];\n      iVar2 = FUN_00489d48();\n      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n      *(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n    }" ({ "{") (expression_statement "piVar6 = (int *)param_2[10];" (assignment_expression "piVar6 = (int *)param_2[10]" (identifier "piVar6") (= "=") (cast_expression "(int *)param_2[10]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "iVar2 = FUN_00489d48();" (assignment_expression "iVar2 = FUN_00489d48()" (identifier "iVar2") (= "=") (call_expression "FUN_00489d48()" (identifier "FUN_00489d48") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_iswalnum_004bf25c)(iVar2)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" (( "(") (pointer_expression "*(code *)PTR_iswalnum_004bf25c" (* "*") (cast_expression "(code *)PTR_iswalnum_004bf25c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswalnum_004bf25c"))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "*(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfffffdff")) (| "|") (binary_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (call_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 != 0 || iVar2 == 0x5f)" (( "(") (binary_expression "iVar3 != 0 || iVar2 == 0x5f" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar2 == 0x5f" (identifier "iVar2") (== "==") (number_literal "0x5f"))) () ")"))) (<< "<<") (number_literal "9")))) (; ";")) (} "}")))) (switch_statement "switch(uVar7 - 10 & 0xff) {\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }" (switch "switch") (parenthesized_expression "(uVar7 - 10 & 0xff)" (( "(") (binary_expression "uVar7 - 10 & 0xff" (binary_expression "uVar7 - 10" (identifier "uVar7") (- "-") (number_literal "10")) (& "&") (number_literal "0xff")) () ")")) (compound_statement "{\n    case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;\n    default:\n      iVar2 = 1;\n      break;\n    case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;\n    case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;\n    case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;\n    case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;\n    case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;\n    case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;\n    case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;\n    case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;\n    case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n    }" ({ "{") (case_statement "case 0:\n      if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0") (: ":") (if_statement "if ((param_3 & 0x800) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x800) == 0)" (( "(") (binary_expression "(param_3 & 0x800) == 0" (parenthesized_expression "(param_3 & 0x800)" (( "(") (binary_expression "param_3 & 0x800" (identifier "param_3") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "10")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      iVar2 = 1;\n      break;" (default "default") (: ":") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1a:\n      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x20;\n      iVar2 = 1;\n      break;" (case "case") (number_literal "0x1a") (: ":") (if_statement "if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }" (if "if") (parenthesized_expression "(((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc]))" (( "(") (binary_expression "((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])" (parenthesized_expression "((param_3 & 8) == 0)" (( "(") (binary_expression "(param_3 & 8) == 0" (parenthesized_expression "(param_3 & 8)" (( "(") (binary_expression "param_3 & 8" (identifier "param_3") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_2[10] + 1 != param_2[0xc])" (( "(") (binary_expression "param_2[10] + 1 != param_2[0xc]" (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "1")) (!= "!=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) () ")"))) () ")")) (compound_statement "{\n        param_2[10] = param_2[10] + 1;\n        piVar6 = param_2;\n        FUN_0048cd50(auStack_24,param_2,param_3);\n        param_2[10] = param_2[10] + -1;\n        if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }\n      }" ({ "{") (expression_statement "param_2[10] = param_2[10] + 1;" (assignment_expression "param_2[10] = param_2[10] + 1" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar6 = param_2;" (assignment_expression "piVar6 = param_2" (identifier "piVar6") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_0048cd50(auStack_24,param_2,param_3);" (call_expression "FUN_0048cd50(auStack_24,param_2,param_3)" (identifier "FUN_0048cd50") (argument_list "(auStack_24,param_2,param_3)" (( "(") (identifier "auStack_24") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "param_2[10] = param_2[10] + -1;" (assignment_expression "param_2[10] = param_2[10] + -1" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "param_2[10] + -1" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (1 < (byte)(local_20 - 9U)) {\n          iVar2 = 1;\n          break;\n        }" (if "if") (parenthesized_expression "(1 < (byte)(local_20 - 9U))" (( "(") (binary_expression "1 < (byte)(local_20 - 9U)" (number_literal "1") (< "<") (call_expression "(byte)(local_20 - 9U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_20 - 9U)" (( "(") (binary_expression "local_20 - 9U" (identifier "local_20") (- "-") (number_literal "9U")) () ")")))) () ")")) (compound_statement "{\n          iVar2 = 1;\n          break;\n        }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0x20;" (assignment_expression "param_1[3] = 0x20" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1e:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0x1e") (: ":") (if_statement "if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x2000) == 0)" (( "(") (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" (( "(") (binary_expression "param_3 & 0x2000" (identifier "param_3") (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        param_1[4] = 8;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 8;" (assignment_expression "param_1[4] = 8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1f:\n      if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0x1f") (: ":") (if_statement "if ((param_3 & 0x2000) == 0) {\n        iVar2 = 1;\n      }\n      else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x2000) == 0)" (( "(") (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" (( "(") (binary_expression "param_3 & 0x2000" (identifier "param_3") (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        param_1[4] = 9;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 9;" (assignment_expression "param_1[4] = 9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "9")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x20:\n      param_1[4] = 0xb;\n      iVar2 = 1;\n      break;" (case "case") (number_literal "0x20") (: ":") (expression_statement "param_1[4] = 0xb;" (assignment_expression "param_1[4] = 0xb" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xb")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x21:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0x21") (: ":") (if_statement "if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x402) == 0)" (( "(") (binary_expression "(param_3 & 0x402) == 0" (parenthesized_expression "(param_3 & 0x402)" (( "(") (binary_expression "param_3 & 0x402" (identifier "param_3") (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[4] = 0x12;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 0x12;" (assignment_expression "param_1[4] = 0x12" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x12")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x24:\n      param_1[4] = 5;\n      iVar2 = 1;\n      break;" (case "case") (number_literal "0x24") (: ":") (expression_statement "param_1[4] = 5;" (assignment_expression "param_1[4] = 5" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "5")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x35:\n      if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0x35") (: ":") (if_statement "if ((param_3 & 0x402) == 0) {\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x402) == 0)" (( "(") (binary_expression "(param_3 & 0x402) == 0" (parenthesized_expression "(param_3 & 0x402)" (( "(") (binary_expression "param_3 & 0x402" (identifier "param_3") (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[4] = 0x13;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 0x13;" (assignment_expression "param_1[4] = 0x13" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x13")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x51:\n      param_1[4] = 0x14;\n      iVar2 = 1;\n      break;" (case "case") (number_literal "0x51") (: ":") (expression_statement "param_1[4] = 0x14;" (assignment_expression "param_1[4] = 0x14" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x54:\n      if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x10;\n      iVar2 = 1;\n      break;" (case "case") (number_literal "0x54") (: ":") (if_statement "if ((param_3 & 0x800008) == 0) {\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((param_3 & 0x800008) == 0)" (( "(") (binary_expression "(param_3 & 0x800008) == 0" (parenthesized_expression "(param_3 & 0x800008)" (( "(") (binary_expression "param_3 & 0x800008" (identifier "param_3") (& "&") (number_literal "0x800008")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }\n      }" ({ "{") (if_statement "if (param_2[10] != 0) {\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }" (if "if") (parenthesized_expression "(param_2[10] != 0)" (( "(") (binary_expression "param_2[10] != 0" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }\n          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }\n        }" ({ "{") (if_statement "if ((param_3 & 0x800) == 0) {\n            iVar2 = 1;\n            break;\n          }" (if "if") (parenthesized_expression "((param_3 & 0x800) == 0)" (( "(") (binary_expression "(param_3 & 0x800) == 0" (parenthesized_expression "(param_3 & 0x800)" (( "(") (binary_expression "param_3 & 0x800" (identifier "param_3") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar2 = 1;\n            break;\n          }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {\n            iVar2 = 1;\n            break;\n          }" (if "if") (parenthesized_expression "(*(char *)(param_2[1] + param_2[10] + -1) != '\n')" (( "(") (binary_expression "*(char *)(param_2[1] + param_2[10] + -1) != '\n'" (pointer_expression "*(char *)(param_2[1] + param_2[10] + -1)" (* "*") (cast_expression "(char *)(param_2[1] + param_2[10] + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + param_2[10] + -1)" (( "(") (binary_expression "param_2[1] + param_2[10] + -1" (binary_expression "param_2[1] + param_2[10]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "-1")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n            iVar2 = 1;\n            break;\n          }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0x10;" (assignment_expression "param_1[3] = 0x10" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x71:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0x71") (: ":") (if_statement "if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x1200) == 0x1200)" (( "(") (binary_expression "(param_3 & 0x1200) == 0x1200" (parenthesized_expression "(param_3 & 0x1200)" (( "(") (binary_expression "param_3 & 0x1200" (identifier "param_3") (& "&") (number_literal "0x1200")) () ")")) (== "==") (number_literal "0x1200")) () ")")) (compound_statement "{\n        param_1[4] = 0x17;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 0x17;" (assignment_expression "param_1[4] = 0x17" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x72:\n      if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }\n      break;" (case "case") (number_literal "0x72") (: ":") (if_statement "if ((param_3 & 0x8400) == 0x8000) {\n        param_1[4] = 10;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x8400) == 0x8000)" (( "(") (binary_expression "(param_3 & 0x8400) == 0x8000" (parenthesized_expression "(param_3 & 0x8400)" (( "(") (binary_expression "param_3 & 0x8400" (identifier "param_3") (& "&") (number_literal "0x8400")) () ")")) (== "==") (number_literal "0x8000")) () ")")) (compound_statement "{\n        param_1[4] = 10;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "10")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x73:\n      if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" (case "case") (number_literal "0x73") (: ":") (if_statement "if ((param_3 & 0x1200) == 0x1200) {\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }\n      else {\n        iVar2 = 1;\n      }" (if "if") (parenthesized_expression "((param_3 & 0x1200) == 0x1200)" (( "(") (binary_expression "(param_3 & 0x1200) == 0x1200" (parenthesized_expression "(param_3 & 0x1200)" (( "(") (binary_expression "param_3 & 0x1200" (identifier "param_3") (& "&") (number_literal "0x1200")) () ")")) (== "==") (number_literal "0x1200")) () ")")) (compound_statement "{\n        param_1[4] = 0x18;\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "param_1[4] = 0x18;" (assignment_expression "param_1[4] = 0x18" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x18")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar2 = 1;\n      }" (else "else") (compound_statement "{\n        iVar2 = 1;\n      }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (} "}"))) (goto_statement "goto LAB_0048ce98;" (goto "goto") (statement_identifier "LAB_0048ce98") (; ";")) (} "}"))) (expression_statement "piVar6 = (int *)param_2[10];" (assignment_expression "piVar6 = (int *)param_2[10]" (identifier "piVar6") (= "=") (cast_expression "(int *)param_2[10]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "iVar2 = (int)piVar6 + 1;" (assignment_expression "iVar2 = (int)piVar6 + 1" (identifier "iVar2") (= "=") (binary_expression "(int)piVar6 + 1" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_2[0xc] <= iVar2) {\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" (if "if") (parenthesized_expression "(param_2[0xc] <= iVar2)" (( "(") (binary_expression "param_2[0xc] <= iVar2" (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")) (<= "<=") (identifier "iVar2")) () ")")) (compound_statement "{\n    param_1[4] = 0x24;\n    iVar2 = 1;\n    goto LAB_0048ce98;\n  }" ({ "{") (expression_statement "param_1[4] = 0x24;" (assignment_expression "param_1[4] = 0x24" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x24")) (; ";")) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0048ce98;" (goto "goto") (statement_identifier "LAB_0048ce98") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)param_2 + 0x4b) == '\0') {\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }\n  else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)((int)param_2 + 0x4b) == '\0')" (( "(") (binary_expression "*(char *)((int)param_2 + 0x4b) == '\0'" (pointer_expression "*(char *)((int)param_2 + 0x4b)" (* "*") (cast_expression "(char *)((int)param_2 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x4b)" (( "(") (binary_expression "(int)param_2 + 0x4b" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x4b")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n  }" ({ "{") (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2[1] + iVar2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + iVar2)" (( "(") (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar2")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }\n    if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }\n  }" ({ "{") (if_statement "if (1 < param_2[0x14]) {\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }" (if "if") (parenthesized_expression "(1 < param_2[0x14])" (( "(") (binary_expression "1 < param_2[0x14]" (number_literal "1") (< "<") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) () ")")) (compound_statement "{\n      piVar6 = (int *)((int)piVar6 + 2);\n      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }\n    }" ({ "{") (expression_statement "piVar6 = (int *)((int)piVar6 + 2);" (assignment_expression "piVar6 = (int *)((int)piVar6 + 2)" (identifier "piVar6") (= "=") (cast_expression "(int *)((int)piVar6 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 2)" (( "(") (binary_expression "(int)piVar6 + 2" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }" (if "if") (parenthesized_expression "((*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1))))" (( "(") (binary_expression "(*(int *)(param_2[2] + iVar2 * 4) == -1) ||\n         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))" (parenthesized_expression "(*(int *)(param_2[2] + iVar2 * 4) == -1)" (( "(") (binary_expression "*(int *)(param_2[2] + iVar2 * 4) == -1" (pointer_expression "*(int *)(param_2[2] + iVar2 * 4)" (* "*") (cast_expression "(int *)(param_2[2] + iVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + iVar2 * 4)" (( "(") (binary_expression "param_2[2] + iVar2 * 4" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))" (( "(") (parenthesized_expression "((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1))" (( "(") (binary_expression "(int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)" (binary_expression "(int *)param_2[7] != piVar6" (cast_expression "(int *)param_2[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (identifier "piVar6")) (&& "&&") (parenthesized_expression "(*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)" (( "(") (binary_expression "*(int *)(param_2[2] + iVar2 * 4 + 4) == -1" (pointer_expression "*(int *)(param_2[2] + iVar2 * 4 + 4)" (* "*") (cast_expression "(int *)(param_2[2] + iVar2 * 4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + iVar2 * 4 + 4)" (( "(") (binary_expression "param_2[2] + iVar2 * 4 + 4" (binary_expression "param_2[2] + iVar2 * 4" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n        goto LAB_0048cf14;\n      }" ({ "{") (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2[1] + iVar2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + iVar2)" (( "(") (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar2")) () ")"))))) (; ";")) (goto_statement "goto LAB_0048cf14;" (goto "goto") (statement_identifier "LAB_0048cf14") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(char *)(param_2 + 0x13) == '\0') {\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }\n    else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x13) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x13) == '\0'" (pointer_expression "*(char *)(param_2 + 0x13)" (* "*") (cast_expression "(char *)(param_2 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x13)" (( "(") (binary_expression "param_2 + 0x13" (identifier "param_2") (+ "+") (number_literal "0x13")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);\n    }" ({ "{") (expression_statement "uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);" (assignment_expression "uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6])" (identifier "uVar7") (= "=") (binary_expression "(uint)*(byte *)(*param_2 + iVar2 + param_2[6])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*param_2 + iVar2 + param_2[6])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_2 + iVar2 + param_2[6])" (( "(") (binary_expression "*param_2 + iVar2 + param_2[6]" (binary_expression "*param_2 + iVar2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (identifier "iVar2")) (+ "+") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" (else "else") (compound_statement "{\n      piVar6 = *(int **)(param_2[3] + iVar2 * 4);\n      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);\n      uVar7 = (uint)bVar1;\n      if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }\n    }" ({ "{") (expression_statement "piVar6 = *(int **)(param_2[3] + iVar2 * 4);" (assignment_expression "piVar6 = *(int **)(param_2[3] + iVar2 * 4)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_2[3] + iVar2 * 4)" (* "*") (cast_expression "(int **)(param_2[3] + iVar2 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2[3] + iVar2 * 4)" (( "(") (binary_expression "param_2[3] + iVar2 * 4" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);" (assignment_expression "bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)piVar6 + param_2[6] + *param_2)" (* "*") (cast_expression "(byte *)((int)piVar6 + param_2[6] + *param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + param_2[6] + *param_2)" (( "(") (binary_expression "(int)piVar6 + param_2[6] + *param_2" (binary_expression "(int)piVar6 + param_2[6]" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (+ "+") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")"))))) (; ";")) (expression_statement "uVar7 = (uint)bVar1;" (assignment_expression "uVar7 = (uint)bVar1" (identifier "uVar7") (= "=") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1"))) (; ";")) (if_statement "if ((bVar1 & 0x80) != 0) {\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }" (if "if") (parenthesized_expression "((bVar1 & 0x80) != 0)" (( "(") (binary_expression "(bVar1 & 0x80) != 0" (parenthesized_expression "(bVar1 & 0x80)" (( "(") (binary_expression "bVar1 & 0x80" (identifier "bVar1") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);\n      }" ({ "{") (expression_statement "uVar7 = (uint)*(byte *)(param_2[1] + iVar2);" (assignment_expression "uVar7 = (uint)*(byte *)(param_2[1] + iVar2)" (identifier "uVar7") (= "=") (binary_expression "(uint)*(byte *)(param_2[1] + iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2[1] + iVar2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + iVar2)" (( "(") (binary_expression "param_2[1] + iVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar2")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_0048cf14:\n  *param_1 = (byte)uVar7;" (statement_identifier "LAB_0048cf14") (: ":") (expression_statement "*param_1 = (byte)uVar7;" (assignment_expression "*param_1 = (byte)uVar7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7"))) (; ";"))) (expression_statement "param_1[4] = 1;" (assignment_expression "param_1[4] = 1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_2[0x14] < 2) {\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }\n  else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" (if "if") (parenthesized_expression "(param_2[0x14] < 2)" (( "(") (binary_expression "param_2[0x14] < 2" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;\n  }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_004bf168)(param_2)" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_004bf168)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_004bf168" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_004bf168" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_004bf168"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff |\n         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfffffdff")) (| "|") (binary_expression "(uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9" (call_expression "(uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f)" (( "(") (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f" (binary_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0" (parenthesized_expression "(*(ushort *)(*piVar4 + uVar7 * 2) & 0x800)" (( "(") (binary_expression "*(ushort *)(*piVar4 + uVar7 * 2) & 0x800" (pointer_expression "*(ushort *)(*piVar4 + uVar7 * 2)" (* "*") (cast_expression "(ushort *)(*piVar4 + uVar7 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + uVar7 * 2)" (( "(") (binary_expression "*piVar4 + uVar7 * 2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (binary_expression "uVar7 * 2" (identifier "uVar7") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar7 == 0x5f" (identifier "uVar7") (== "==") (number_literal "0x5f"))) () ")"))) (<< "<<") (number_literal "9")))) (; ";")) (} "}")) (else_clause "else {\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" (else "else") (compound_statement "{\n    piVar6 = (int *)(param_2[10] + 1);\n    iVar2 = FUN_00489d48();\n    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);\n    *(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;\n  }" ({ "{") (expression_statement "piVar6 = (int *)(param_2[10] + 1);" (assignment_expression "piVar6 = (int *)(param_2[10] + 1)" (identifier "piVar6") (= "=") (cast_expression "(int *)(param_2[10] + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 1)" (( "(") (binary_expression "param_2[10] + 1" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar2 = FUN_00489d48();" (assignment_expression "iVar2 = FUN_00489d48()" (identifier "iVar2") (= "=") (call_expression "FUN_00489d48()" (identifier "FUN_00489d48") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);" (assignment_expression "iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_iswalnum_004bf25c)(iVar2)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" (( "(") (pointer_expression "*(code *)PTR_iswalnum_004bf25c" (* "*") (cast_expression "(code *)PTR_iswalnum_004bf25c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswalnum_004bf25c"))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;" (assignment_expression "*(uint *)(param_1 + 4) =\n         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (binary_expression "*(uint *)(param_1 + 4) & 0xfffffdff" (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0xfffffdff")) (| "|") (binary_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f) << 9" (call_expression "(uint)(iVar3 != 0 || iVar2 == 0x5f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 != 0 || iVar2 == 0x5f)" (( "(") (binary_expression "iVar3 != 0 || iVar2 == 0x5f" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar2 == 0x5f" (identifier "iVar2") (== "==") (number_literal "0x5f"))) () ")"))) (<< "<<") (number_literal "9")))) (; ";")) (} "}")))) (switch_statement "switch(uVar7 - 0x27 & 0xff) {\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" (switch "switch") (parenthesized_expression "(uVar7 - 0x27 & 0xff)" (( "(") (binary_expression "uVar7 - 0x27 & 0xff" (binary_expression "uVar7 - 0x27" (identifier "uVar7") (- "-") (number_literal "0x27")) (& "&") (number_literal "0xff")) () ")")) (compound_statement "{\n  case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;\n  case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  default:\n    iVar2 = 2;\n    break;\n  case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;\n  case 10:\n  case 0xb:\n  case 0xc:\n  case 0xd:\n  case 0xe:\n  case 0xf:\n  case 0x10:\n  case 0x11:\n  case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;\n  case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;\n  case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;\n  case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;\n  case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;\n  case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;\n  case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;\n  case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;\n  case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;\n  case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;\n  case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n  }" ({ "{") (case_statement "case 0:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x80;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0x80;" (assignment_expression "param_1[3] = 0x80" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x80")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "1") (: ":") (if_statement "if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 8;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x2000) == 0)" (( "(") (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" (( "(") (binary_expression "param_3 & 0x2000" (identifier "param_3") (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[4] = 8;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 8;" (assignment_expression "param_1[4] = 8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "2") (: ":") (if_statement "if ((param_3 & 0x2000) == 0) {\n      param_1[4] = 9;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x2000) == 0)" (( "(") (binary_expression "(param_3 & 0x2000) == 0" (parenthesized_expression "(param_3 & 0x2000)" (( "(") (binary_expression "param_3 & 0x2000" (identifier "param_3") (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[4] = 9;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 9;" (assignment_expression "param_1[4] = 9" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "9")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    iVar2 = 2;\n    break;" (default "default") (: ":") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x402) == 2)" (( "(") (binary_expression "(param_3 & 0x402) == 2" (parenthesized_expression "(param_3 & 0x402)" (( "(") (binary_expression "param_3 & 0x402" (identifier "param_3") (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      param_1[4] = 0x12;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x12;" (assignment_expression "param_1[4] = 0x12" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x12")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0xb:" (case "case") (number_literal "0xb") (: ":")) (case_statement "case 0xc:" (case "case") (number_literal "0xc") (: ":")) (case_statement "case 0xd:" (case "case") (number_literal "0xd") (: ":")) (case_statement "case 0xe:" (case "case") (number_literal "0xe") (: ":")) (case_statement "case 0xf:" (case "case") (number_literal "0xf") (: ":")) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x11:" (case "case") (number_literal "0x11") (: ":")) (case_statement "case 0x12:\n    if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x12") (: ":") (if_statement "if ((param_3 & 0x4000) == 0) {\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x4000) == 0)" (( "(") (binary_expression "(param_3 & 0x4000) == 0" (parenthesized_expression "(param_3 & 0x4000)" (( "(") (binary_expression "param_3 & 0x4000" (identifier "param_3") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[4] = 4;\n      *(uint *)param_1 = uVar7 - 0x31;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 4;" (assignment_expression "param_1[4] = 4" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(uint *)param_1 = uVar7 - 0x31;" (assignment_expression "*(uint *)param_1 = uVar7 - 0x31" (pointer_expression "*(uint *)param_1" (* "*") (cast_expression "(uint *)param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (binary_expression "uVar7 - 0x31" (identifier "uVar7") (- "-") (number_literal "0x31"))) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x15") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 6;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 6;" (assignment_expression "param_1[3] = 6" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "6")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x17:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x17") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 9;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 9;" (assignment_expression "param_1[3] = 9" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "9")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x18:\n    iVar2 = 2;\n    if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x18") (: ":") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if ((param_3 & 0x402) == 2) {\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x402) == 2)" (( "(") (binary_expression "(param_3 & 0x402) == 2" (parenthesized_expression "(param_3 & 0x402)" (( "(") (binary_expression "param_3 & 0x402" (identifier "param_3") (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      param_1[4] = 0x13;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x13;" (assignment_expression "param_1[4] = 0x13" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x13")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x1b") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 2;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 2;" (assignment_expression "param_1[2] = 2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x2c") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0x23;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x23;" (assignment_expression "param_1[4] = 0x23" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x23")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x30:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x30") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0x21;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x21;" (assignment_expression "param_1[4] = 0x21" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x21")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x39:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x39") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 0;\n      param_1[3] = 0x40;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0x40;" (assignment_expression "param_1[3] = 0x40" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x40")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x3b:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x3b") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0xc;\n      param_1[0] = 0;\n      param_1[1] = 0;\n      param_1[2] = 1;\n      param_1[3] = 0;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0xc;" (assignment_expression "param_1[4] = 0xc" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "param_1[0] = 0;" (assignment_expression "param_1[0] = 0" (subscript_expression "param_1[0]" (identifier "param_1") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x4c:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x4c") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0x22;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x22;" (assignment_expression "param_1[4] = 0x22" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x22")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x50:\n    if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x50") (: ":") (if_statement "if ((int)(param_3 << 0xc) < 0) {\n      iVar2 = 2;\n    }\n    else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((int)(param_3 << 0xc) < 0)" (( "(") (binary_expression "(int)(param_3 << 0xc) < 0" (cast_expression "(int)(param_3 << 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 << 0xc)" (( "(") (binary_expression "param_3 << 0xc" (identifier "param_3") (<< "<<") (number_literal "0xc")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      param_1[4] = 0x20;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x20;" (assignment_expression "param_1[4] = 0x20" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x54:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x54") (: ":") (if_statement "if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x1200) == 0x200)" (( "(") (binary_expression "(param_3 & 0x1200) == 0x200" (parenthesized_expression "(param_3 & 0x1200)" (( "(") (binary_expression "param_3 & 0x1200" (identifier "param_3") (& "&") (number_literal "0x1200")) () ")")) (== "==") (number_literal "0x200")) () ")")) (compound_statement "{\n      param_1[4] = 0x17;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x17;" (assignment_expression "param_1[4] = 0x17" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x55:\n    if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }\n    break;" (case "case") (number_literal "0x55") (: ":") (if_statement "if ((param_3 & 0x8400) == 0) {\n      param_1[4] = 10;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x8400) == 0)" (( "(") (binary_expression "(param_3 & 0x8400) == 0" (parenthesized_expression "(param_3 & 0x8400)" (( "(") (binary_expression "param_3 & 0x8400" (identifier "param_3") (& "&") (number_literal "0x8400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[4] = 10;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 10;" (assignment_expression "param_1[4] = 10" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "10")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x56:\n    if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (case "case") (number_literal "0x56") (: ":") (if_statement "if ((param_3 & 0x1200) == 0x200) {\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }\n    else {\n      iVar2 = 2;\n    }" (if "if") (parenthesized_expression "((param_3 & 0x1200) == 0x200)" (( "(") (binary_expression "(param_3 & 0x1200) == 0x200" (parenthesized_expression "(param_3 & 0x1200)" (( "(") (binary_expression "param_3 & 0x1200" (identifier "param_3") (& "&") (number_literal "0x1200")) () ")")) (== "==") (number_literal "0x200")) () ")")) (compound_statement "{\n      param_1[4] = 0x18;\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "param_1[4] = 0x18;" (assignment_expression "param_1[4] = 0x18" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x18")) (; ";")) (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = 2;\n    }" (else "else") (compound_statement "{\n      iVar2 = 2;\n    }" ({ "{") (expression_statement "iVar2 = 2;" (assignment_expression "iVar2 = 2" (identifier "iVar2") (= "=") (number_literal "2")) (; ";")) (} "}"))))) (} "}"))) (labeled_statement "LAB_0048ce98:\n  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }" (statement_identifier "LAB_0048ce98") (: ":") (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_004bf38c)" (( "(") (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_004bf38c" (identifier "local_1c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_004bf38c")))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_004bf34c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_0048cd50();" (assignment_expression "iVar2 = FUN_0048cd50()" (identifier "iVar2") (= "=") (call_expression "FUN_0048cd50()" (identifier "FUN_0048cd50") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = piVar6[10];" (assignment_expression "iVar3 = piVar6[10]" (identifier "iVar3") (= "=") (subscript_expression "piVar6[10]" (identifier "piVar6") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "piVar6[10] = iVar3 + iVar2;" (assignment_expression "piVar6[10] = iVar3 + iVar2" (subscript_expression "piVar6[10]" (identifier "piVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "iVar3 + iVar2" (identifier "iVar3") (+ "+") (identifier "iVar2"))) (; ";")) (return_statement "return iVar3 + iVar2;" (return "return") (binary_expression "iVar3 + iVar2" (identifier "iVar3") (+ "+") (identifier "iVar2")) (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

int function_1(type_1 *token,type_2 *input,type_3 var_6)

{
  type_4 var_9;
  type_5 **ppuVar2;
  type_1 *var_10;
  type_6 var_5;
  int var_4;
  int *piVar5;
  type_7 var_2;
  type_8 *puVar7;
  type_2 *var_8;
  type_2 *var_7;
  type_7 var_1;
  type_1 next;
  
  var_10 = *(type_1 **)PTR___stack_chk_guard_004bf38c;
  var_8 = input;
  var_7 = (type_2 *)var_6;
  if (input->stop <= input->cur_idx) {
    token->field_0x4 = 2;
    var_4 = 0;
    goto LAB_0048ce98;
  }
  var_1 = (type_7)input->mbs[input->cur_idx];
  (token->opr).c = input->mbs[input->cur_idx];
  *(type_7 *)&token->field_0x4 = *(type_7 *)&token->field_0x4 & 0xfffff9ff;
  if (((1 < input->mb_cur_max) && (input->cur_idx != input->valid_len)) &&
     (input->wcs[input->cur_idx] == 0xffffffff)) {
    token->field_0x4 = 1;
    *(type_7 *)&token->field_0x4 = *(type_7 *)&token->field_0x4 & 0xfffffbff | 0x400;
    var_4 = 1;
    goto LAB_0048ce98;
  }
  if (var_1 != 0x5c) {
    token->field_0x4 = 1;
    if (input->mb_cur_max < 2) {
      piVar5 = (int *)(*(type_9 *)PTR___ctype_b_loc_004bf168)();
      var_2 = 1;
      if ((*(type_10 *)(*piVar5 + var_1 * 2) & 0x800) == 0) {
        var_2 = (type_7)(var_1 == 0x5f);
      }
      *(type_7 *)&token->field_0x4 = *(type_7 *)&token->field_0x4 & 0xfffffdff | var_2 << 9;
    }
    else {
      var_8 = (type_2 *)input->cur_idx;
      var_5 = var_3(input,(type_11)var_8);
      var_4 = (*(type_9 *)PTR_iswalnum_004bf25c)(var_5);
      *(type_7 *)&token->field_0x4 =
           *(type_7 *)&token->field_0x4 & 0xfffffdff | (type_7)(var_4 != 0 || var_5 == 0x5f) << 9;
    }
    switch(var_1 - 10 & 0xff) {
    case 0:
      if ((var_6 & 0x800) == 0) {
        var_4 = 1;
      }
      else {
        token->field_0x4 = 10;
        var_4 = 1;
      }
      break;
    default:
      var_4 = 1;
      break;
    case 0x1a:
      if (((var_6 & 8) == 0) &&
         (var_4 = input->cur_idx + 1, var_7 = (type_2 *)var_6, var_4 != input->len)) {
        input->cur_idx = var_4;
        var_8 = input;
        function_1(&next,input,var_6);
        input->cur_idx = input->cur_idx + -1;
        var_7 = (type_2 *)var_6;
        if (1 < (type_4)(next._4_1_ - 9)) {
          var_4 = 1;
          break;
        }
      }
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x20;
      var_4 = 1;
      break;
    case 0x1e:
      if ((var_6 & 0x2000) == 0) {
        var_4 = 1;
      }
      else {
        token->field_0x4 = 8;
        var_4 = 1;
      }
      break;
    case 0x1f:
      if ((var_6 & 0x2000) == 0) {
        var_4 = 1;
      }
      else {
        token->field_0x4 = 9;
        var_4 = 1;
      }
      break;
    case 0x20:
      token->field_0x4 = 0xb;
      var_4 = 1;
      break;
    case 0x21:
      if ((var_6 & 0x402) == 0) {
        token->field_0x4 = 0x12;
        var_4 = 1;
      }
      else {
        var_4 = 1;
      }
      break;
    case 0x24:
      token->field_0x4 = 5;
      var_4 = 1;
      break;
    case 0x35:
      if ((var_6 & 0x402) == 0) {
        token->field_0x4 = 0x13;
        var_4 = 1;
      }
      else {
        var_4 = 1;
      }
      break;
    case 0x51:
      token->field_0x4 = 0x14;
      var_4 = 1;
      break;
    case 0x54:
      if ((var_6 & 0x800008) == 0) {
        if (input->cur_idx != 0) {
          if ((var_6 & 0x800) == 0) {
            var_4 = 1;
            break;
          }
          if (input->mbs[input->cur_idx + -1] != '\n') {
            var_4 = 1;
            break;
          }
        }
      }
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x10;
      var_4 = 1;
      break;
    case 0x71:
      if ((var_6 & 0x1200) == 0x1200) {
        token->field_0x4 = 0x17;
        var_4 = 1;
      }
      else {
        var_4 = 1;
      }
      break;
    case 0x72:
      if ((var_6 & 0x8400) == 0x8000) {
        token->field_0x4 = 10;
        var_4 = 1;
      }
      else {
        var_4 = 1;
      }
      break;
    case 0x73:
      if ((var_6 & 0x1200) == 0x1200) {
        token->field_0x4 = 0x18;
        var_4 = 1;
      }
      else {
        var_4 = 1;
      }
    }
    goto LAB_0048ce98;
  }
  var_8 = (type_2 *)input->cur_idx;
  ppuVar2 = &var_8->raw_mbs;
  puVar7 = (type_8 *)((int)ppuVar2 + 1);
  if (input->len <= (int)puVar7) {
    token->field_0x4 = 0x24;
    var_4 = 1;
    goto LAB_0048ce98;
  }
  if (input->mbs_allocated == '\0') {
    var_1 = (type_7)input->mbs[(int)puVar7];
  }
  else {
    if (1 < input->mb_cur_max) {
      var_7 = (type_2 *)0xffffffff;
      var_8 = (type_2 *)((int)&var_8->raw_mbs + 2);
      if ((input->wcs[(int)puVar7] == 0xffffffff) ||
         ((var_7 = (type_2 *)input->valid_len, var_7 != var_8 &&
          (input->wcs[(int)((int)ppuVar2 + 2)] == 0xffffffff)))) {
        var_1 = (type_7)input->mbs[(int)puVar7];
        goto LAB_0048cf14;
      }
    }
    if (input->offsets_needed == '\0') {
      var_1 = (type_7)(type_4)puVar7[(int)(input->raw_mbs + input->raw_mbs_idx)];
    }
    else {
      var_8 = (type_2 *)input->offsets[(int)puVar7];
      var_9 = *(type_4 *)((int)&var_8->raw_mbs + (int)(input->raw_mbs + input->raw_mbs_idx));
      var_1 = (type_7)var_9;
      if ((var_9 & 0x80) != 0) {
        var_1 = (type_7)input->mbs[(int)puVar7];
      }
    }
  }
LAB_0048cf14:
  (token->opr).c = (type_5)var_1;
  token->field_0x4 = 1;
  if (input->mb_cur_max < 2) {
    piVar5 = (int *)(*(type_9 *)PTR___ctype_b_loc_004bf168)();
    *(type_7 *)&token->field_0x4 =
         *(type_7 *)&token->field_0x4 & 0xfffffdff |
         (type_7)((*(type_10 *)(*piVar5 + var_1 * 2) & 0x800) != 0 || var_1 == 0x5f) << 9;
  }
  else {
    var_8 = (type_2 *)(input->cur_idx + 1);
    var_5 = var_3(input,(type_11)var_8);
    var_4 = (*(type_9 *)PTR_iswalnum_004bf25c)(var_5);
    *(type_7 *)&token->field_0x4 =
         *(type_7 *)&token->field_0x4 & 0xfffffdff | (type_7)(var_4 != 0 || var_5 == 0x5f) << 9;
  }
  switch(var_1 - 0x27 & 0xff) {
  case 0:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x80;
      var_4 = 2;
    }
    break;
  case 1:
    if ((var_6 & 0x2000) == 0) {
      token->field_0x4 = 8;
      var_4 = 2;
    }
    else {
      var_4 = 2;
    }
    break;
  case 2:
    if ((var_6 & 0x2000) == 0) {
      token->field_0x4 = 9;
      var_4 = 2;
    }
    else {
      var_4 = 2;
    }
    break;
  default:
    var_4 = 2;
    break;
  case 4:
    var_4 = 2;
    if ((var_6 & 0x402) == 2) {
      token->field_0x4 = 0x12;
      var_4 = 2;
    }
    break;
  case 10:
  case 0xb:
  case 0xc:
  case 0xd:
  case 0xe:
  case 0xf:
  case 0x10:
  case 0x11:
  case 0x12:
    if ((var_6 & 0x4000) == 0) {
      token->field_0x4 = 4;
      (token->opr).sbcset = (re_bitset_ptr_t)(var_1 - 0x31);
      var_4 = 2;
    }
    else {
      var_4 = 2;
    }
    break;
  case 0x15:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 6;
      var_4 = 2;
    }
    break;
  case 0x17:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 9;
      var_4 = 2;
    }
    break;
  case 0x18:
    var_4 = 2;
    if ((var_6 & 0x402) == 2) {
      token->field_0x4 = 0x13;
      var_4 = 2;
    }
    break;
  case 0x1b:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x200;
      var_4 = 2;
    }
    break;
  case 0x2c:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0x23;
      var_4 = 2;
    }
    break;
  case 0x30:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0x21;
      var_4 = 2;
    }
    break;
  case 0x39:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x40;
      var_4 = 2;
    }
    break;
  case 0x3b:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0xc;
      (token->opr).idx = 0x100;
      var_4 = 2;
    }
    break;
  case 0x4c:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0x22;
      var_4 = 2;
    }
    break;
  case 0x50:
    if ((int)(var_6 << 0xc) < 0) {
      var_4 = 2;
    }
    else {
      token->field_0x4 = 0x20;
      var_4 = 2;
    }
    break;
  case 0x54:
    if ((var_6 & 0x1200) == 0x200) {
      token->field_0x4 = 0x17;
      var_4 = 2;
    }
    else {
      var_4 = 2;
    }
    break;
  case 0x55:
    if ((var_6 & 0x8400) == 0) {
      token->field_0x4 = 10;
      var_4 = 2;
    }
    else {
      var_4 = 2;
    }
    break;
  case 0x56:
    if ((var_6 & 0x1200) == 0x200) {
      token->field_0x4 = 0x18;
      var_4 = 2;
    }
    else {
      var_4 = 2;
    }
  }
LAB_0048ce98:
  if (var_10 == *(type_1 **)PTR___stack_chk_guard_004bf38c) {
    return var_4;
  }
  (*(type_9 *)PTR___stack_chk_fail_004bf34c)();
  var_4 = function_1(var_10,var_8,(type_3)var_7);
  var_4 = var_8->cur_idx + var_4;
  var_8->cur_idx = var_4;
  return var_4;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (switch_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) body: (compound_statement (case_statement value: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) (goto_statement label: (statement_identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (switch_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) body: (compound_statement (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (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)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))) (break_statement)) (case_statement value: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (return_statement (binary_expression left: (identifier) right: (identifier))))))

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

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  uint uVar7;
  undefined1 auStack_24 [4];
  char local_20;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_004bf38c;
  piVar6 = param_2;
  if (param_2[0xe] <= param_2[10]) {
    param_1[4] = 2;
    iVar2 = 0;
    goto LAB_0048ce98;
  }
  bVar1 = *(byte *)(param_2[1] + param_2[10]);
  uVar7 = (uint)bVar1;
  *param_1 = bVar1;
  *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffff9ff;
  if (((1 < param_2[0x14]) && (param_2[10] != param_2[7])) &&
     (*(int *)(param_2[2] + param_2[10] * 4) == -1)) {
    param_1[4] = 1;
    *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffbff | 0x400;
    iVar2 = 1;
    goto LAB_0048ce98;
  }
  if (uVar7 != 0x5c) {
    param_1[4] = 1;
    if (param_2[0x14] < 2) {
      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);
      uVar5 = 1;
      if ((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) == 0) {
        uVar5 = (uint)(uVar7 == 0x5f);
      }
      *(uint *)(param_1 + 4) = *(uint *)(param_1 + 4) & 0xfffffdff | uVar5 << 9;
    }
    else {
      piVar6 = (int *)param_2[10];
      iVar2 = FUN_00489d48();
      iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);
      *(uint *)(param_1 + 4) =
           *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;
    }
    switch(uVar7 - 10 & 0xff) {
    case 0:
      if ((param_3 & 0x800) == 0) {
        iVar2 = 1;
      }
      else {
        param_1[4] = 10;
        iVar2 = 1;
      }
      break;
    default:
      iVar2 = 1;
      break;
    case 0x1a:
      if (((param_3 & 8) == 0) && (param_2[10] + 1 != param_2[0xc])) {
        param_2[10] = param_2[10] + 1;
        piVar6 = param_2;
        MASKED(auStack_24,param_2,param_3);
        param_2[10] = param_2[10] + -1;
        if (1 < (byte)(local_20 - 9U)) {
          iVar2 = 1;
          break;
        }
      }
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x20;
      iVar2 = 1;
      break;
    case 0x1e:
      if ((param_3 & 0x2000) == 0) {
        iVar2 = 1;
      }
      else {
        param_1[4] = 8;
        iVar2 = 1;
      }
      break;
    case 0x1f:
      if ((param_3 & 0x2000) == 0) {
        iVar2 = 1;
      }
      else {
        param_1[4] = 9;
        iVar2 = 1;
      }
      break;
    case 0x20:
      param_1[4] = 0xb;
      iVar2 = 1;
      break;
    case 0x21:
      if ((param_3 & 0x402) == 0) {
        param_1[4] = 0x12;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x24:
      param_1[4] = 5;
      iVar2 = 1;
      break;
    case 0x35:
      if ((param_3 & 0x402) == 0) {
        param_1[4] = 0x13;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x51:
      param_1[4] = 0x14;
      iVar2 = 1;
      break;
    case 0x54:
      if ((param_3 & 0x800008) == 0) {
        if (param_2[10] != 0) {
          if ((param_3 & 0x800) == 0) {
            iVar2 = 1;
            break;
          }
          if (*(char *)(param_2[1] + param_2[10] + -1) != '\n') {
            iVar2 = 1;
            break;
          }
        }
      }
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x10;
      iVar2 = 1;
      break;
    case 0x71:
      if ((param_3 & 0x1200) == 0x1200) {
        param_1[4] = 0x17;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x72:
      if ((param_3 & 0x8400) == 0x8000) {
        param_1[4] = 10;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
      break;
    case 0x73:
      if ((param_3 & 0x1200) == 0x1200) {
        param_1[4] = 0x18;
        iVar2 = 1;
      }
      else {
        iVar2 = 1;
      }
    }
    goto LAB_0048ce98;
  }
  piVar6 = (int *)param_2[10];
  iVar2 = (int)piVar6 + 1;
  if (param_2[0xc] <= iVar2) {
    param_1[4] = 0x24;
    iVar2 = 1;
    goto LAB_0048ce98;
  }
  if (*(char *)((int)param_2 + 0x4b) == '\0') {
    uVar7 = (uint)*(byte *)(param_2[1] + iVar2);
  }
  else {
    if (1 < param_2[0x14]) {
      piVar6 = (int *)((int)piVar6 + 2);
      if ((*(int *)(param_2[2] + iVar2 * 4) == -1) ||
         (((int *)param_2[7] != piVar6 && (*(int *)(param_2[2] + iVar2 * 4 + 4) == -1)))) {
        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);
        goto LAB_0048cf14;
      }
    }
    if (*(char *)(param_2 + 0x13) == '\0') {
      uVar7 = (uint)*(byte *)(*param_2 + iVar2 + param_2[6]);
    }
    else {
      piVar6 = *(int **)(param_2[3] + iVar2 * 4);
      bVar1 = *(byte *)((int)piVar6 + param_2[6] + *param_2);
      uVar7 = (uint)bVar1;
      if ((bVar1 & 0x80) != 0) {
        uVar7 = (uint)*(byte *)(param_2[1] + iVar2);
      }
    }
  }
LAB_0048cf14:
  *param_1 = (byte)uVar7;
  param_1[4] = 1;
  if (param_2[0x14] < 2) {
    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_004bf168)(param_2);
    *(uint *)(param_1 + 4) =
         *(uint *)(param_1 + 4) & 0xfffffdff |
         (uint)((*(ushort *)(*piVar4 + uVar7 * 2) & 0x800) != 0 || uVar7 == 0x5f) << 9;
  }
  else {
    piVar6 = (int *)(param_2[10] + 1);
    iVar2 = FUN_00489d48();
    iVar3 = (*(code *)PTR_iswalnum_004bf25c)(iVar2);
    *(uint *)(param_1 + 4) =
         *(uint *)(param_1 + 4) & 0xfffffdff | (uint)(iVar3 != 0 || iVar2 == 0x5f) << 9;
  }
  switch(uVar7 - 0x27 & 0xff) {
  case 0:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x80;
      iVar2 = 2;
    }
    break;
  case 1:
    if ((param_3 & 0x2000) == 0) {
      param_1[4] = 8;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 2:
    if ((param_3 & 0x2000) == 0) {
      param_1[4] = 9;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  default:
    iVar2 = 2;
    break;
  case 4:
    iVar2 = 2;
    if ((param_3 & 0x402) == 2) {
      param_1[4] = 0x12;
      iVar2 = 2;
    }
    break;
  case 10:
  case 0xb:
  case 0xc:
  case 0xd:
  case 0xe:
  case 0xf:
  case 0x10:
  case 0x11:
  case 0x12:
    if ((param_3 & 0x4000) == 0) {
      param_1[4] = 4;
      *(uint *)param_1 = uVar7 - 0x31;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 0x15:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 6;
      iVar2 = 2;
    }
    break;
  case 0x17:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 9;
      iVar2 = 2;
    }
    break;
  case 0x18:
    iVar2 = 2;
    if ((param_3 & 0x402) == 2) {
      param_1[4] = 0x13;
      iVar2 = 2;
    }
    break;
  case 0x1b:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 2;
      param_1[3] = 0;
      iVar2 = 2;
    }
    break;
  case 0x2c:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x23;
      iVar2 = 2;
    }
    break;
  case 0x30:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x21;
      iVar2 = 2;
    }
    break;
  case 0x39:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 0;
      param_1[3] = 0x40;
      iVar2 = 2;
    }
    break;
  case 0x3b:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0xc;
      param_1[0] = 0;
      param_1[1] = 0;
      param_1[2] = 1;
      param_1[3] = 0;
      iVar2 = 2;
    }
    break;
  case 0x4c:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x22;
      iVar2 = 2;
    }
    break;
  case 0x50:
    if ((int)(param_3 << 0xc) < 0) {
      iVar2 = 2;
    }
    else {
      param_1[4] = 0x20;
      iVar2 = 2;
    }
    break;
  case 0x54:
    if ((param_3 & 0x1200) == 0x200) {
      param_1[4] = 0x17;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 0x55:
    if ((param_3 & 0x8400) == 0) {
      param_1[4] = 10;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
    break;
  case 0x56:
    if ((param_3 & 0x1200) == 0x200) {
      param_1[4] = 0x18;
      iVar2 = 2;
    }
    else {
      iVar2 = 2;
    }
  }
LAB_0048ce98:
  if (local_1c == *(int *)PTR___stack_chk_guard_004bf38c) {
    return iVar2;
  }
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  iVar2 = MASKED();
  iVar3 = piVar6[10];
  piVar6[10] = iVar3 + iVar2;
  return iVar3 + iVar2;
}

