
size_t GetNextToken(char *start,char **end,size_t extent,char *token)

{
  undefined *puVar1;
  undefined *puVar2;
  int *piVar3;
  uint uVar4;
  int iVar5;
  undefined1 *puVar6;
  size_t sVar7;
  int iVar8;
  byte bVar9;
  byte *pbVar10;
  ushort uVar11;
  uint uVar12;
  byte bVar13;
  byte *pbVar14;
  byte *pbVar15;
  int iVar16;
  uint uVar17;
  char *q;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_2c = *(int *)PTR___stack_chk_guard_003a9230;
  if (start == (char *)0x0) {
    sVar7 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,
                       PTR_s_courses_003a88ec + -0x29a0);
    return sVar7;
  }
  if (token == (char *)0x0) goto LAB_00039600;
  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();
  pbVar15 = (byte *)start;
  while( true ) {
    bVar13 = *pbVar15;
    iVar16 = (uint)bVar13 * 2;
    pbVar10 = (byte *)token;
    if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;
    if (bVar13 == 0) goto LAB_0003929c;
    pbVar15 = pbVar15 + 1;
  }
  if (bVar13 == 0x27) {
LAB_000391e4:
    if (bVar13 == 0x27) {
LAB_0003942c:
      bVar13 = 0x27;
    }
    else if ('\'' < (char)bVar13) {
      if (bVar13 == 0x60) goto LAB_0003942c;
      if (bVar13 == 0x7b) {
        bVar13 = 0x7d;
      }
    }
    bVar9 = pbVar15[1];
    pbVar15 = pbVar15 + 1;
    if (bVar9 == 0) {
      iVar16 = 0;
    }
    else {
      iVar16 = 0;
      do {
        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {
          pbVar15 = pbVar15 + 1;
        }
        else if (bVar13 == bVar9) {
          pbVar14 = pbVar15 + 1;
          pbVar15 = pbVar15 + 1;
          iVar16 = (uint)*pbVar14 << 1;
          goto LAB_0003929c;
        }
        if (iVar16 < (int)(extent - 1)) {
          iVar16 = iVar16 + 1;
          *pbVar10 = *pbVar15;
          pbVar10 = (byte *)(token + iVar16);
        }
        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;
        bVar9 = pbVar15[1];
        pbVar15 = pbVar15 + 1;
      } while (bVar9 != 0);
      iVar16 = 0;
    }
  }
  else {
    if ((char)bVar13 < '(') {
      if (bVar13 == 0) goto LAB_0003929c;
      if (bVar13 != 0x22) goto LAB_00039140;
      goto LAB_000391e4;
    }
    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;
    if (bVar13 == 0x2f) {
      bVar13 = pbVar15[1];
      if ((int)(extent - 1) < 1) {
        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;
      }
      else {
        *token = '/';
        pbVar10 = (byte *)(token + 1);
        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {
LAB_00039124:
          iVar16 = (uint)bVar13 << 1;
          pbVar15 = pbVar15 + 1;
          goto LAB_0003929c;
        }
        if (extent - 1 != 1) {
          token[1] = bVar13;
          pbVar10 = (byte *)(token + 2);
        }
      }
      iVar16 = (uint)pbVar15[2] << 1;
      pbVar15 = pbVar15 + 2;
    }
    else {
LAB_00039140:
      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);
      bVar13 = *pbVar15;
      uVar4 = (uint)(char)bVar13;
      if ((byte *)q == pbVar15) {
        uVar12 = (uint)bVar13;
        iVar16 = uVar12 * 2;
        if (uVar4 != 0) {
          iVar5 = *piVar3;
          uVar11 = *(ushort *)(iVar5 + iVar16);
          if (((uVar11 & 4) != 0) ||
             (((uVar12 - 0x23 & 0xff) < 0x1a &&
              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;
LAB_000393f8:
          if (0 < (int)(extent - 1)) {
            *token = bVar13;
            pbVar10 = (byte *)(token + 1);
          }
          pbVar14 = pbVar15 + 1;
          pbVar15 = pbVar15 + 1;
          iVar16 = (uint)*pbVar14 << 1;
        }
      }
      else if (uVar4 == 0x2c) {
        iVar5 = *piVar3;
        uVar11 = *(ushort *)(iVar5 + 0x58);
        uVar12 = 0x2c;
        if ((uVar11 & 4) == 0) goto LAB_000393f8;
LAB_0003947c:
        iVar8 = 0;
        uVar17 = extent - 1;
        while (((((uVar11 & 0x20) == 0 &&
                 ((0x11 < (uVar12 - 0x2c & 0xff) ||
                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||
                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {
          if (iVar8 < (int)uVar17) {
            iVar8 = iVar8 + 1;
            *pbVar10 = (byte)uVar4;
            pbVar10 = (byte *)(token + iVar8);
          }
          if (uVar4 == 0x3e) goto LAB_00039418;
          uVar12 = (int)pbVar15 - (int)start;
          if (uVar4 == 0x28) {
            bVar13 = pbVar15[1];
            pbVar15 = pbVar15 + 1;
            if (bVar13 == 0) {
              iVar16 = 0;
              goto LAB_0003929c;
            }
            while( true ) {
              if (iVar8 < (int)uVar17) {
                iVar8 = iVar8 + 1;
                *pbVar10 = bVar13;
                pbVar10 = (byte *)(token + iVar8);
              }
              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))
              break;
              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;
              pbVar15 = pbVar15 + 1;
              bVar13 = *pbVar15;
              iVar16 = 0;
              if (bVar13 == 0) goto LAB_0003929c;
            }
          }
          if (uVar17 <= uVar12) goto LAB_00039418;
          pbVar14 = pbVar15 + 1;
          uVar4 = (uint)(char)*pbVar14;
          pbVar15 = pbVar15 + 1;
          uVar12 = (uint)*pbVar14;
          iVar16 = uVar12 * 2;
          if (uVar4 == 0) goto LAB_0003929c;
          uVar11 = *(ushort *)(iVar5 + iVar16);
        }
        iVar16 = (uint)*pbVar15 << 1;
      }
      else if (pbVar15 < q) {
        iVar5 = 0;
        do {
          if (iVar5 < (int)(extent - 1)) {
            iVar5 = iVar5 + 1;
            *pbVar10 = (byte)uVar4;
            pbVar10 = (byte *)(token + iVar5);
          }
          pbVar14 = pbVar15 + 1;
          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {
            uVar4 = (uint)(char)*pbVar15;
            goto LAB_000391cc;
          }
          uVar4 = (uint)(char)*pbVar14;
          pbVar15 = (byte *)q;
          if ((byte *)q == pbVar14) goto LAB_000391cc;
          iVar16 = 0x58;
          pbVar15 = pbVar14;
        } while (uVar4 != 0x2c);
      }
      else {
        iVar5 = 0;
LAB_000391cc:
        if (uVar4 == 0x25) {
          if (iVar5 < (int)(extent - 1)) {
            *pbVar10 = 0x25;
            pbVar10 = (byte *)(token + iVar5 + 1);
          }
          iVar16 = (uint)pbVar15[1] << 1;
          pbVar15 = pbVar15 + 1;
        }
        else {
          iVar16 = (uVar4 & 0xff) << 1;
        }
      }
    }
  }
LAB_0003929c:
  puVar1 = PTR_LocaleNCompare_003a961c;
  *pbVar10 = 0;
  iVar5 = (*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5);
  if ((iVar5 == 0) &&
     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),
     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {
    *puVar6 = 0;
    (*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));
  }
  uVar11 = *(ushort *)(*piVar3 + iVar16);
  while ((uVar11 & 0x20) != 0) {
    pbVar15 = pbVar15 + 1;
    uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);
  }
  if (end != (char **)0x0) {
    *end = (char *)pbVar15;
  }
  if (local_2c == *(int *)puVar2) {
    return (size_t)(pbVar15 + (1 - (int)start));
  }
  (*(code *)PTR___stack_chk_fail_003a9064)();
LAB_00039600:
  sVar7 = (*(code *)PTR___assert_fail_003a9608)
                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,
                     PTR_s_courses_003a88ec + -0x29a0);
  return sVar7;
LAB_00039418:
  iVar16 = (uint)*pbVar15 << 1;
  goto LAB_0003929c;
}



byte * GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)

{
  undefined *puVar1;
  undefined *puVar2;
  int *piVar3;
  uint uVar4;
  int iVar5;
  undefined1 *puVar6;
  int iVar7;
  byte bVar8;
  byte *pbVar9;
  ushort uVar10;
  uint uVar11;
  byte bVar12;
  byte *pbVar13;
  byte *pbVar14;
  int iVar15;
  uint uVar16;
  byte *local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_2c = *(int *)PTR___stack_chk_guard_003a9230;
  if (param_1 == (byte *)0x0) {
    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)
                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,
                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);
    return pbVar14;
  }
  if (param_4 == (byte *)0x0) goto LAB_00039600;
  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();
  pbVar14 = param_1;
  while( true ) {
    bVar12 = *pbVar14;
    iVar15 = (uint)bVar12 * 2;
    pbVar9 = param_4;
    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;
    if (bVar12 == 0) goto LAB_0003929c;
    pbVar14 = pbVar14 + 1;
  }
  if (bVar12 == 0x27) {
LAB_000391e4:
    if (bVar12 == 0x27) {
LAB_0003942c:
      bVar12 = 0x27;
    }
    else if ('\'' < (char)bVar12) {
      if (bVar12 == 0x60) goto LAB_0003942c;
      if (bVar12 == 0x7b) {
        bVar12 = 0x7d;
      }
    }
    bVar8 = pbVar14[1];
    pbVar14 = pbVar14 + 1;
    if (bVar8 == 0) {
      iVar15 = 0;
    }
    else {
      iVar15 = 0;
      do {
        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {
          pbVar14 = pbVar14 + 1;
        }
        else if (bVar12 == bVar8) {
          pbVar13 = pbVar14 + 1;
          pbVar14 = pbVar14 + 1;
          iVar15 = (uint)*pbVar13 << 1;
          goto LAB_0003929c;
        }
        if (iVar15 < (int)(param_3 - 1U)) {
          iVar15 = iVar15 + 1;
          *pbVar9 = *pbVar14;
          pbVar9 = param_4 + iVar15;
        }
        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;
        bVar8 = pbVar14[1];
        pbVar14 = pbVar14 + 1;
      } while (bVar8 != 0);
      iVar15 = 0;
    }
  }
  else {
    if ((char)bVar12 < '(') {
      if (bVar12 == 0) goto LAB_0003929c;
      if (bVar12 != 0x22) goto LAB_00039140;
      goto LAB_000391e4;
    }
    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;
    if (bVar12 == 0x2f) {
      bVar12 = pbVar14[1];
      if (param_3 + -1 < 1) {
        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;
      }
      else {
        *param_4 = 0x2f;
        pbVar9 = param_4 + 1;
        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {
LAB_00039124:
          iVar15 = (uint)bVar12 << 1;
          pbVar14 = pbVar14 + 1;
          goto LAB_0003929c;
        }
        if (param_3 + -1 != 1) {
          param_4[1] = bVar12;
          pbVar9 = param_4 + 2;
        }
      }
      iVar15 = (uint)pbVar14[2] << 1;
      pbVar14 = pbVar14 + 2;
    }
    else {
LAB_00039140:
      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);
      bVar12 = *pbVar14;
      uVar4 = (uint)(char)bVar12;
      if (local_30 == pbVar14) {
        uVar11 = (uint)bVar12;
        iVar15 = uVar11 * 2;
        if (uVar4 != 0) {
          iVar5 = *piVar3;
          uVar10 = *(ushort *)(iVar5 + iVar15);
          if (((uVar10 & 4) != 0) ||
             (((uVar11 - 0x23 & 0xff) < 0x1a &&
              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;
LAB_000393f8:
          if (0 < param_3 + -1) {
            *param_4 = bVar12;
            pbVar9 = param_4 + 1;
          }
          pbVar13 = pbVar14 + 1;
          pbVar14 = pbVar14 + 1;
          iVar15 = (uint)*pbVar13 << 1;
        }
      }
      else if (uVar4 == 0x2c) {
        iVar5 = *piVar3;
        uVar10 = *(ushort *)(iVar5 + 0x58);
        uVar11 = 0x2c;
        if ((uVar10 & 4) == 0) goto LAB_000393f8;
LAB_0003947c:
        iVar7 = 0;
        uVar16 = param_3 - 1;
        while (((((uVar10 & 0x20) == 0 &&
                 ((0x11 < (uVar11 - 0x2c & 0xff) ||
                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||
                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {
          if (iVar7 < (int)uVar16) {
            iVar7 = iVar7 + 1;
            *pbVar9 = (byte)uVar4;
            pbVar9 = param_4 + iVar7;
          }
          if (uVar4 == 0x3e) goto LAB_00039418;
          uVar11 = (int)pbVar14 - (int)param_1;
          if (uVar4 == 0x28) {
            bVar12 = pbVar14[1];
            pbVar14 = pbVar14 + 1;
            if (bVar12 == 0) {
              iVar15 = 0;
              goto LAB_0003929c;
            }
            while( true ) {
              if (iVar7 < (int)uVar16) {
                iVar7 = iVar7 + 1;
                *pbVar9 = bVar12;
                pbVar9 = param_4 + iVar7;
              }
              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))
              break;
              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;
              pbVar14 = pbVar14 + 1;
              bVar12 = *pbVar14;
              iVar15 = 0;
              if (bVar12 == 0) goto LAB_0003929c;
            }
          }
          if (uVar16 <= uVar11) goto LAB_00039418;
          pbVar13 = pbVar14 + 1;
          uVar4 = (uint)(char)*pbVar13;
          pbVar14 = pbVar14 + 1;
          uVar11 = (uint)*pbVar13;
          iVar15 = uVar11 * 2;
          if (uVar4 == 0) goto LAB_0003929c;
          uVar10 = *(ushort *)(iVar5 + iVar15);
        }
        iVar15 = (uint)*pbVar14 << 1;
      }
      else if (pbVar14 < local_30) {
        iVar5 = 0;
        do {
          if (iVar5 < (int)(param_3 - 1U)) {
            iVar5 = iVar5 + 1;
            *pbVar9 = (byte)uVar4;
            pbVar9 = param_4 + iVar5;
          }
          pbVar13 = pbVar14 + 1;
          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {
            uVar4 = (uint)(char)*pbVar14;
            goto LAB_000391cc;
          }
          uVar4 = (uint)(char)*pbVar13;
          pbVar14 = local_30;
          if (local_30 == pbVar13) goto LAB_000391cc;
          iVar15 = 0x58;
          pbVar14 = pbVar13;
        } while (uVar4 != 0x2c);
      }
      else {
        iVar5 = 0;
LAB_000391cc:
        if (uVar4 == 0x25) {
          if (iVar5 < param_3 + -1) {
            *pbVar9 = 0x25;
            pbVar9 = param_4 + iVar5 + 1;
          }
          iVar15 = (uint)pbVar14[1] << 1;
          pbVar14 = pbVar14 + 1;
        }
        else {
          iVar15 = (uVar4 & 0xff) << 1;
        }
      }
    }
  }
LAB_0003929c:
  puVar1 = PTR_LocaleNCompare_003a961c;
  *pbVar9 = 0;
  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);
  if ((iVar5 == 0) &&
     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),
     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {
    *puVar6 = 0;
    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));
  }
  uVar10 = *(ushort *)(*piVar3 + iVar15);
  while ((uVar10 & 0x20) != 0) {
    pbVar14 = pbVar14 + 1;
    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);
  }
  if (param_2 != (undefined4 *)0x0) {
    *param_2 = pbVar14;
  }
  if (local_2c == *(int *)puVar2) {
    return pbVar14 + (1 - (int)param_1);
  }
  (*(code *)PTR___stack_chk_fail_003a9064)();
LAB_00039600:
  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)
                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,
                               0xbf,PTR_s_courses_003a88ec + -0x29a0);
  return pbVar14;
LAB_00039418:
  iVar15 = (uint)*pbVar14 << 1;
  goto LAB_0003929c;
}


lui gp,0x37
addiu gp,gp,0x7884
addu gp,gp,t9
addiu sp,sp,-0x48
sw s2,0x2c(sp)
lw s2,-0x7680(gp)
sw gp,0x10(sp)
sw ra,0x44(sp)
sw s7,0x40(sp)
sw s6,0x3c(sp)
sw s5,0x38(sp)
sw s4,0x34(sp)
sw s3,0x30(sp)
sw s1,0x28(sp)
sw s0,0x24(sp)
lw v0,0x0(s2)
sw v0,0x1c(sp)
beq a0,zero,0x00039624
_lw t9,-0x72a8(gp)
beq a3,zero,0x00039600
_or s7,a3,zero
lw t9,-0x747c(gp)
or s6,a0,zero
or s3,a1,zero
jalr t9
_or s5,a2,zero
or s0,s6,zero
lw gp,0x10(sp)
or s4,v0,zero
b 0x000390b4
_lw a0,0x0(v0)
beq v1,zero,0x0003929c
_or a1,s7,zero
addiu s0,s0,0x1
lb v1,0x0(s0)
andi s1,v1,0xff
sll s1,s1,0x1
addu v0,a0,s1
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x000390a8
_li v0,0x27
beq v1,v0,0x000391e4
_slti v0,v1,0x28
bne v0,zero,0x00039130
_li v0,0x60
beq v1,v0,0x000391e4
_li v0,0x7b
beq v1,v0,0x000391e4
_li v0,0x2f
bne v1,v0,0x00039140
_lw t9,-0x7148(gp)
addiu s5,s5,-0x1
lb v0,0x1(s0)
blez s5,0x0003937c
_li a0,0x3e
sb v1,0x0(s7)
beq v0,a0,0x00039434
_addiu a1,s7,0x1
beq v0,v1,0x00039438
_li v1,0x1
andi v0,v0,0xff
addiu s0,s0,0x1
b 0x0003929c
_sll s1,v0,0x1
beq v1,zero,0x00039298
_li v0,0x22
beq v1,v0,0x000391e4
_lw t9,-0x7148(gp)
addiu a1,sp,0x18
jalr t9
_or a0,s0,zero
lw t0,0x18(sp)
lw gp,0x10(sp)
beq t0,s0,0x0003939c
_lb v0,0x0(s0)
li v1,0x2c
beq v0,v1,0x00039460
_sltu v1,s0,t0
beq v1,zero,0x000395dc
_nop
addiu a3,s5,-0x1
or a0,zero,zero
li t1,0x2c
b 0x00039194
_or a2,s7,zero
beq t0,s0,0x000391cc
_lb v0,0x0(s0)
beq v0,t1,0x0003929c
_li s1,0x58
slt v1,a0,a3
beq v1,zero,0x000391b0
_or a1,a2,zero
addiu a0,a0,0x1
sb v0,0x0(a2)
addu a2,s7,a0
or a1,a2,zero
subu v0,s0,s6
sltu v0,v0,a3
bne v0,zero,0x00039184
_addiu s0,s0,0x1
addiu s0,s0,-0x1
lb v0,0x0(s0)
or t0,s0,zero
li v1,0x25
beq v0,v1,0x000395a4
_or s0,t0,zero
andi v0,v0,0xff
b 0x0003929c
_sll s1,v0,0x1
li v0,0x27
beq v1,v0,0x0003942c
_slti v0,v1,0x28
bne v0,zero,0x0003920c
_li v0,0x60
beq v1,v0,0x0003942c
_li v0,0x7b
bne v1,v0,0x0003920c
_nop
li v1,0x7d
lb a0,0x1(s0)
beq a0,zero,0x00039294
_addiu s0,s0,0x1
or a3,zero,zero
li t0,0x5c
addiu s5,s5,-0x1
b 0x00039270
_or a2,s7,zero
beq v1,a0,0x0003944c
_nop
slt v0,a3,s5
beq v0,zero,0x00039254
_or a1,a2,zero
lbu v0,0x0(s0)
addiu a3,a3,0x1
sb v0,0x0(a2)
addu a2,s7,a3
or a1,a2,zero
subu v0,s0,s6
sltu v0,v0,s5
beq v0,zero,0x00039418
_nop
lb a0,0x1(s0)
beq a0,zero,0x00039424
_addiu s0,s0,0x1
bne a0,t0,0x0003922c
_nop
lb v0,0x1(s0)
beq v0,v1,0x0003928c
_nop
bne v0,a0,0x0003922c
_nop
b 0x00039234
_addiu s0,s0,0x1
or s1,zero,zero
or a1,s7,zero
lw t9,-0x7294(gp)
li a2,0x5
sb zero,0x0(a1)
or a0,s7,zero
lw a1,-0x7fc4(gp)
jalr t9
_addiu a1,a1,-0x29a8
bne v0,zero,0x000392f8
_lw gp,0x10(sp)
lw t9,-0x7260(gp)
li a1,0x29
jalr t9
_or a0,s7,zero
beq v0,zero,0x000392f8
_lw gp,0x10(sp)
subu a2,v0,s7
lw t9,-0x7960(gp)
addiu a1,s7,0x5
sb zero,0x0(v0)
addiu a2,a2,-0x4
jalr t9
_or a0,s7,zero
lw gp,0x10(sp)
lw v1,0x0(s4)
addu s1,v1,s1
lhu v0,0x0(s1)
andi v0,v0,0x20
beq v0,zero,0x00039330
_nop
addiu s0,s0,0x1
lbu v0,0x0(s0)
sll v0,v0,0x1
addu v0,v1,v0
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x00039310
_nop
beq s3,zero,0x0003933c
_nop
sw s0,0x0(s3)
lw a0,0x1c(sp)
subu v0,s0,s6
lw v1,0x0(s2)
bne a0,v1,0x000395f4
_addiu v0,v0,0x1
lw ra,0x44(sp)
lw s7,0x40(sp)
lw s6,0x3c(sp)
lw s5,0x38(sp)
lw s4,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x48
beq v0,a0,0x0003938c
_or a1,s7,zero
bne v0,v1,0x00039124
_andi v0,v0,0xff
lbu s1,0x2(s0)
addiu s0,s0,0x2
b 0x0003929c
_sll s1,s1,0x1
andi a2,v0,0xff
or a1,s7,zero
beq v0,zero,0x0003929c
_sll s1,a2,0x1
lw t1,0x0(s4)
addu s1,t1,s1
lhu a1,0x0(s1)
andi v1,a1,0x4
bne v1,zero,0x00039478
_lui t5,0x2
addiu v1,a2,-0x23
andi a0,v1,0xff
sltiu v1,a0,0x1a
beq v1,zero,0x000393f8
_addiu s5,s5,-0x1
addiu s5,s5,0x1
lui v1,0x200
addiu v1,v1,0x1001
srlv v1,v1,a0
ext v1,v1,0x0,0x1
bne v1,zero,0x0003947c
_or v1,zero,zero
addiu s5,s5,-0x1
blez s5,0x000395ec
_nop
addiu a1,s7,0x1
sb v0,0x0(s7)
lbu s1,0x1(s0)
addiu s0,s0,0x1
b 0x0003929c
_sll s1,s1,0x1
lbu s1,0x0(s0)
b 0x0003929c
_sll s1,s1,0x1
b 0x0003929c
_or s1,zero,zero
b 0x0003920c
_li v1,0x27
li v1,0x1
beq s5,v1,0x0003938c
_nop
sb v0,0x1(s7)
b 0x0003938c
_addiu a1,s7,0x2
lbu s1,0x1(s0)
or a1,a2,zero
addiu s0,s0,0x1
b 0x0003929c
_sll s1,s1,0x1
lw t1,0x0(s4)
lhu a1,0x58(t1)
andi v1,a1,0x4
beq v1,zero,0x000393f4
_li a2,0x2c
lui t5,0x2
or v1,zero,zero
li t0,0x5c
li t4,0x3c
addiu s5,s5,-0x1
li t2,0x3e
li t3,0x28
li a3,0x29
or t6,s0,zero
or a0,s7,zero
b 0x000394d0
_ori t5,t5,0xc001
sltu v0,v0,s5
beq v0,zero,0x00039418
_nop
lb v0,0x1(t6)
addiu s0,s0,0x1
andi a2,v0,0xff
beq v0,zero,0x0003929c
_sll s1,a2,0x1
addu s1,t1,s1
or t6,s0,zero
lhu a1,0x0(s1)
andi a1,a1,0x20
bne a1,zero,0x000394f8
_addiu a2,a2,-0x2c
andi a2,a2,0xff
sltiu a1,a2,0x12
beq a1,zero,0x00039504
_srlv a2,t5,a2
ext a2,a2,0x0,0x1
beq a2,zero,0x00039504
_nop
lb a1,-0x1(s0)
bne a1,t0,0x000395cc
_nop
blez v1,0x00039514
_slt a2,v1,s5
beq v0,t4,0x000395cc
_nop
beq a2,zero,0x0003952c
_or a1,a0,zero
addiu v1,v1,0x1
sb v0,0x0(a0)
addu a0,s7,v1
or a1,a0,zero
beq v0,t2,0x00039418
_nop
bne v0,t3,0x000394a4
_subu v0,s0,s6
lb a2,0x1(t6)
bne a2,zero,0x0003956c
_addiu s0,s0,0x1
b 0x0003929c
_or s1,zero,zero
sltu v0,v0,s5
beq v0,zero,0x00039418
_nop
addiu s0,s0,0x1
lb a2,0x0(s0)
beq a2,zero,0x0003929c
_or s1,zero,zero
slt v0,v1,s5
beq v0,zero,0x00039588
_or a1,a0,zero
addiu v1,v1,0x1
sb a2,0x0(a0)
addu a0,s7,v1
or a1,a0,zero
bne a2,a3,0x00039550
_subu v0,s0,s6
lb v0,-0x1(s0)
beq v0,t0,0x00039550
_subu v0,s0,s6
b 0x000394a4
_or t6,s0,zero
addiu v1,s5,-0x1
slt v1,a0,v1
beq v1,zero,0x000395bc
_addiu a0,a0,0x1
sb v0,0x0(a1)
addu a1,s7,a0
lbu s1,0x1(t0)
addiu s0,t0,0x1
b 0x0003929c
_sll s1,s1,0x1
lbu s1,0x0(s0)
or a1,a0,zero
b 0x0003929c
_sll s1,s1,0x1
or a0,zero,zero
or a1,s7,zero
b 0x000391cc
_or t0,s0,zero
b 0x00039408
_or a1,s7,zero
lw t9,-0x784c(gp)
jalr t9
_nop
lw a3,-0x7fc4(gp)
li a2,0xbf
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x29a0
addiu a1,a1,-0x2a48
jalr t9
_addiu a0,a0,-0x29c0
lw a3,-0x7fc4(gp)
li a2,0xbe
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
addiu a3,a3,-0x29a0
addiu a1,a1,-0x2a48
jalr t9
_addiu a0,a0,-0x29e0
(translation_unit "byte * GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}\n\n" (function_definition "byte * GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}" type_identifier (pointer_declarator "* GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" * (function_declarator "GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" identifier (parameter_list "(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "ushort uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }" { (expression_statement "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x29e0" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x2a48" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x29a0" identifier + number_literal) ))))) ;) (return_statement "return pbVar14;" return identifier ;) })) (if_statement "if (param_4 == (byte *)0x0) goto LAB_00039600;" if (parenthesized_expression "(param_4 == (byte *)0x0)" ( (binary_expression "param_4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00039600;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_003a9434)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" * (cast_expression "(code *)PTR___ctype_b_loc_003a9434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pbVar14 = param_1;" (assignment_expression "pbVar14 = param_1" identifier = identifier) ;) (while_statement "while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }" { (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "iVar15 = (uint)bVar12 * 2;" (assignment_expression "iVar15 = (uint)bVar12 * 2" identifier = (binary_expression "(uint)bVar12 * 2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "pbVar9 = param_4;" (assignment_expression "pbVar9 = param_4" identifier = identifier) ;) (if_statement "if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar3 + iVar15) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + iVar15) & 0x20)" ( (binary_expression "*(ushort *)(*piVar3 + iVar15) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + iVar15)" * (cast_expression "(ushort *)(*piVar3 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + iVar15)" ( (binary_expression "*piVar3 + iVar15" (pointer_expression "*piVar3" * identifier) + identifier) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar12 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar12 == 0x27)" ( (binary_expression "bVar12 == 0x27" identifier == number_literal) )) (compound_statement "{\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }" { (labeled_statement "LAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" statement_identifier : (if_statement "if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" if (parenthesized_expression "(bVar12 == 0x27)" ( (binary_expression "bVar12 == 0x27" identifier == number_literal) )) (compound_statement "{\nLAB_0003942c:\n      bVar12 = 0x27;\n    }" { (labeled_statement "LAB_0003942c:\n      bVar12 = 0x27;" statement_identifier : (expression_statement "bVar12 = 0x27;" (assignment_expression "bVar12 = 0x27" identifier = number_literal) ;)) }) (else_clause "else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" else (if_statement "if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" if (parenthesized_expression "('\'' < (char)bVar12)" ( (binary_expression "'\'' < (char)bVar12" (char_literal "'\''" ' escape_sequence ') < (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" { (if_statement "if (bVar12 == 0x60) goto LAB_0003942c;" if (parenthesized_expression "(bVar12 == 0x60)" ( (binary_expression "bVar12 == 0x60" identifier == number_literal) )) (goto_statement "goto LAB_0003942c;" goto statement_identifier ;)) (if_statement "if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }" if (parenthesized_expression "(bVar12 == 0x7b)" ( (binary_expression "bVar12 == 0x7b" identifier == number_literal) )) (compound_statement "{\n        bVar12 = 0x7d;\n      }" { (expression_statement "bVar12 = 0x7d;" (assignment_expression "bVar12 = 0x7d" identifier = number_literal) ;) })) }))))) (expression_statement "bVar8 = pbVar14[1];" (assignment_expression "bVar8 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar15 = 0;\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" else (compound_statement "{\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);" do (compound_statement "{\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      }" { (if_statement "if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c))))" ( (binary_expression "(bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))" (parenthesized_expression "(bVar8 == 0x5c)" ( (binary_expression "bVar8 == 0x5c" identifier == number_literal) )) && (parenthesized_expression "((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))" ( (parenthesized_expression "(pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c))" ( (binary_expression "pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)" (binary_expression "pbVar14[1] == bVar12" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == identifier) || (parenthesized_expression "(pbVar14[1] == 0x5c)" ( (binary_expression "pbVar14[1] == 0x5c" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          pbVar14 = pbVar14 + 1;\n        }" { (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) (else_clause "else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" else (if_statement "if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "(bVar12 == bVar8)" ( (binary_expression "bVar12 == bVar8" identifier == identifier) )) (compound_statement "{\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" { (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = (uint)*pbVar13 << 1;" (assignment_expression "iVar15 = (uint)*pbVar13 << 1" identifier = (binary_expression "(uint)*pbVar13 << 1" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })))) (if_statement "if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }" if (parenthesized_expression "(iVar15 < (int)(param_3 - 1U))" ( (binary_expression "iVar15 < (int)(param_3 - 1U)" identifier < (cast_expression "(int)(param_3 - 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 1U)" ( (binary_expression "param_3 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = *pbVar14;" (assignment_expression "*pbVar9 = *pbVar14" (pointer_expression "*pbVar9" * identifier) = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar9 = param_4 + iVar15;" (assignment_expression "pbVar9 = param_4 + iVar15" identifier = (binary_expression "param_4 + iVar15" identifier + identifier)) ;) })) (if_statement "if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;" if (parenthesized_expression "(param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1))" ( (binary_expression "param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)" (binary_expression "param_3 - 1U" identifier - number_literal) <= (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar14 - (int)param_1)" ( (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "bVar8 = pbVar14[1];" (assignment_expression "bVar8 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" { (if_statement "if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" if (parenthesized_expression "((char)bVar12 < '(')" ( (binary_expression "(char)bVar12 < '('" (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'('" ' character ')) )) (compound_statement "{\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" { (if_statement "if (bVar12 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (if_statement "if (bVar12 != 0x22) goto LAB_00039140;" if (parenthesized_expression "(bVar12 != 0x22)" ( (binary_expression "bVar12 != 0x22" identifier != number_literal) )) (goto_statement "goto LAB_00039140;" goto statement_identifier ;)) (goto_statement "goto LAB_000391e4;" goto statement_identifier ;) })) (if_statement "if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;" if (parenthesized_expression "((bVar12 == 0x60) || (bVar12 == 0x7b))" ( (binary_expression "(bVar12 == 0x60) || (bVar12 == 0x7b)" (parenthesized_expression "(bVar12 == 0x60)" ( (binary_expression "bVar12 == 0x60" identifier == number_literal) )) || (parenthesized_expression "(bVar12 == 0x7b)" ( (binary_expression "bVar12 == 0x7b" identifier == number_literal) ))) )) (goto_statement "goto LAB_000391e4;" goto statement_identifier ;)) (if_statement "if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" if (parenthesized_expression "(bVar12 == 0x2f)" ( (binary_expression "bVar12 == 0x2f" identifier == number_literal) )) (compound_statement "{\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }" { (expression_statement "bVar12 = pbVar14[1];" (assignment_expression "bVar12 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" if (parenthesized_expression "(param_3 + -1 < 1)" ( (binary_expression "param_3 + -1 < 1" (binary_expression "param_3 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }" { (if_statement "if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;" if (parenthesized_expression "((bVar12 != 0x3e) && (bVar12 != 0x2f))" ( (binary_expression "(bVar12 != 0x3e) && (bVar12 != 0x2f)" (parenthesized_expression "(bVar12 != 0x3e)" ( (binary_expression "bVar12 != 0x3e" identifier != number_literal) )) && (parenthesized_expression "(bVar12 != 0x2f)" ( (binary_expression "bVar12 != 0x2f" identifier != number_literal) ))) )) (goto_statement "goto LAB_00039124;" goto statement_identifier ;)) }) (else_clause "else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" else (compound_statement "{\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" { (expression_statement "*param_4 = 0x2f;" (assignment_expression "*param_4 = 0x2f" (pointer_expression "*param_4" * identifier) = number_literal) ;) (expression_statement "pbVar9 = param_4 + 1;" (assignment_expression "pbVar9 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "((bVar12 != 0x3e) && (bVar12 != 0x2f))" ( (binary_expression "(bVar12 != 0x3e) && (bVar12 != 0x2f)" (parenthesized_expression "(bVar12 != 0x3e)" ( (binary_expression "bVar12 != 0x3e" identifier != number_literal) )) && (parenthesized_expression "(bVar12 != 0x2f)" ( (binary_expression "bVar12 != 0x2f" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }" { (labeled_statement "LAB_00039124:\n          iVar15 = (uint)bVar12 << 1;" statement_identifier : (expression_statement "iVar15 = (uint)bVar12 << 1;" (assignment_expression "iVar15 = (uint)bVar12 << 1" identifier = (binary_expression "(uint)bVar12 << 1" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;)) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })) (if_statement "if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }" if (parenthesized_expression "(param_3 + -1 != 1)" ( (binary_expression "param_3 + -1 != 1" (binary_expression "param_3 + -1" identifier + number_literal) != number_literal) )) (compound_statement "{\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }" { (expression_statement "param_4[1] = bVar12;" (assignment_expression "param_4[1] = bVar12" (subscript_expression "param_4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar9 = param_4 + 2;" (assignment_expression "pbVar9 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) })) }))) (expression_statement "iVar15 = (uint)pbVar14[2] << 1;" (assignment_expression "iVar15 = (uint)pbVar14[2] << 1" identifier = (binary_expression "(uint)pbVar14[2] << 1" (cast_expression "(uint)pbVar14[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar14[2]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 2;" (assignment_expression "pbVar14 = pbVar14 + 2" identifier = (binary_expression "pbVar14 + 2" identifier + number_literal)) ;) }) (else_clause "else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" else (compound_statement "{\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" { (labeled_statement "LAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);" statement_identifier : (expression_statement "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);" (call_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)" ( (pointer_expression "*(code *)PTR_InterpretLocaleValue_003a9768" * (cast_expression "(code *)PTR_InterpretLocaleValue_003a9768" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,&local_30)" ( identifier , (pointer_expression "&local_30" & identifier) ))) ;)) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "uVar4 = (uint)(char)bVar12;" (assignment_expression "uVar4 = (uint)(char)bVar12" identifier = (cast_expression "(uint)(char)bVar12" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(local_30 == pbVar14)" ( (binary_expression "local_30 == pbVar14" identifier == identifier) )) (compound_statement "{\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }" { (expression_statement "uVar11 = (uint)bVar12;" (assignment_expression "uVar11 = (uint)bVar12" identifier = (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar15 = uVar11 * 2;" (assignment_expression "iVar15 = uVar11 * 2" identifier = (binary_expression "uVar11 * 2" identifier * number_literal)) ;) (if_statement "if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }" { (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar10 = *(ushort *)(iVar5 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + iVar15)" identifier = (pointer_expression "*(ushort *)(iVar5 + iVar15)" * (cast_expression "(ushort *)(iVar5 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar15)" ( (binary_expression "iVar5 + iVar15" identifier + identifier) ))))) ;) (if_statement "if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;" if (parenthesized_expression "(((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0))))" ( (binary_expression "((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))" (parenthesized_expression "((uVar10 & 4) != 0)" ( (binary_expression "(uVar10 & 4) != 0" (parenthesized_expression "(uVar10 & 4)" ( (binary_expression "uVar10 & 4" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))" ( (parenthesized_expression "((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0))" ( (binary_expression "(uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)" (binary_expression "(uVar11 - 0x23 & 0xff) < 0x1a" (parenthesized_expression "(uVar11 - 0x23 & 0xff)" ( (binary_expression "uVar11 - 0x23 & 0xff" (binary_expression "uVar11 - 0x23" identifier - number_literal) & number_literal) )) < number_literal) && (parenthesized_expression "((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f)" ( (binary_expression "(0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f" (parenthesized_expression "(0x2001001U >> (uVar11 - 0x23 & 0x1f))" ( (binary_expression "0x2001001U >> (uVar11 - 0x23 & 0x1f)" number_literal >> (parenthesized_expression "(uVar11 - 0x23 & 0x1f)" ( (binary_expression "uVar11 - 0x23 & 0x1f" (binary_expression "uVar11 - 0x23" identifier - number_literal) & number_literal) ))) )) << number_literal) ))) < number_literal) ))) )) ))) )) (goto_statement "goto LAB_0003947c;" goto statement_identifier ;)) (labeled_statement "LAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" statement_identifier : (if_statement "if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" if (parenthesized_expression "(0 < param_3 + -1)" ( (binary_expression "0 < param_3 + -1" number_literal < (binary_expression "param_3 + -1" identifier + number_literal)) )) (compound_statement "{\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" { (expression_statement "*param_4 = bVar12;" (assignment_expression "*param_4 = bVar12" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "pbVar9 = param_4 + 1;" (assignment_expression "pbVar9 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = (uint)*pbVar13 << 1;" (assignment_expression "iVar15 = (uint)*pbVar13 << 1" identifier = (binary_expression "(uint)*pbVar13 << 1" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) })) }) (else_clause "else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" else (if_statement "if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(uVar4 == 0x2c)" ( (binary_expression "uVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }" { (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar10 = *(ushort *)(iVar5 + 0x58);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + 0x58)" identifier = (pointer_expression "*(ushort *)(iVar5 + 0x58)" * (cast_expression "(ushort *)(iVar5 + 0x58)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x58)" ( (binary_expression "iVar5 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = 0x2c;" (assignment_expression "uVar11 = 0x2c" identifier = number_literal) ;) (if_statement "if ((uVar10 & 4) == 0) goto LAB_000393f8;" if (parenthesized_expression "((uVar10 & 4) == 0)" ( (binary_expression "(uVar10 & 4) == 0" (parenthesized_expression "(uVar10 & 4)" ( (binary_expression "uVar10 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000393f8;" goto statement_identifier ;)) (labeled_statement "LAB_0003947c:\n        iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (expression_statement "uVar16 = param_3 - 1;" (assignment_expression "uVar16 = param_3 - 1" identifier = (binary_expression "param_3 - 1" identifier - number_literal)) ;) (while_statement "while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }" while (parenthesized_expression "(((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c)))))" ( (parenthesized_expression "((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))" ( (binary_expression "(((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c)))" (parenthesized_expression "(((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c))" ( (binary_expression "((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)" (parenthesized_expression "((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)))))" ( (binary_expression "(uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))" (binary_expression "(uVar10 & 0x20) == 0" (parenthesized_expression "(uVar10 & 0x20)" ( (binary_expression "uVar10 & 0x20" identifier & number_literal) )) == number_literal) && (parenthesized_expression "((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))" ( (parenthesized_expression "(0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)))" ( (binary_expression "0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))" (binary_expression "0x11 < (uVar11 - 0x2c & 0xff)" number_literal < (parenthesized_expression "(uVar11 - 0x2c & 0xff)" ( (binary_expression "uVar11 - 0x2c & 0xff" (binary_expression "uVar11 - 0x2c" identifier - number_literal) & number_literal) ))) || (parenthesized_expression "(-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))" ( (binary_expression "-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" number_literal < (cast_expression "(int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" ( (binary_expression "(0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f" (parenthesized_expression "(0x2c001U >> (uVar11 - 0x2c & 0x1f))" ( (binary_expression "0x2c001U >> (uVar11 - 0x2c & 0x1f)" number_literal >> (parenthesized_expression "(uVar11 - 0x2c & 0x1f)" ( (binary_expression "uVar11 - 0x2c & 0x1f" (binary_expression "uVar11 - 0x2c" identifier - number_literal) & number_literal) ))) )) << number_literal) )))) ))) )) ))) )) || (parenthesized_expression "(pbVar14[-1] == 0x5c)" ( (binary_expression "pbVar14[-1] == 0x5c" (subscript_expression "pbVar14[-1]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((iVar7 < 1 || (uVar4 != 0x3c)))" ( (parenthesized_expression "(iVar7 < 1 || (uVar4 != 0x3c))" ( (binary_expression "iVar7 < 1 || (uVar4 != 0x3c)" (binary_expression "iVar7 < 1" identifier < number_literal) || (parenthesized_expression "(uVar4 != 0x3c)" ( (binary_expression "uVar4 != 0x3c" identifier != number_literal) ))) )) ))) )) )) (compound_statement "{\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }" { (if_statement "if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }" if (parenthesized_expression "(iVar7 < (int)uVar16)" ( (binary_expression "iVar7 < (int)uVar16" identifier < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = (byte)uVar4;" (assignment_expression "*pbVar9 = (byte)uVar4" (pointer_expression "*pbVar9" * identifier) = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar9 = param_4 + iVar7;" (assignment_expression "pbVar9 = param_4 + iVar7" identifier = (binary_expression "param_4 + iVar7" identifier + identifier)) ;) })) (if_statement "if (uVar4 == 0x3e) goto LAB_00039418;" if (parenthesized_expression "(uVar4 == 0x3e)" ( (binary_expression "uVar4 == 0x3e" identifier == number_literal) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "uVar11 = (int)pbVar14 - (int)param_1;" (assignment_expression "uVar11 = (int)pbVar14 - (int)param_1" identifier = (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }" if (parenthesized_expression "(uVar4 == 0x28)" ( (binary_expression "uVar4 == 0x28" identifier == number_literal) )) (compound_statement "{\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }" { (expression_statement "bVar12 = pbVar14[1];" (assignment_expression "bVar12 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })) (while_statement "while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }" { (if_statement "if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }" if (parenthesized_expression "(iVar7 < (int)uVar16)" ( (binary_expression "iVar7 < (int)uVar16" identifier < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = bVar12;" (assignment_expression "*pbVar9 = bVar12" (pointer_expression "*pbVar9" * identifier) = identifier) ;) (expression_statement "pbVar9 = param_4 + iVar7;" (assignment_expression "pbVar9 = param_4 + iVar7" identifier = (binary_expression "param_4 + iVar7" identifier + identifier)) ;) })) (if_statement "if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;" if (parenthesized_expression "((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))" ( (binary_expression "(bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c)" (parenthesized_expression "(bVar12 == 0x29)" ( (binary_expression "bVar12 == 0x29" identifier == number_literal) )) && (parenthesized_expression "(uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c)" ( (comma_expression "uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c" (assignment_expression "uVar11 = (int)pbVar14 - (int)param_1" identifier = (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "pbVar14[-1] != 0x5c" (subscript_expression "pbVar14[-1]" identifier [ number_literal ]) != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;" if (parenthesized_expression "(uVar16 <= (uint)((int)pbVar14 - (int)param_1))" ( (binary_expression "uVar16 <= (uint)((int)pbVar14 - (int)param_1)" identifier <= (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar14 - (int)param_1)" ( (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (bVar12 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) })) })) (if_statement "if (uVar16 <= uVar11) goto LAB_00039418;" if (parenthesized_expression "(uVar16 <= uVar11)" ( (binary_expression "uVar16 <= uVar11" identifier <= identifier) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = (uint)(char)*pbVar13;" (assignment_expression "uVar4 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = (uint)*pbVar13;" (assignment_expression "uVar11 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar15 = uVar11 * 2;" (assignment_expression "iVar15 = uVar11 * 2" identifier = (binary_expression "uVar11 * 2" identifier * number_literal)) ;) (if_statement "if (uVar4 == 0) goto LAB_0003929c;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (expression_statement "uVar10 = *(ushort *)(iVar5 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + iVar15)" identifier = (pointer_expression "*(ushort *)(iVar5 + iVar15)" * (cast_expression "(ushort *)(iVar5 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar15)" ( (binary_expression "iVar5 + iVar15" identifier + identifier) ))))) ;) })) (expression_statement "iVar15 = (uint)*pbVar14 << 1;" (assignment_expression "iVar15 = (uint)*pbVar14 << 1" identifier = (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) }) (else_clause "else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" else (if_statement "if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(pbVar14 < local_30)" ( (binary_expression "pbVar14 < local_30" identifier < identifier) )) (compound_statement "{\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);" do (compound_statement "{\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        }" { (if_statement "if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }" if (parenthesized_expression "(iVar5 < (int)(param_3 - 1U))" ( (binary_expression "iVar5 < (int)(param_3 - 1U)" identifier < (cast_expression "(int)(param_3 - 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 1U)" ( (binary_expression "param_3 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = (byte)uVar4;" (assignment_expression "*pbVar9 = (byte)uVar4" (pointer_expression "*pbVar9" * identifier) = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar9 = param_4 + iVar5;" (assignment_expression "pbVar9 = param_4 + iVar5" identifier = (binary_expression "param_4 + iVar5" identifier + identifier)) ;) })) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }" if (parenthesized_expression "(param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1))" ( (binary_expression "param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)" (binary_expression "param_3 - 1U" identifier - number_literal) <= (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar14 - (int)param_1)" ( (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }" { (expression_statement "uVar4 = (uint)(char)*pbVar14;" (assignment_expression "uVar4 = (uint)(char)*pbVar14" identifier = (binary_expression "(uint)(char)*pbVar14" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (goto_statement "goto LAB_000391cc;" goto statement_identifier ;) })) (expression_statement "uVar4 = (uint)(char)*pbVar13;" (assignment_expression "uVar4 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar14 = local_30;" (assignment_expression "pbVar14 = local_30" identifier = identifier) ;) (if_statement "if (local_30 == pbVar13) goto LAB_000391cc;" if (parenthesized_expression "(local_30 == pbVar13)" ( (binary_expression "local_30 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_000391cc;" goto statement_identifier ;)) (expression_statement "iVar15 = 0x58;" (assignment_expression "iVar15 = 0x58" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 != 0x2c)" ( (binary_expression "uVar4 != 0x2c" identifier != number_literal) )) ;) }) (else_clause "else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" else (compound_statement "{\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" statement_identifier : (if_statement "if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" if (parenthesized_expression "(uVar4 == 0x25)" ( (binary_expression "uVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }" { (if_statement "if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }" if (parenthesized_expression "(iVar5 < param_3 + -1)" ( (binary_expression "iVar5 < param_3 + -1" identifier < (binary_expression "param_3 + -1" identifier + number_literal)) )) (compound_statement "{\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }" { (expression_statement "*pbVar9 = 0x25;" (assignment_expression "*pbVar9 = 0x25" (pointer_expression "*pbVar9" * identifier) = number_literal) ;) (expression_statement "pbVar9 = param_4 + iVar5 + 1;" (assignment_expression "pbVar9 = param_4 + iVar5 + 1" identifier = (binary_expression "param_4 + iVar5 + 1" (binary_expression "param_4 + iVar5" identifier + identifier) + number_literal)) ;) })) (expression_statement "iVar15 = (uint)pbVar14[1] << 1;" (assignment_expression "iVar15 = (uint)pbVar14[1] << 1" identifier = (binary_expression "(uint)pbVar14[1] << 1" (cast_expression "(uint)pbVar14[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar14[1]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" else (compound_statement "{\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" { (expression_statement "iVar15 = (uVar4 & 0xff) << 1;" (assignment_expression "iVar15 = (uVar4 & 0xff) << 1" identifier = (binary_expression "(uVar4 & 0xff) << 1" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal)) ;) })))) }))))))) }))) }))) (labeled_statement "LAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;" statement_identifier : (expression_statement "puVar1 = PTR_LocaleNCompare_003a961c;" (assignment_expression "puVar1 = PTR_LocaleNCompare_003a961c" identifier = identifier) ;)) (expression_statement "*pbVar9 = 0;" (assignment_expression "*pbVar9 = 0" (pointer_expression "*pbVar9" * identifier) = number_literal) ;) (expression_statement "iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);" (assignment_expression "iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" identifier = (call_expression "(*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" ( identifier , (binary_expression "PTR_s_courses_003a88ec + -0x29a8" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }" if (parenthesized_expression "((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0))" ( (binary_expression "(iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" ( (comma_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" (parenthesized_expression "(*(code *)PTR_strrchr_003a9650)" ( (pointer_expression "*(code *)PTR_strrchr_003a9650" * (cast_expression "(code *)PTR_strrchr_003a9650" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,0x29)" ( identifier , number_literal ))))) , (comma_expression "puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar1 = PTR_memmove_003a8f50" identifier = identifier) , (binary_expression "puVar6 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));" (call_expression "(*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4))" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4))" ( identifier , (binary_expression "param_4 + 5" identifier + number_literal) , (binary_expression "puVar6 + (-4 - (int)param_4)" identifier + (parenthesized_expression "(-4 - (int)param_4)" ( (binary_expression "-4 - (int)param_4" number_literal - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) })) (expression_statement "uVar10 = *(ushort *)(*piVar3 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(*piVar3 + iVar15)" identifier = (pointer_expression "*(ushort *)(*piVar3 + iVar15)" * (cast_expression "(ushort *)(*piVar3 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + iVar15)" ( (binary_expression "*piVar3 + iVar15" (pointer_expression "*piVar3" * identifier) + identifier) ))))) ;) (while_statement "while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }" while (parenthesized_expression "((uVar10 & 0x20) != 0)" ( (binary_expression "(uVar10 & 0x20) != 0" (parenthesized_expression "(uVar10 & 0x20)" ( (binary_expression "uVar10 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }" { (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);" (assignment_expression "uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" identifier = (pointer_expression "*(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" * (cast_expression "(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + (uint)*pbVar14 * 2)" ( (binary_expression "*piVar3 + (uint)*pbVar14 * 2" (pointer_expression "*piVar3" * identifier) + (binary_expression "(uint)*pbVar14 * 2" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) })) (if_statement "if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }" if (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_2 = pbVar14;\n  }" { (expression_statement "*param_2 = pbVar14;" (assignment_expression "*param_2 = pbVar14" (pointer_expression "*param_2" * identifier) = identifier) ;) })) (if_statement "if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar14 + (1 - (int)param_1);\n  }" { (return_statement "return pbVar14 + (1 - (int)param_1);" return (binary_expression "pbVar14 + (1 - (int)param_1)" identifier + (parenthesized_expression "(1 - (int)param_1)" ( (binary_expression "1 - (int)param_1" number_literal - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);" statement_identifier : (expression_statement "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x29c0" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x2a48" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x29a0" identifier + number_literal) ))))) ;)) (return_statement "return pbVar14;" return identifier ;) (labeled_statement "LAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;" statement_identifier : (expression_statement "iVar15 = (uint)*pbVar14 << 1;" (assignment_expression "iVar15 = (uint)*pbVar14 << 1" identifier = (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;)) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })))
(translation_unit "size_t GetNextToken(char *start,char **end,size_t extent,char *token)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  byte bVar9;\n  byte *pbVar10;\n  ushort uVar11;\n  uint uVar12;\n  byte bVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  int iVar16;\n  uint uVar17;\n  char *q;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (start == (char *)0x0) {\n    sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0);\n    return sVar7;\n  }\n  if (token == (char *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar15 = (byte *)start;\n  while( true ) {\n    bVar13 = *pbVar15;\n    iVar16 = (uint)bVar13 * 2;\n    pbVar10 = (byte *)token;\n    if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;\n    if (bVar13 == 0) goto LAB_0003929c;\n    pbVar15 = pbVar15 + 1;\n  }\n  if (bVar13 == 0x27) {\nLAB_000391e4:\n    if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }\n    bVar9 = pbVar15[1];\n    pbVar15 = pbVar15 + 1;\n    if (bVar9 == 0) {\n      iVar16 = 0;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }\n  }\n  else {\n    if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;\n    if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar10 = 0;\n  iVar5 = (*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));\n  }\n  uVar11 = *(ushort *)(*piVar3 + iVar16);\n  while ((uVar11 & 0x20) != 0) {\n    pbVar15 = pbVar15 + 1;\n    uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);\n  }\n  if (end != (char **)0x0) {\n    *end = (char *)pbVar15;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return (size_t)(pbVar15 + (1 - (int)start));\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0);\n  return sVar7;\nLAB_00039418:\n  iVar16 = (uint)*pbVar15 << 1;\n  goto LAB_0003929c;\n}\n\n" (function_definition "size_t GetNextToken(char *start,char **end,size_t extent,char *token)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  byte bVar9;\n  byte *pbVar10;\n  ushort uVar11;\n  uint uVar12;\n  byte bVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  int iVar16;\n  uint uVar17;\n  char *q;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (start == (char *)0x0) {\n    sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0);\n    return sVar7;\n  }\n  if (token == (char *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar15 = (byte *)start;\n  while( true ) {\n    bVar13 = *pbVar15;\n    iVar16 = (uint)bVar13 * 2;\n    pbVar10 = (byte *)token;\n    if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;\n    if (bVar13 == 0) goto LAB_0003929c;\n    pbVar15 = pbVar15 + 1;\n  }\n  if (bVar13 == 0x27) {\nLAB_000391e4:\n    if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }\n    bVar9 = pbVar15[1];\n    pbVar15 = pbVar15 + 1;\n    if (bVar9 == 0) {\n      iVar16 = 0;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }\n  }\n  else {\n    if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;\n    if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar10 = 0;\n  iVar5 = (*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));\n  }\n  uVar11 = *(ushort *)(*piVar3 + iVar16);\n  while ((uVar11 & 0x20) != 0) {\n    pbVar15 = pbVar15 + 1;\n    uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);\n  }\n  if (end != (char **)0x0) {\n    *end = (char *)pbVar15;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return (size_t)(pbVar15 + (1 - (int)start));\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0);\n  return sVar7;\nLAB_00039418:\n  iVar16 = (uint)*pbVar15 << 1;\n  goto LAB_0003929c;\n}" primitive_type (function_declarator "GetNextToken(char *start,char **end,size_t extent,char *token)" identifier (parameter_list "(char *start,char **end,size_t extent,char *token)" ( (parameter_declaration "char *start" primitive_type (pointer_declarator "*start" * identifier)) , (parameter_declaration "char **end" primitive_type (pointer_declarator "**end" * (pointer_declarator "*end" * identifier))) , (parameter_declaration "size_t extent" primitive_type identifier) , (parameter_declaration "char *token" primitive_type (pointer_declarator "*token" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  byte bVar9;\n  byte *pbVar10;\n  ushort uVar11;\n  uint uVar12;\n  byte bVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  int iVar16;\n  uint uVar17;\n  char *q;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (start == (char *)0x0) {\n    sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0);\n    return sVar7;\n  }\n  if (token == (char *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar15 = (byte *)start;\n  while( true ) {\n    bVar13 = *pbVar15;\n    iVar16 = (uint)bVar13 * 2;\n    pbVar10 = (byte *)token;\n    if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;\n    if (bVar13 == 0) goto LAB_0003929c;\n    pbVar15 = pbVar15 + 1;\n  }\n  if (bVar13 == 0x27) {\nLAB_000391e4:\n    if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }\n    bVar9 = pbVar15[1];\n    pbVar15 = pbVar15 + 1;\n    if (bVar9 == 0) {\n      iVar16 = 0;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }\n  }\n  else {\n    if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;\n    if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar10 = 0;\n  iVar5 = (*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));\n  }\n  uVar11 = *(ushort *)(*piVar3 + iVar16);\n  while ((uVar11 & 0x20) != 0) {\n    pbVar15 = pbVar15 + 1;\n    uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);\n  }\n  if (end != (char **)0x0) {\n    *end = (char *)pbVar15;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return (size_t)(pbVar15 + (1 - (int)start));\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0);\n  return sVar7;\nLAB_00039418:\n  iVar16 = (uint)*pbVar15 << 1;\n  goto LAB_0003929c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "ushort uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *q;" primitive_type (pointer_declarator "*q" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (start == (char *)0x0) {\n    sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0);\n    return sVar7;\n  }" if (parenthesized_expression "(start == (char *)0x0)" ( (binary_expression "start == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0);\n    return sVar7;\n  }" { (expression_statement "sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,0xbe,\n                       PTR_s_courses_003a88ec + -0x29a0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x29e0" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x2a48" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x29a0" identifier + number_literal) )))) ;) (return_statement "return sVar7;" return identifier ;) })) (if_statement "if (token == (char *)0x0) goto LAB_00039600;" if (parenthesized_expression "(token == (char *)0x0)" ( (binary_expression "token == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00039600;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_003a9434)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" * (cast_expression "(code *)PTR___ctype_b_loc_003a9434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pbVar15 = (byte *)start;" (assignment_expression "pbVar15 = (byte *)start" identifier = (cast_expression "(byte *)start" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while( true ) {\n    bVar13 = *pbVar15;\n    iVar16 = (uint)bVar13 * 2;\n    pbVar10 = (byte *)token;\n    if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;\n    if (bVar13 == 0) goto LAB_0003929c;\n    pbVar15 = pbVar15 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    bVar13 = *pbVar15;\n    iVar16 = (uint)bVar13 * 2;\n    pbVar10 = (byte *)token;\n    if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;\n    if (bVar13 == 0) goto LAB_0003929c;\n    pbVar15 = pbVar15 + 1;\n  }" { (expression_statement "bVar13 = *pbVar15;" (assignment_expression "bVar13 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "iVar16 = (uint)bVar13 * 2;" (assignment_expression "iVar16 = (uint)bVar13 * 2" identifier = (binary_expression "(uint)bVar13 * 2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "pbVar10 = (byte *)token;" (assignment_expression "pbVar10 = (byte *)token" identifier = (cast_expression "(byte *)token" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar3 + iVar16) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar3 + iVar16) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + iVar16) & 0x20)" ( (binary_expression "*(ushort *)(*piVar3 + iVar16) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + iVar16)" * (cast_expression "(ushort *)(*piVar3 + iVar16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + iVar16)" ( (binary_expression "*piVar3 + iVar16" (pointer_expression "*piVar3" * identifier) + identifier) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar13 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar13 == 0x27) {\nLAB_000391e4:\n    if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }\n    bVar9 = pbVar15[1];\n    pbVar15 = pbVar15 + 1;\n    if (bVar9 == 0) {\n      iVar16 = 0;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }\n  }\n  else {\n    if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;\n    if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar13 == 0x27)" ( (binary_expression "bVar13 == 0x27" identifier == number_literal) )) (compound_statement "{\nLAB_000391e4:\n    if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }\n    bVar9 = pbVar15[1];\n    pbVar15 = pbVar15 + 1;\n    if (bVar9 == 0) {\n      iVar16 = 0;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }\n  }" { (labeled_statement "LAB_000391e4:\n    if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }" statement_identifier : (if_statement "if (bVar13 == 0x27) {\nLAB_0003942c:\n      bVar13 = 0x27;\n    }\n    else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }" if (parenthesized_expression "(bVar13 == 0x27)" ( (binary_expression "bVar13 == 0x27" identifier == number_literal) )) (compound_statement "{\nLAB_0003942c:\n      bVar13 = 0x27;\n    }" { (labeled_statement "LAB_0003942c:\n      bVar13 = 0x27;" statement_identifier : (expression_statement "bVar13 = 0x27;" (assignment_expression "bVar13 = 0x27" identifier = number_literal) ;)) }) (else_clause "else if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }" else (if_statement "if ('\'' < (char)bVar13) {\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }" if (parenthesized_expression "('\'' < (char)bVar13)" ( (binary_expression "'\'' < (char)bVar13" (char_literal "'\''" ' escape_sequence ') < (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      if (bVar13 == 0x60) goto LAB_0003942c;\n      if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }\n    }" { (if_statement "if (bVar13 == 0x60) goto LAB_0003942c;" if (parenthesized_expression "(bVar13 == 0x60)" ( (binary_expression "bVar13 == 0x60" identifier == number_literal) )) (goto_statement "goto LAB_0003942c;" goto statement_identifier ;)) (if_statement "if (bVar13 == 0x7b) {\n        bVar13 = 0x7d;\n      }" if (parenthesized_expression "(bVar13 == 0x7b)" ( (binary_expression "bVar13 == 0x7b" identifier == number_literal) )) (compound_statement "{\n        bVar13 = 0x7d;\n      }" { (expression_statement "bVar13 = 0x7d;" (assignment_expression "bVar13 = 0x7d" identifier = number_literal) ;) })) }))))) (expression_statement "bVar9 = pbVar15[1];" (assignment_expression "bVar9 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (if_statement "if (bVar9 == 0) {\n      iVar16 = 0;\n    }\n    else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar16 = 0;\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }" else (compound_statement "{\n      iVar16 = 0;\n      do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);\n      iVar16 = 0;\n    }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      } while (bVar9 != 0);" do (compound_statement "{\n        if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }\n        if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n        bVar9 = pbVar15[1];\n        pbVar15 = pbVar15 + 1;\n      }" { (if_statement "if ((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))) {\n          pbVar15 = pbVar15 + 1;\n        }\n        else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "((bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c))))" ( (binary_expression "(bVar9 == 0x5c) && ((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))" (parenthesized_expression "(bVar9 == 0x5c)" ( (binary_expression "bVar9 == 0x5c" identifier == number_literal) )) && (parenthesized_expression "((pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)))" ( (parenthesized_expression "(pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c))" ( (binary_expression "pbVar15[1] == bVar13 || (pbVar15[1] == 0x5c)" (binary_expression "pbVar15[1] == bVar13" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == identifier) || (parenthesized_expression "(pbVar15[1] == 0x5c)" ( (binary_expression "pbVar15[1] == 0x5c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          pbVar15 = pbVar15 + 1;\n        }" { (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) }) (else_clause "else if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }" else (if_statement "if (bVar13 == bVar9) {\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "(bVar13 == bVar9)" ( (binary_expression "bVar13 == bVar9" identifier == identifier) )) (compound_statement "{\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n          goto LAB_0003929c;\n        }" { (expression_statement "pbVar14 = pbVar15 + 1;" (assignment_expression "pbVar14 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = (uint)*pbVar14 << 1;" (assignment_expression "iVar16 = (uint)*pbVar14 << 1" identifier = (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })))) (if_statement "if (iVar16 < (int)(extent - 1)) {\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }" if (parenthesized_expression "(iVar16 < (int)(extent - 1))" ( (binary_expression "iVar16 < (int)(extent - 1)" identifier < (cast_expression "(int)(extent - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(extent - 1)" ( (binary_expression "extent - 1" identifier - number_literal) )))) )) (compound_statement "{\n          iVar16 = iVar16 + 1;\n          *pbVar10 = *pbVar15;\n          pbVar10 = (byte *)(token + iVar16);\n        }" { (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = *pbVar15;" (assignment_expression "*pbVar10 = *pbVar15" (pointer_expression "*pbVar10" * identifier) = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "pbVar10 = (byte *)(token + iVar16);" (assignment_expression "pbVar10 = (byte *)(token + iVar16)" identifier = (cast_expression "(byte *)(token + iVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + iVar16)" ( (binary_expression "token + iVar16" identifier + identifier) )))) ;) })) (if_statement "if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;" if (parenthesized_expression "(extent - 1 <= (uint)((int)pbVar15 - (int)start))" ( (binary_expression "extent - 1 <= (uint)((int)pbVar15 - (int)start)" (binary_expression "extent - 1" identifier - number_literal) <= (call_expression "(uint)((int)pbVar15 - (int)start)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar15 - (int)start)" ( (binary_expression "(int)pbVar15 - (int)start" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "bVar9 = pbVar15[1];" (assignment_expression "bVar9 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;\n    if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;\n    if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" { (if_statement "if ((char)bVar13 < '(') {\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" if (parenthesized_expression "((char)bVar13 < '(')" ( (binary_expression "(char)bVar13 < '('" (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'('" ' character ')) )) (compound_statement "{\n      if (bVar13 == 0) goto LAB_0003929c;\n      if (bVar13 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" { (if_statement "if (bVar13 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (if_statement "if (bVar13 != 0x22) goto LAB_00039140;" if (parenthesized_expression "(bVar13 != 0x22)" ( (binary_expression "bVar13 != 0x22" identifier != number_literal) )) (goto_statement "goto LAB_00039140;" goto statement_identifier ;)) (goto_statement "goto LAB_000391e4;" goto statement_identifier ;) })) (if_statement "if ((bVar13 == 0x60) || (bVar13 == 0x7b)) goto LAB_000391e4;" if (parenthesized_expression "((bVar13 == 0x60) || (bVar13 == 0x7b))" ( (binary_expression "(bVar13 == 0x60) || (bVar13 == 0x7b)" (parenthesized_expression "(bVar13 == 0x60)" ( (binary_expression "bVar13 == 0x60" identifier == number_literal) )) || (parenthesized_expression "(bVar13 == 0x7b)" ( (binary_expression "bVar13 == 0x7b" identifier == number_literal) ))) )) (goto_statement "goto LAB_000391e4;" goto statement_identifier ;)) (if_statement "if (bVar13 == 0x2f) {\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" if (parenthesized_expression "(bVar13 == 0x2f)" ( (binary_expression "bVar13 == 0x2f" identifier == number_literal) )) (compound_statement "{\n      bVar13 = pbVar15[1];\n      if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }\n      iVar16 = (uint)pbVar15[2] << 1;\n      pbVar15 = pbVar15 + 2;\n    }" { (expression_statement "bVar13 = pbVar15[1];" (assignment_expression "bVar13 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (if_statement "if ((int)(extent - 1) < 1) {\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }" if (parenthesized_expression "((int)(extent - 1) < 1)" ( (binary_expression "(int)(extent - 1) < 1" (cast_expression "(int)(extent - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(extent - 1)" ( (binary_expression "extent - 1" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;\n      }" { (if_statement "if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) goto LAB_00039124;" if (parenthesized_expression "((bVar13 != 0x3e) && (bVar13 != 0x2f))" ( (binary_expression "(bVar13 != 0x3e) && (bVar13 != 0x2f)" (parenthesized_expression "(bVar13 != 0x3e)" ( (binary_expression "bVar13 != 0x3e" identifier != number_literal) )) && (parenthesized_expression "(bVar13 != 0x2f)" ( (binary_expression "bVar13 != 0x2f" identifier != number_literal) ))) )) (goto_statement "goto LAB_00039124;" goto statement_identifier ;)) }) (else_clause "else {\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }" else (compound_statement "{\n        *token = '/';\n        pbVar10 = (byte *)(token + 1);\n        if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }\n        if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }\n      }" { (expression_statement "*token = '/';" (assignment_expression "*token = '/'" (pointer_expression "*token" * identifier) = (char_literal "'/'" ' character ')) ;) (expression_statement "pbVar10 = (byte *)(token + 1);" (assignment_expression "pbVar10 = (byte *)(token + 1)" identifier = (cast_expression "(byte *)(token + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + 1)" ( (binary_expression "token + 1" identifier + number_literal) )))) ;) (if_statement "if ((bVar13 != 0x3e) && (bVar13 != 0x2f)) {\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "((bVar13 != 0x3e) && (bVar13 != 0x2f))" ( (binary_expression "(bVar13 != 0x3e) && (bVar13 != 0x2f)" (parenthesized_expression "(bVar13 != 0x3e)" ( (binary_expression "bVar13 != 0x3e" identifier != number_literal) )) && (parenthesized_expression "(bVar13 != 0x2f)" ( (binary_expression "bVar13 != 0x2f" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00039124:\n          iVar16 = (uint)bVar13 << 1;\n          pbVar15 = pbVar15 + 1;\n          goto LAB_0003929c;\n        }" { (labeled_statement "LAB_00039124:\n          iVar16 = (uint)bVar13 << 1;" statement_identifier : (expression_statement "iVar16 = (uint)bVar13 << 1;" (assignment_expression "iVar16 = (uint)bVar13 << 1" identifier = (binary_expression "(uint)bVar13 << 1" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;)) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })) (if_statement "if (extent - 1 != 1) {\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }" if (parenthesized_expression "(extent - 1 != 1)" ( (binary_expression "extent - 1 != 1" (binary_expression "extent - 1" identifier - number_literal) != number_literal) )) (compound_statement "{\n          token[1] = bVar13;\n          pbVar10 = (byte *)(token + 2);\n        }" { (expression_statement "token[1] = bVar13;" (assignment_expression "token[1] = bVar13" (subscript_expression "token[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar10 = (byte *)(token + 2);" (assignment_expression "pbVar10 = (byte *)(token + 2)" identifier = (cast_expression "(byte *)(token + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + 2)" ( (binary_expression "token + 2" identifier + number_literal) )))) ;) })) }))) (expression_statement "iVar16 = (uint)pbVar15[2] << 1;" (assignment_expression "iVar16 = (uint)pbVar15[2] << 1" identifier = (binary_expression "(uint)pbVar15[2] << 1" (cast_expression "(uint)pbVar15[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar15[2]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 2;" (assignment_expression "pbVar15 = pbVar15 + 2" identifier = (binary_expression "pbVar15 + 2" identifier + number_literal)) ;) }) (else_clause "else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" else (compound_statement "{\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);\n      bVar13 = *pbVar15;\n      uVar4 = (uint)(char)bVar13;\n      if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" { (labeled_statement "LAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);" statement_identifier : (expression_statement "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q);" (call_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar15,&q)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)" ( (pointer_expression "*(code *)PTR_InterpretLocaleValue_003a9768" * (cast_expression "(code *)PTR_InterpretLocaleValue_003a9768" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar15,&q)" ( identifier , (pointer_expression "&q" & identifier) ))) ;)) (expression_statement "bVar13 = *pbVar15;" (assignment_expression "bVar13 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "uVar4 = (uint)(char)bVar13;" (assignment_expression "uVar4 = (uint)(char)bVar13" identifier = (cast_expression "(uint)(char)bVar13" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)bVar13" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if ((byte *)q == pbVar15) {\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "((byte *)q == pbVar15)" ( (binary_expression "(byte *)q == pbVar15" (cast_expression "(byte *)q" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n        uVar12 = (uint)bVar13;\n        iVar16 = uVar12 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }\n      }" { (expression_statement "uVar12 = (uint)bVar13;" (assignment_expression "uVar12 = (uint)bVar13" identifier = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar16 = uVar12 * 2;" (assignment_expression "iVar16 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (if_statement "if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = *piVar3;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n          if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }\n          pbVar14 = pbVar15 + 1;\n          pbVar15 = pbVar15 + 1;\n          iVar16 = (uint)*pbVar14 << 1;\n        }" { (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar11 = *(ushort *)(iVar5 + iVar16);" (assignment_expression "uVar11 = *(ushort *)(iVar5 + iVar16)" identifier = (pointer_expression "*(ushort *)(iVar5 + iVar16)" * (cast_expression "(ushort *)(iVar5 + iVar16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar16)" ( (binary_expression "iVar5 + iVar16" identifier + identifier) ))))) ;) (if_statement "if (((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;" if (parenthesized_expression "(((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0))))" ( (binary_expression "((uVar11 & 4) != 0) ||\n             (((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))" (parenthesized_expression "((uVar11 & 4) != 0)" ( (binary_expression "(uVar11 & 4) != 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)))" ( (parenthesized_expression "((uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0))" ( (binary_expression "(uVar12 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)" (binary_expression "(uVar12 - 0x23 & 0xff) < 0x1a" (parenthesized_expression "(uVar12 - 0x23 & 0xff)" ( (binary_expression "uVar12 - 0x23 & 0xff" (binary_expression "uVar12 - 0x23" identifier - number_literal) & number_literal) )) < number_literal) && (parenthesized_expression "((int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f)" ( (binary_expression "(0x2001001U >> (uVar12 - 0x23 & 0x1f)) << 0x1f" (parenthesized_expression "(0x2001001U >> (uVar12 - 0x23 & 0x1f))" ( (binary_expression "0x2001001U >> (uVar12 - 0x23 & 0x1f)" number_literal >> (parenthesized_expression "(uVar12 - 0x23 & 0x1f)" ( (binary_expression "uVar12 - 0x23 & 0x1f" (binary_expression "uVar12 - 0x23" identifier - number_literal) & number_literal) ))) )) << number_literal) ))) < number_literal) ))) )) ))) )) (goto_statement "goto LAB_0003947c;" goto statement_identifier ;)) (labeled_statement "LAB_000393f8:\n          if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }" statement_identifier : (if_statement "if (0 < (int)(extent - 1)) {\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }" if (parenthesized_expression "(0 < (int)(extent - 1))" ( (binary_expression "0 < (int)(extent - 1)" number_literal < (cast_expression "(int)(extent - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(extent - 1)" ( (binary_expression "extent - 1" identifier - number_literal) )))) )) (compound_statement "{\n            *token = bVar13;\n            pbVar10 = (byte *)(token + 1);\n          }" { (expression_statement "*token = bVar13;" (assignment_expression "*token = bVar13" (pointer_expression "*token" * identifier) = identifier) ;) (expression_statement "pbVar10 = (byte *)(token + 1);" (assignment_expression "pbVar10 = (byte *)(token + 1)" identifier = (cast_expression "(byte *)(token + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + 1)" ( (binary_expression "token + 1" identifier + number_literal) )))) ;) }))) (expression_statement "pbVar14 = pbVar15 + 1;" (assignment_expression "pbVar14 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = (uint)*pbVar14 << 1;" (assignment_expression "iVar16 = (uint)*pbVar14 << 1" identifier = (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) })) }) (else_clause "else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" else (if_statement "if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }\n      else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(uVar4 == 0x2c)" ( (binary_expression "uVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n        iVar5 = *piVar3;\n        uVar11 = *(ushort *)(iVar5 + 0x58);\n        uVar12 = 0x2c;\n        if ((uVar11 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar8 = 0;\n        uVar17 = extent - 1;\n        while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }\n        iVar16 = (uint)*pbVar15 << 1;\n      }" { (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar11 = *(ushort *)(iVar5 + 0x58);" (assignment_expression "uVar11 = *(ushort *)(iVar5 + 0x58)" identifier = (pointer_expression "*(ushort *)(iVar5 + 0x58)" * (cast_expression "(ushort *)(iVar5 + 0x58)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x58)" ( (binary_expression "iVar5 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = 0x2c;" (assignment_expression "uVar12 = 0x2c" identifier = number_literal) ;) (if_statement "if ((uVar11 & 4) == 0) goto LAB_000393f8;" if (parenthesized_expression "((uVar11 & 4) == 0)" ( (binary_expression "(uVar11 & 4) == 0" (parenthesized_expression "(uVar11 & 4)" ( (binary_expression "uVar11 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000393f8;" goto statement_identifier ;)) (labeled_statement "LAB_0003947c:\n        iVar8 = 0;" statement_identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;)) (expression_statement "uVar17 = extent - 1;" (assignment_expression "uVar17 = extent - 1" identifier = (binary_expression "extent - 1" identifier - number_literal)) ;) (while_statement "while (((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }" while (parenthesized_expression "(((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c)))))" ( (parenthesized_expression "((((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c))))" ( (binary_expression "(((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)) && ((iVar8 < 1 || (uVar4 != 0x3c)))" (parenthesized_expression "(((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c))" ( (binary_expression "((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar15[-1] == 0x5c)" (parenthesized_expression "((uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f)))))" ( (binary_expression "(uVar11 & 0x20) == 0 &&\n                 ((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))" (binary_expression "(uVar11 & 0x20) == 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) == number_literal) && (parenthesized_expression "((0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))))" ( (parenthesized_expression "(0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f)))" ( (binary_expression "0x11 < (uVar12 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))" (binary_expression "0x11 < (uVar12 - 0x2c & 0xff)" number_literal < (parenthesized_expression "(uVar12 - 0x2c & 0xff)" ( (binary_expression "uVar12 - 0x2c & 0xff" (binary_expression "uVar12 - 0x2c" identifier - number_literal) & number_literal) ))) || (parenthesized_expression "(-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f))" ( (binary_expression "-1 < (int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f)" number_literal < (cast_expression "(int)((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f)" ( (binary_expression "(0x2c001U >> (uVar12 - 0x2c & 0x1f)) << 0x1f" (parenthesized_expression "(0x2c001U >> (uVar12 - 0x2c & 0x1f))" ( (binary_expression "0x2c001U >> (uVar12 - 0x2c & 0x1f)" number_literal >> (parenthesized_expression "(uVar12 - 0x2c & 0x1f)" ( (binary_expression "uVar12 - 0x2c & 0x1f" (binary_expression "uVar12 - 0x2c" identifier - number_literal) & number_literal) ))) )) << number_literal) )))) ))) )) ))) )) || (parenthesized_expression "(pbVar15[-1] == 0x5c)" ( (binary_expression "pbVar15[-1] == 0x5c" (subscript_expression "pbVar15[-1]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((iVar8 < 1 || (uVar4 != 0x3c)))" ( (parenthesized_expression "(iVar8 < 1 || (uVar4 != 0x3c))" ( (binary_expression "iVar8 < 1 || (uVar4 != 0x3c)" (binary_expression "iVar8 < 1" identifier < number_literal) || (parenthesized_expression "(uVar4 != 0x3c)" ( (binary_expression "uVar4 != 0x3c" identifier != number_literal) ))) )) ))) )) )) (compound_statement "{\n          if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar12 = (int)pbVar15 - (int)start;\n          if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar17 <= uVar12) goto LAB_00039418;\n          pbVar14 = pbVar15 + 1;\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = pbVar15 + 1;\n          uVar12 = (uint)*pbVar14;\n          iVar16 = uVar12 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar11 = *(ushort *)(iVar5 + iVar16);\n        }" { (if_statement "if (iVar8 < (int)uVar17) {\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }" if (parenthesized_expression "(iVar8 < (int)uVar17)" ( (binary_expression "iVar8 < (int)uVar17" identifier < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar8 = iVar8 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar8);\n          }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = (byte)uVar4;" (assignment_expression "*pbVar10 = (byte)uVar4" (pointer_expression "*pbVar10" * identifier) = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)(token + iVar8);" (assignment_expression "pbVar10 = (byte *)(token + iVar8)" identifier = (cast_expression "(byte *)(token + iVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + iVar8)" ( (binary_expression "token + iVar8" identifier + identifier) )))) ;) })) (if_statement "if (uVar4 == 0x3e) goto LAB_00039418;" if (parenthesized_expression "(uVar4 == 0x3e)" ( (binary_expression "uVar4 == 0x3e" identifier == number_literal) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "uVar12 = (int)pbVar15 - (int)start;" (assignment_expression "uVar12 = (int)pbVar15 - (int)start" identifier = (binary_expression "(int)pbVar15 - (int)start" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar4 == 0x28) {\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }" if (parenthesized_expression "(uVar4 == 0x28)" ( (binary_expression "uVar4 == 0x28" identifier == number_literal) )) (compound_statement "{\n            bVar13 = pbVar15[1];\n            pbVar15 = pbVar15 + 1;\n            if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }\n          }" { (expression_statement "bVar13 = pbVar15[1];" (assignment_expression "bVar13 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (if_statement "if (bVar13 == 0) {\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar16 = 0;\n              goto LAB_0003929c;\n            }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })) (while_statement "while( true ) {\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }\n              if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;\n              if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;\n              pbVar15 = pbVar15 + 1;\n              bVar13 = *pbVar15;\n              iVar16 = 0;\n              if (bVar13 == 0) goto LAB_0003929c;\n            }" { (if_statement "if (iVar8 < (int)uVar17) {\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }" if (parenthesized_expression "(iVar8 < (int)uVar17)" ( (binary_expression "iVar8 < (int)uVar17" identifier < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar8 = iVar8 + 1;\n                *pbVar10 = bVar13;\n                pbVar10 = (byte *)(token + iVar8);\n              }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = bVar13;" (assignment_expression "*pbVar10 = bVar13" (pointer_expression "*pbVar10" * identifier) = identifier) ;) (expression_statement "pbVar10 = (byte *)(token + iVar8);" (assignment_expression "pbVar10 = (byte *)(token + iVar8)" identifier = (cast_expression "(byte *)(token + iVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + iVar8)" ( (binary_expression "token + iVar8" identifier + identifier) )))) ;) })) (if_statement "if ((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))\n              break;" if (parenthesized_expression "((bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c))" ( (binary_expression "(bVar13 == 0x29) && (uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c)" (parenthesized_expression "(bVar13 == 0x29)" ( (binary_expression "bVar13 == 0x29" identifier == number_literal) )) && (parenthesized_expression "(uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c)" ( (comma_expression "uVar12 = (int)pbVar15 - (int)start, pbVar15[-1] != 0x5c" (assignment_expression "uVar12 = (int)pbVar15 - (int)start" identifier = (binary_expression "(int)pbVar15 - (int)start" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "pbVar15[-1] != 0x5c" (subscript_expression "pbVar15[-1]" identifier [ number_literal ]) != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (uVar17 <= (uint)((int)pbVar15 - (int)start)) goto LAB_00039418;" if (parenthesized_expression "(uVar17 <= (uint)((int)pbVar15 - (int)start))" ( (binary_expression "uVar17 <= (uint)((int)pbVar15 - (int)start)" identifier <= (call_expression "(uint)((int)pbVar15 - (int)start)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar15 - (int)start)" ( (binary_expression "(int)pbVar15 - (int)start" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar15;" (assignment_expression "bVar13 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (if_statement "if (bVar13 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) })) })) (if_statement "if (uVar17 <= uVar12) goto LAB_00039418;" if (parenthesized_expression "(uVar17 <= uVar12)" ( (binary_expression "uVar17 <= uVar12" identifier <= identifier) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "pbVar14 = pbVar15 + 1;" (assignment_expression "pbVar14 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = (uint)(char)*pbVar14;" (assignment_expression "uVar4 = (uint)(char)*pbVar14" identifier = (binary_expression "(uint)(char)*pbVar14" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = (uint)*pbVar14;" (assignment_expression "uVar12 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar16 = uVar12 * 2;" (assignment_expression "iVar16 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (if_statement "if (uVar4 == 0) goto LAB_0003929c;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (expression_statement "uVar11 = *(ushort *)(iVar5 + iVar16);" (assignment_expression "uVar11 = *(ushort *)(iVar5 + iVar16)" identifier = (pointer_expression "*(ushort *)(iVar5 + iVar16)" * (cast_expression "(ushort *)(iVar5 + iVar16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar16)" ( (binary_expression "iVar5 + iVar16" identifier + identifier) ))))) ;) })) (expression_statement "iVar16 = (uint)*pbVar15 << 1;" (assignment_expression "iVar16 = (uint)*pbVar15 << 1" identifier = (binary_expression "(uint)*pbVar15 << 1" (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) }) (else_clause "else if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" else (if_statement "if (pbVar15 < q) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(pbVar15 < q)" ( (binary_expression "pbVar15 < q" identifier < identifier) )) (compound_statement "{\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        } while (uVar4 != 0x2c);" do (compound_statement "{\n          if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }\n          pbVar14 = pbVar15 + 1;\n          if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar14;\n          pbVar15 = (byte *)q;\n          if ((byte *)q == pbVar14) goto LAB_000391cc;\n          iVar16 = 0x58;\n          pbVar15 = pbVar14;\n        }" { (if_statement "if (iVar5 < (int)(extent - 1)) {\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }" if (parenthesized_expression "(iVar5 < (int)(extent - 1))" ( (binary_expression "iVar5 < (int)(extent - 1)" identifier < (cast_expression "(int)(extent - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(extent - 1)" ( (binary_expression "extent - 1" identifier - number_literal) )))) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            *pbVar10 = (byte)uVar4;\n            pbVar10 = (byte *)(token + iVar5);\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar10 = (byte)uVar4;" (assignment_expression "*pbVar10 = (byte)uVar4" (pointer_expression "*pbVar10" * identifier) = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar10 = (byte *)(token + iVar5);" (assignment_expression "pbVar10 = (byte *)(token + iVar5)" identifier = (cast_expression "(byte *)(token + iVar5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + iVar5)" ( (binary_expression "token + iVar5" identifier + identifier) )))) ;) })) (expression_statement "pbVar14 = pbVar15 + 1;" (assignment_expression "pbVar14 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (if_statement "if (extent - 1 <= (uint)((int)pbVar15 - (int)start)) {\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }" if (parenthesized_expression "(extent - 1 <= (uint)((int)pbVar15 - (int)start))" ( (binary_expression "extent - 1 <= (uint)((int)pbVar15 - (int)start)" (binary_expression "extent - 1" identifier - number_literal) <= (call_expression "(uint)((int)pbVar15 - (int)start)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar15 - (int)start)" ( (binary_expression "(int)pbVar15 - (int)start" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            uVar4 = (uint)(char)*pbVar15;\n            goto LAB_000391cc;\n          }" { (expression_statement "uVar4 = (uint)(char)*pbVar15;" (assignment_expression "uVar4 = (uint)(char)*pbVar15" identifier = (binary_expression "(uint)(char)*pbVar15" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (goto_statement "goto LAB_000391cc;" goto statement_identifier ;) })) (expression_statement "uVar4 = (uint)(char)*pbVar14;" (assignment_expression "uVar4 = (uint)(char)*pbVar14" identifier = (binary_expression "(uint)(char)*pbVar14" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar15 = (byte *)q;" (assignment_expression "pbVar15 = (byte *)q" identifier = (cast_expression "(byte *)q" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((byte *)q == pbVar14) goto LAB_000391cc;" if (parenthesized_expression "((byte *)q == pbVar14)" ( (binary_expression "(byte *)q == pbVar14" (cast_expression "(byte *)q" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (goto_statement "goto LAB_000391cc;" goto statement_identifier ;)) (expression_statement "iVar16 = 0x58;" (assignment_expression "iVar16 = 0x58" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar14;" (assignment_expression "pbVar15 = pbVar14" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 != 0x2c)" ( (binary_expression "uVar4 != 0x2c" identifier != number_literal) )) ;) }) (else_clause "else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" else (compound_statement "{\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }" statement_identifier : (if_statement "if (uVar4 == 0x25) {\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }\n        else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }" if (parenthesized_expression "(uVar4 == 0x25)" ( (binary_expression "uVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n          if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }\n          iVar16 = (uint)pbVar15[1] << 1;\n          pbVar15 = pbVar15 + 1;\n        }" { (if_statement "if (iVar5 < (int)(extent - 1)) {\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }" if (parenthesized_expression "(iVar5 < (int)(extent - 1))" ( (binary_expression "iVar5 < (int)(extent - 1)" identifier < (cast_expression "(int)(extent - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(extent - 1)" ( (binary_expression "extent - 1" identifier - number_literal) )))) )) (compound_statement "{\n            *pbVar10 = 0x25;\n            pbVar10 = (byte *)(token + iVar5 + 1);\n          }" { (expression_statement "*pbVar10 = 0x25;" (assignment_expression "*pbVar10 = 0x25" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) (expression_statement "pbVar10 = (byte *)(token + iVar5 + 1);" (assignment_expression "pbVar10 = (byte *)(token + iVar5 + 1)" identifier = (cast_expression "(byte *)(token + iVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(token + iVar5 + 1)" ( (binary_expression "token + iVar5 + 1" (binary_expression "token + iVar5" identifier + identifier) + number_literal) )))) ;) })) (expression_statement "iVar16 = (uint)pbVar15[1] << 1;" (assignment_expression "iVar16 = (uint)pbVar15[1] << 1" identifier = (binary_expression "(uint)pbVar15[1] << 1" (cast_expression "(uint)pbVar15[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar15[1]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar16 = (uVar4 & 0xff) << 1;\n        }" else (compound_statement "{\n          iVar16 = (uVar4 & 0xff) << 1;\n        }" { (expression_statement "iVar16 = (uVar4 & 0xff) << 1;" (assignment_expression "iVar16 = (uVar4 & 0xff) << 1" identifier = (binary_expression "(uVar4 & 0xff) << 1" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal)) ;) })))) }))))))) }))) }))) (labeled_statement "LAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;" statement_identifier : (expression_statement "puVar1 = PTR_LocaleNCompare_003a961c;" (assignment_expression "puVar1 = PTR_LocaleNCompare_003a961c" identifier = identifier) ;)) (expression_statement "*pbVar10 = 0;" (assignment_expression "*pbVar10 = 0" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) (expression_statement "iVar5 = (*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5);" (assignment_expression "iVar5 = (*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5)" identifier = (call_expression "(*(code *)puVar1)(token,PTR_s_courses_003a88ec + -0x29a8,5)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(token,PTR_s_courses_003a88ec + -0x29a8,5)" ( identifier , (binary_expression "PTR_s_courses_003a88ec + -0x29a8" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));\n  }" if (parenthesized_expression "((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0))" ( (binary_expression "(iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" ( (comma_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strrchr_003a9650)(token,0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_003a9650)(token,0x29)" (parenthesized_expression "(*(code *)PTR_strrchr_003a9650)" ( (pointer_expression "*(code *)PTR_strrchr_003a9650" * (cast_expression "(code *)PTR_strrchr_003a9650" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(token,0x29)" ( identifier , number_literal ))))) , (comma_expression "puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar1 = PTR_memmove_003a8f50" identifier = identifier) , (binary_expression "puVar6 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n    *puVar6 = 0;\n    (*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));\n  }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token));" (call_expression "(*(code *)puVar1)(token,token + 5,puVar6 + (-4 - (int)token))" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(token,token + 5,puVar6 + (-4 - (int)token))" ( identifier , (binary_expression "token + 5" identifier + number_literal) , (binary_expression "puVar6 + (-4 - (int)token)" identifier + (parenthesized_expression "(-4 - (int)token)" ( (binary_expression "-4 - (int)token" number_literal - (cast_expression "(int)token" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) })) (expression_statement "uVar11 = *(ushort *)(*piVar3 + iVar16);" (assignment_expression "uVar11 = *(ushort *)(*piVar3 + iVar16)" identifier = (pointer_expression "*(ushort *)(*piVar3 + iVar16)" * (cast_expression "(ushort *)(*piVar3 + iVar16)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + iVar16)" ( (binary_expression "*piVar3 + iVar16" (pointer_expression "*piVar3" * identifier) + identifier) ))))) ;) (while_statement "while ((uVar11 & 0x20) != 0) {\n    pbVar15 = pbVar15 + 1;\n    uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);\n  }" while (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    pbVar15 = pbVar15 + 1;\n    uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);\n  }" { (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2);" (assignment_expression "uVar11 = *(ushort *)(*piVar3 + (uint)*pbVar15 * 2)" identifier = (pointer_expression "*(ushort *)(*piVar3 + (uint)*pbVar15 * 2)" * (cast_expression "(ushort *)(*piVar3 + (uint)*pbVar15 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + (uint)*pbVar15 * 2)" ( (binary_expression "*piVar3 + (uint)*pbVar15 * 2" (pointer_expression "*piVar3" * identifier) + (binary_expression "(uint)*pbVar15 * 2" (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) })) (if_statement "if (end != (char **)0x0) {\n    *end = (char *)pbVar15;\n  }" if (parenthesized_expression "(end != (char **)0x0)" ( (binary_expression "end != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *end = (char *)pbVar15;\n  }" { (expression_statement "*end = (char *)pbVar15;" (assignment_expression "*end = (char *)pbVar15" (pointer_expression "*end" * identifier) = (cast_expression "(char *)pbVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (local_2c == *(int *)puVar2) {\n    return (size_t)(pbVar15 + (1 - (int)start));\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (size_t)(pbVar15 + (1 - (int)start));\n  }" { (return_statement "return (size_t)(pbVar15 + (1 - (int)start));" return (cast_expression "(size_t)(pbVar15 + (1 - (int)start))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pbVar15 + (1 - (int)start))" ( (binary_expression "pbVar15 + (1 - (int)start)" identifier + (parenthesized_expression "(1 - (int)start)" ( (binary_expression "1 - (int)start" number_literal - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00039600:\n  sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0);" statement_identifier : (expression_statement "sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "sVar7 = (*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                    (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,0xbf,\n                     PTR_s_courses_003a88ec + -0x29a0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x29c0" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x2a48" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x29a0" identifier + number_literal) )))) ;)) (return_statement "return sVar7;" return identifier ;) (labeled_statement "LAB_00039418:\n  iVar16 = (uint)*pbVar15 << 1;" statement_identifier : (expression_statement "iVar16 = (uint)*pbVar15 << 1;" (assignment_expression "iVar16 = (uint)*pbVar15 << 1" identifier = (binary_expression "(uint)*pbVar15 << 1" (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;)) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })))
(translation_unit "byte * GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}\n\n" (function_definition "byte * GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}" type_identifier (pointer_declarator "* GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" * (function_declarator "GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" identifier (parameter_list "(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "ushort uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }" { (expression_statement "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x29e0" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x2a48" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x29a0" identifier + number_literal) ))))) ;) (return_statement "return pbVar14;" return identifier ;) })) (if_statement "if (param_4 == (byte *)0x0) goto LAB_00039600;" if (parenthesized_expression "(param_4 == (byte *)0x0)" ( (binary_expression "param_4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00039600;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_003a9434)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" * (cast_expression "(code *)PTR___ctype_b_loc_003a9434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pbVar14 = param_1;" (assignment_expression "pbVar14 = param_1" identifier = identifier) ;) (while_statement "while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }" { (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "iVar15 = (uint)bVar12 * 2;" (assignment_expression "iVar15 = (uint)bVar12 * 2" identifier = (binary_expression "(uint)bVar12 * 2" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (expression_statement "pbVar9 = param_4;" (assignment_expression "pbVar9 = param_4" identifier = identifier) ;) (if_statement "if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;" if (parenthesized_expression "((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar3 + iVar15) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + iVar15) & 0x20)" ( (binary_expression "*(ushort *)(*piVar3 + iVar15) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + iVar15)" * (cast_expression "(ushort *)(*piVar3 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + iVar15)" ( (binary_expression "*piVar3 + iVar15" (pointer_expression "*piVar3" * identifier) + identifier) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar12 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) })) (if_statement "if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(bVar12 == 0x27)" ( (binary_expression "bVar12 == 0x27" identifier == number_literal) )) (compound_statement "{\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }" { (labeled_statement "LAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" statement_identifier : (if_statement "if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" if (parenthesized_expression "(bVar12 == 0x27)" ( (binary_expression "bVar12 == 0x27" identifier == number_literal) )) (compound_statement "{\nLAB_0003942c:\n      bVar12 = 0x27;\n    }" { (labeled_statement "LAB_0003942c:\n      bVar12 = 0x27;" statement_identifier : (expression_statement "bVar12 = 0x27;" (assignment_expression "bVar12 = 0x27" identifier = number_literal) ;)) }) (else_clause "else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" else (if_statement "if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" if (parenthesized_expression "('\'' < (char)bVar12)" ( (binary_expression "'\'' < (char)bVar12" (char_literal "'\''" ' escape_sequence ') < (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" { (if_statement "if (bVar12 == 0x60) goto LAB_0003942c;" if (parenthesized_expression "(bVar12 == 0x60)" ( (binary_expression "bVar12 == 0x60" identifier == number_literal) )) (goto_statement "goto LAB_0003942c;" goto statement_identifier ;)) (if_statement "if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }" if (parenthesized_expression "(bVar12 == 0x7b)" ( (binary_expression "bVar12 == 0x7b" identifier == number_literal) )) (compound_statement "{\n        bVar12 = 0x7d;\n      }" { (expression_statement "bVar12 = 0x7d;" (assignment_expression "bVar12 = 0x7d" identifier = number_literal) ;) })) }))))) (expression_statement "bVar8 = pbVar14[1];" (assignment_expression "bVar8 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar15 = 0;\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" else (compound_statement "{\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);" do (compound_statement "{\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      }" { (if_statement "if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c))))" ( (binary_expression "(bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))" (parenthesized_expression "(bVar8 == 0x5c)" ( (binary_expression "bVar8 == 0x5c" identifier == number_literal) )) && (parenthesized_expression "((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))" ( (parenthesized_expression "(pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c))" ( (binary_expression "pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)" (binary_expression "pbVar14[1] == bVar12" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == identifier) || (parenthesized_expression "(pbVar14[1] == 0x5c)" ( (binary_expression "pbVar14[1] == 0x5c" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          pbVar14 = pbVar14 + 1;\n        }" { (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) (else_clause "else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" else (if_statement "if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "(bVar12 == bVar8)" ( (binary_expression "bVar12 == bVar8" identifier == identifier) )) (compound_statement "{\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" { (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = (uint)*pbVar13 << 1;" (assignment_expression "iVar15 = (uint)*pbVar13 << 1" identifier = (binary_expression "(uint)*pbVar13 << 1" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })))) (if_statement "if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }" if (parenthesized_expression "(iVar15 < (int)(param_3 - 1U))" ( (binary_expression "iVar15 < (int)(param_3 - 1U)" identifier < (cast_expression "(int)(param_3 - 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 1U)" ( (binary_expression "param_3 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = *pbVar14;" (assignment_expression "*pbVar9 = *pbVar14" (pointer_expression "*pbVar9" * identifier) = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar9 = param_4 + iVar15;" (assignment_expression "pbVar9 = param_4 + iVar15" identifier = (binary_expression "param_4 + iVar15" identifier + identifier)) ;) })) (if_statement "if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;" if (parenthesized_expression "(param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1))" ( (binary_expression "param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)" (binary_expression "param_3 - 1U" identifier - number_literal) <= (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar14 - (int)param_1)" ( (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "bVar8 = pbVar14[1];" (assignment_expression "bVar8 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" { (if_statement "if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" if (parenthesized_expression "((char)bVar12 < '(')" ( (binary_expression "(char)bVar12 < '('" (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'('" ' character ')) )) (compound_statement "{\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" { (if_statement "if (bVar12 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (if_statement "if (bVar12 != 0x22) goto LAB_00039140;" if (parenthesized_expression "(bVar12 != 0x22)" ( (binary_expression "bVar12 != 0x22" identifier != number_literal) )) (goto_statement "goto LAB_00039140;" goto statement_identifier ;)) (goto_statement "goto LAB_000391e4;" goto statement_identifier ;) })) (if_statement "if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;" if (parenthesized_expression "((bVar12 == 0x60) || (bVar12 == 0x7b))" ( (binary_expression "(bVar12 == 0x60) || (bVar12 == 0x7b)" (parenthesized_expression "(bVar12 == 0x60)" ( (binary_expression "bVar12 == 0x60" identifier == number_literal) )) || (parenthesized_expression "(bVar12 == 0x7b)" ( (binary_expression "bVar12 == 0x7b" identifier == number_literal) ))) )) (goto_statement "goto LAB_000391e4;" goto statement_identifier ;)) (if_statement "if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" if (parenthesized_expression "(bVar12 == 0x2f)" ( (binary_expression "bVar12 == 0x2f" identifier == number_literal) )) (compound_statement "{\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }" { (expression_statement "bVar12 = pbVar14[1];" (assignment_expression "bVar12 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" if (parenthesized_expression "(param_3 + -1 < 1)" ( (binary_expression "param_3 + -1 < 1" (binary_expression "param_3 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }" { (if_statement "if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;" if (parenthesized_expression "((bVar12 != 0x3e) && (bVar12 != 0x2f))" ( (binary_expression "(bVar12 != 0x3e) && (bVar12 != 0x2f)" (parenthesized_expression "(bVar12 != 0x3e)" ( (binary_expression "bVar12 != 0x3e" identifier != number_literal) )) && (parenthesized_expression "(bVar12 != 0x2f)" ( (binary_expression "bVar12 != 0x2f" identifier != number_literal) ))) )) (goto_statement "goto LAB_00039124;" goto statement_identifier ;)) }) (else_clause "else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" else (compound_statement "{\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" { (expression_statement "*param_4 = 0x2f;" (assignment_expression "*param_4 = 0x2f" (pointer_expression "*param_4" * identifier) = number_literal) ;) (expression_statement "pbVar9 = param_4 + 1;" (assignment_expression "pbVar9 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }" if (parenthesized_expression "((bVar12 != 0x3e) && (bVar12 != 0x2f))" ( (binary_expression "(bVar12 != 0x3e) && (bVar12 != 0x2f)" (parenthesized_expression "(bVar12 != 0x3e)" ( (binary_expression "bVar12 != 0x3e" identifier != number_literal) )) && (parenthesized_expression "(bVar12 != 0x2f)" ( (binary_expression "bVar12 != 0x2f" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }" { (labeled_statement "LAB_00039124:\n          iVar15 = (uint)bVar12 << 1;" statement_identifier : (expression_statement "iVar15 = (uint)bVar12 << 1;" (assignment_expression "iVar15 = (uint)bVar12 << 1" identifier = (binary_expression "(uint)bVar12 << 1" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;)) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })) (if_statement "if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }" if (parenthesized_expression "(param_3 + -1 != 1)" ( (binary_expression "param_3 + -1 != 1" (binary_expression "param_3 + -1" identifier + number_literal) != number_literal) )) (compound_statement "{\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }" { (expression_statement "param_4[1] = bVar12;" (assignment_expression "param_4[1] = bVar12" (subscript_expression "param_4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar9 = param_4 + 2;" (assignment_expression "pbVar9 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) })) }))) (expression_statement "iVar15 = (uint)pbVar14[2] << 1;" (assignment_expression "iVar15 = (uint)pbVar14[2] << 1" identifier = (binary_expression "(uint)pbVar14[2] << 1" (cast_expression "(uint)pbVar14[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar14[2]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 2;" (assignment_expression "pbVar14 = pbVar14 + 2" identifier = (binary_expression "pbVar14 + 2" identifier + number_literal)) ;) }) (else_clause "else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" else (compound_statement "{\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" { (labeled_statement "LAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);" statement_identifier : (expression_statement "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);" (call_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)" ( (pointer_expression "*(code *)PTR_InterpretLocaleValue_003a9768" * (cast_expression "(code *)PTR_InterpretLocaleValue_003a9768" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar14,&local_30)" ( identifier , (pointer_expression "&local_30" & identifier) ))) ;)) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "uVar4 = (uint)(char)bVar12;" (assignment_expression "uVar4 = (uint)(char)bVar12" identifier = (cast_expression "(uint)(char)bVar12" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)bVar12" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(local_30 == pbVar14)" ( (binary_expression "local_30 == pbVar14" identifier == identifier) )) (compound_statement "{\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }" { (expression_statement "uVar11 = (uint)bVar12;" (assignment_expression "uVar11 = (uint)bVar12" identifier = (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar15 = uVar11 * 2;" (assignment_expression "iVar15 = uVar11 * 2" identifier = (binary_expression "uVar11 * 2" identifier * number_literal)) ;) (if_statement "if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }" { (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar10 = *(ushort *)(iVar5 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + iVar15)" identifier = (pointer_expression "*(ushort *)(iVar5 + iVar15)" * (cast_expression "(ushort *)(iVar5 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar15)" ( (binary_expression "iVar5 + iVar15" identifier + identifier) ))))) ;) (if_statement "if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;" if (parenthesized_expression "(((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0))))" ( (binary_expression "((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))" (parenthesized_expression "((uVar10 & 4) != 0)" ( (binary_expression "(uVar10 & 4) != 0" (parenthesized_expression "(uVar10 & 4)" ( (binary_expression "uVar10 & 4" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))" ( (parenthesized_expression "((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0))" ( (binary_expression "(uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)" (binary_expression "(uVar11 - 0x23 & 0xff) < 0x1a" (parenthesized_expression "(uVar11 - 0x23 & 0xff)" ( (binary_expression "uVar11 - 0x23 & 0xff" (binary_expression "uVar11 - 0x23" identifier - number_literal) & number_literal) )) < number_literal) && (parenthesized_expression "((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f)" ( (binary_expression "(0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f" (parenthesized_expression "(0x2001001U >> (uVar11 - 0x23 & 0x1f))" ( (binary_expression "0x2001001U >> (uVar11 - 0x23 & 0x1f)" number_literal >> (parenthesized_expression "(uVar11 - 0x23 & 0x1f)" ( (binary_expression "uVar11 - 0x23 & 0x1f" (binary_expression "uVar11 - 0x23" identifier - number_literal) & number_literal) ))) )) << number_literal) ))) < number_literal) ))) )) ))) )) (goto_statement "goto LAB_0003947c;" goto statement_identifier ;)) (labeled_statement "LAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" statement_identifier : (if_statement "if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" if (parenthesized_expression "(0 < param_3 + -1)" ( (binary_expression "0 < param_3 + -1" number_literal < (binary_expression "param_3 + -1" identifier + number_literal)) )) (compound_statement "{\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" { (expression_statement "*param_4 = bVar12;" (assignment_expression "*param_4 = bVar12" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "pbVar9 = param_4 + 1;" (assignment_expression "pbVar9 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) }))) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = (uint)*pbVar13 << 1;" (assignment_expression "iVar15 = (uint)*pbVar13 << 1" identifier = (binary_expression "(uint)*pbVar13 << 1" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) })) }) (else_clause "else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" else (if_statement "if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(uVar4 == 0x2c)" ( (binary_expression "uVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }" { (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar10 = *(ushort *)(iVar5 + 0x58);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + 0x58)" identifier = (pointer_expression "*(ushort *)(iVar5 + 0x58)" * (cast_expression "(ushort *)(iVar5 + 0x58)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x58)" ( (binary_expression "iVar5 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = 0x2c;" (assignment_expression "uVar11 = 0x2c" identifier = number_literal) ;) (if_statement "if ((uVar10 & 4) == 0) goto LAB_000393f8;" if (parenthesized_expression "((uVar10 & 4) == 0)" ( (binary_expression "(uVar10 & 4) == 0" (parenthesized_expression "(uVar10 & 4)" ( (binary_expression "uVar10 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000393f8;" goto statement_identifier ;)) (labeled_statement "LAB_0003947c:\n        iVar7 = 0;" statement_identifier : (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;)) (expression_statement "uVar16 = param_3 - 1;" (assignment_expression "uVar16 = param_3 - 1" identifier = (binary_expression "param_3 - 1" identifier - number_literal)) ;) (while_statement "while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }" while (parenthesized_expression "(((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c)))))" ( (parenthesized_expression "((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))" ( (binary_expression "(((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c)))" (parenthesized_expression "(((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c))" ( (binary_expression "((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)" (parenthesized_expression "((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)))))" ( (binary_expression "(uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))" (binary_expression "(uVar10 & 0x20) == 0" (parenthesized_expression "(uVar10 & 0x20)" ( (binary_expression "uVar10 & 0x20" identifier & number_literal) )) == number_literal) && (parenthesized_expression "((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))" ( (parenthesized_expression "(0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)))" ( (binary_expression "0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))" (binary_expression "0x11 < (uVar11 - 0x2c & 0xff)" number_literal < (parenthesized_expression "(uVar11 - 0x2c & 0xff)" ( (binary_expression "uVar11 - 0x2c & 0xff" (binary_expression "uVar11 - 0x2c" identifier - number_literal) & number_literal) ))) || (parenthesized_expression "(-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))" ( (binary_expression "-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" number_literal < (cast_expression "(int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" ( (binary_expression "(0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f" (parenthesized_expression "(0x2c001U >> (uVar11 - 0x2c & 0x1f))" ( (binary_expression "0x2c001U >> (uVar11 - 0x2c & 0x1f)" number_literal >> (parenthesized_expression "(uVar11 - 0x2c & 0x1f)" ( (binary_expression "uVar11 - 0x2c & 0x1f" (binary_expression "uVar11 - 0x2c" identifier - number_literal) & number_literal) ))) )) << number_literal) )))) ))) )) ))) )) || (parenthesized_expression "(pbVar14[-1] == 0x5c)" ( (binary_expression "pbVar14[-1] == 0x5c" (subscript_expression "pbVar14[-1]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((iVar7 < 1 || (uVar4 != 0x3c)))" ( (parenthesized_expression "(iVar7 < 1 || (uVar4 != 0x3c))" ( (binary_expression "iVar7 < 1 || (uVar4 != 0x3c)" (binary_expression "iVar7 < 1" identifier < number_literal) || (parenthesized_expression "(uVar4 != 0x3c)" ( (binary_expression "uVar4 != 0x3c" identifier != number_literal) ))) )) ))) )) )) (compound_statement "{\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }" { (if_statement "if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }" if (parenthesized_expression "(iVar7 < (int)uVar16)" ( (binary_expression "iVar7 < (int)uVar16" identifier < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = (byte)uVar4;" (assignment_expression "*pbVar9 = (byte)uVar4" (pointer_expression "*pbVar9" * identifier) = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar9 = param_4 + iVar7;" (assignment_expression "pbVar9 = param_4 + iVar7" identifier = (binary_expression "param_4 + iVar7" identifier + identifier)) ;) })) (if_statement "if (uVar4 == 0x3e) goto LAB_00039418;" if (parenthesized_expression "(uVar4 == 0x3e)" ( (binary_expression "uVar4 == 0x3e" identifier == number_literal) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "uVar11 = (int)pbVar14 - (int)param_1;" (assignment_expression "uVar11 = (int)pbVar14 - (int)param_1" identifier = (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }" if (parenthesized_expression "(uVar4 == 0x28)" ( (binary_expression "uVar4 == 0x28" identifier == number_literal) )) (compound_statement "{\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }" { (expression_statement "bVar12 = pbVar14[1];" (assignment_expression "bVar12 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })) (while_statement "while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }" { (if_statement "if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }" if (parenthesized_expression "(iVar7 < (int)uVar16)" ( (binary_expression "iVar7 < (int)uVar16" identifier < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = bVar12;" (assignment_expression "*pbVar9 = bVar12" (pointer_expression "*pbVar9" * identifier) = identifier) ;) (expression_statement "pbVar9 = param_4 + iVar7;" (assignment_expression "pbVar9 = param_4 + iVar7" identifier = (binary_expression "param_4 + iVar7" identifier + identifier)) ;) })) (if_statement "if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;" if (parenthesized_expression "((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))" ( (binary_expression "(bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c)" (parenthesized_expression "(bVar12 == 0x29)" ( (binary_expression "bVar12 == 0x29" identifier == number_literal) )) && (parenthesized_expression "(uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c)" ( (comma_expression "uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c" (assignment_expression "uVar11 = (int)pbVar14 - (int)param_1" identifier = (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "pbVar14[-1] != 0x5c" (subscript_expression "pbVar14[-1]" identifier [ number_literal ]) != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;" if (parenthesized_expression "(uVar16 <= (uint)((int)pbVar14 - (int)param_1))" ( (binary_expression "uVar16 <= (uint)((int)pbVar14 - (int)param_1)" identifier <= (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar14 - (int)param_1)" ( (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (bVar12 == 0) goto LAB_0003929c;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) })) })) (if_statement "if (uVar16 <= uVar11) goto LAB_00039418;" if (parenthesized_expression "(uVar16 <= uVar11)" ( (binary_expression "uVar16 <= uVar11" identifier <= identifier) )) (goto_statement "goto LAB_00039418;" goto statement_identifier ;)) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = (uint)(char)*pbVar13;" (assignment_expression "uVar4 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = (uint)*pbVar13;" (assignment_expression "uVar11 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar15 = uVar11 * 2;" (assignment_expression "iVar15 = uVar11 * 2" identifier = (binary_expression "uVar11 * 2" identifier * number_literal)) ;) (if_statement "if (uVar4 == 0) goto LAB_0003929c;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;)) (expression_statement "uVar10 = *(ushort *)(iVar5 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + iVar15)" identifier = (pointer_expression "*(ushort *)(iVar5 + iVar15)" * (cast_expression "(ushort *)(iVar5 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar15)" ( (binary_expression "iVar5 + iVar15" identifier + identifier) ))))) ;) })) (expression_statement "iVar15 = (uint)*pbVar14 << 1;" (assignment_expression "iVar15 = (uint)*pbVar14 << 1" identifier = (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;) }) (else_clause "else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" else (if_statement "if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" if (parenthesized_expression "(pbVar14 < local_30)" ( (binary_expression "pbVar14 < local_30" identifier < identifier) )) (compound_statement "{\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);" do (compound_statement "{\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        }" { (if_statement "if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }" if (parenthesized_expression "(iVar5 < (int)(param_3 - 1U))" ( (binary_expression "iVar5 < (int)(param_3 - 1U)" identifier < (cast_expression "(int)(param_3 - 1U)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_3 - 1U)" ( (binary_expression "param_3 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = (byte)uVar4;" (assignment_expression "*pbVar9 = (byte)uVar4" (pointer_expression "*pbVar9" * identifier) = (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar9 = param_4 + iVar5;" (assignment_expression "pbVar9 = param_4 + iVar5" identifier = (binary_expression "param_4 + iVar5" identifier + identifier)) ;) })) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (if_statement "if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }" if (parenthesized_expression "(param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1))" ( (binary_expression "param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)" (binary_expression "param_3 - 1U" identifier - number_literal) <= (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar14 - (int)param_1)" ( (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }" { (expression_statement "uVar4 = (uint)(char)*pbVar14;" (assignment_expression "uVar4 = (uint)(char)*pbVar14" identifier = (binary_expression "(uint)(char)*pbVar14" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (goto_statement "goto LAB_000391cc;" goto statement_identifier ;) })) (expression_statement "uVar4 = (uint)(char)*pbVar13;" (assignment_expression "uVar4 = (uint)(char)*pbVar13" identifier = (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar14 = local_30;" (assignment_expression "pbVar14 = local_30" identifier = identifier) ;) (if_statement "if (local_30 == pbVar13) goto LAB_000391cc;" if (parenthesized_expression "(local_30 == pbVar13)" ( (binary_expression "local_30 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_000391cc;" goto statement_identifier ;)) (expression_statement "iVar15 = 0x58;" (assignment_expression "iVar15 = 0x58" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 != 0x2c)" ( (binary_expression "uVar4 != 0x2c" identifier != number_literal) )) ;) }) (else_clause "else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" else (compound_statement "{\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" statement_identifier : (if_statement "if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" if (parenthesized_expression "(uVar4 == 0x25)" ( (binary_expression "uVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }" { (if_statement "if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }" if (parenthesized_expression "(iVar5 < param_3 + -1)" ( (binary_expression "iVar5 < param_3 + -1" identifier < (binary_expression "param_3 + -1" identifier + number_literal)) )) (compound_statement "{\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }" { (expression_statement "*pbVar9 = 0x25;" (assignment_expression "*pbVar9 = 0x25" (pointer_expression "*pbVar9" * identifier) = number_literal) ;) (expression_statement "pbVar9 = param_4 + iVar5 + 1;" (assignment_expression "pbVar9 = param_4 + iVar5 + 1" identifier = (binary_expression "param_4 + iVar5 + 1" (binary_expression "param_4 + iVar5" identifier + identifier) + number_literal)) ;) })) (expression_statement "iVar15 = (uint)pbVar14[1] << 1;" (assignment_expression "iVar15 = (uint)pbVar14[1] << 1" identifier = (binary_expression "(uint)pbVar14[1] << 1" (cast_expression "(uint)pbVar14[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar14[1]" identifier [ number_literal ])) << number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" else (compound_statement "{\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" { (expression_statement "iVar15 = (uVar4 & 0xff) << 1;" (assignment_expression "iVar15 = (uVar4 & 0xff) << 1" identifier = (binary_expression "(uVar4 & 0xff) << 1" (parenthesized_expression "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) )) << number_literal)) ;) })))) }))))))) }))) }))) (labeled_statement "LAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;" statement_identifier : (expression_statement "puVar1 = PTR_LocaleNCompare_003a961c;" (assignment_expression "puVar1 = PTR_LocaleNCompare_003a961c" identifier = identifier) ;)) (expression_statement "*pbVar9 = 0;" (assignment_expression "*pbVar9 = 0" (pointer_expression "*pbVar9" * identifier) = number_literal) ;) (expression_statement "iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);" (assignment_expression "iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" identifier = (call_expression "(*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" ( identifier , (binary_expression "PTR_s_courses_003a88ec + -0x29a8" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }" if (parenthesized_expression "((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0))" ( (binary_expression "(iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" ( (comma_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" (parenthesized_expression "(*(code *)PTR_strrchr_003a9650)" ( (pointer_expression "*(code *)PTR_strrchr_003a9650" * (cast_expression "(code *)PTR_strrchr_003a9650" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,0x29)" ( identifier , number_literal ))))) , (comma_expression "puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar1 = PTR_memmove_003a8f50" identifier = identifier) , (binary_expression "puVar6 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));" (call_expression "(*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4))" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4))" ( identifier , (binary_expression "param_4 + 5" identifier + number_literal) , (binary_expression "puVar6 + (-4 - (int)param_4)" identifier + (parenthesized_expression "(-4 - (int)param_4)" ( (binary_expression "-4 - (int)param_4" number_literal - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) ;) })) (expression_statement "uVar10 = *(ushort *)(*piVar3 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(*piVar3 + iVar15)" identifier = (pointer_expression "*(ushort *)(*piVar3 + iVar15)" * (cast_expression "(ushort *)(*piVar3 + iVar15)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + iVar15)" ( (binary_expression "*piVar3 + iVar15" (pointer_expression "*piVar3" * identifier) + identifier) ))))) ;) (while_statement "while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }" while (parenthesized_expression "((uVar10 & 0x20) != 0)" ( (binary_expression "(uVar10 & 0x20) != 0" (parenthesized_expression "(uVar10 & 0x20)" ( (binary_expression "uVar10 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }" { (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);" (assignment_expression "uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" identifier = (pointer_expression "*(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" * (cast_expression "(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + (uint)*pbVar14 * 2)" ( (binary_expression "*piVar3 + (uint)*pbVar14 * 2" (pointer_expression "*piVar3" * identifier) + (binary_expression "(uint)*pbVar14 * 2" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) })) (if_statement "if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }" if (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_2 = pbVar14;\n  }" { (expression_statement "*param_2 = pbVar14;" (assignment_expression "*param_2 = pbVar14" (pointer_expression "*param_2" * identifier) = identifier) ;) })) (if_statement "if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar14 + (1 - (int)param_1);\n  }" { (return_statement "return pbVar14 + (1 - (int)param_1);" return (binary_expression "pbVar14 + (1 - (int)param_1)" identifier + (parenthesized_expression "(1 - (int)param_1)" ( (binary_expression "1 - (int)param_1" number_literal - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);" statement_identifier : (expression_statement "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" ( (binary_expression "PTR_s_courses_003a88ec + -0x29c0" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x2a48" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x29a0" identifier + number_literal) ))))) ;)) (return_statement "return pbVar14;" return identifier ;) (labeled_statement "LAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;" statement_identifier : (expression_statement "iVar15 = (uint)*pbVar14 << 1;" (assignment_expression "iVar15 = (uint)*pbVar14 << 1" identifier = (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) ;)) (goto_statement "goto LAB_0003929c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) + IDENT) )))) & LIT) )) == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (char_literal ' escape_sequence ') < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT)) ;) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) << LIT) ))) < LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) << LIT) )))) ))) )) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT < LIT) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_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 == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) ;) })))) }))))))) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (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 , LIT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;)) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT)) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "byte * GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}" (type_identifier "byte") (pointer_declarator "* GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" (* "*") (function_declarator "GetNextToken(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" (identifier "GetNextToken") (parameter_list "(byte *param_1,undefined4 *param_2,int param_3,byte *param_4)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int *piVar3;\n  uint uVar4;\n  int iVar5;\n  undefined1 *puVar6;\n  int iVar7;\n  byte bVar8;\n  byte *pbVar9;\n  ushort uVar10;\n  uint uVar11;\n  byte bVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  uint uVar16;\n  byte *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_2c = *(int *)PTR___stack_chk_guard_003a9230;\n  if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }\n  if (param_4 == (byte *)0x0) goto LAB_00039600;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();\n  pbVar14 = param_1;\n  while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }\n  if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }\nLAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;\n  *pbVar9 = 0;\n  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);\n  if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }\n  uVar10 = *(ushort *)(*piVar3 + iVar15);\n  while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }\n  if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }\n  if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }\n  (*(code *)PTR___stack_chk_fail_003a9064)();\nLAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);\n  return pbVar14;\nLAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;\n  goto LAB_0003929c;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "ushort uVar10;" (type_identifier "ushort") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte *local_30;" (type_identifier "byte") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (if_statement "if (param_1 == (byte *)0x0) {\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);\n    return pbVar14;\n  }" ({ "{") (expression_statement "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,\n                                 0xbe,PTR_s_courses_003a88ec + -0x29a0)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x29e0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x29e0")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x2a48" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x2a48")) (, ",") (number_literal "0xbe") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x29a0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x29a0")) () ")"))))) (; ";")) (return_statement "return pbVar14;" (return "return") (identifier "pbVar14") (; ";")) (} "}"))) (if_statement "if (param_4 == (byte *)0x0) goto LAB_00039600;" (if "if") (parenthesized_expression "(param_4 == (byte *)0x0)" (( "(") (binary_expression "param_4 == (byte *)0x0" (identifier "param_4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00039600;" (goto "goto") (statement_identifier "LAB_00039600") (; ";"))) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)()" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_003a9434)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_003a9434)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_003a9434)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_003a9434" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_003a9434" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_003a9434"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pbVar14 = param_1;" (assignment_expression "pbVar14 = param_1" (identifier "pbVar14") (= "=") (identifier "param_1")) (; ";")) (while_statement "while( true ) {\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    bVar12 = *pbVar14;\n    iVar15 = (uint)bVar12 * 2;\n    pbVar9 = param_4;\n    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;\n    if (bVar12 == 0) goto LAB_0003929c;\n    pbVar14 = pbVar14 + 1;\n  }" ({ "{") (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" (identifier "bVar12") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "iVar15 = (uint)bVar12 * 2;" (assignment_expression "iVar15 = (uint)bVar12 * 2" (identifier "iVar15") (= "=") (binary_expression "(uint)bVar12 * 2" (cast_expression "(uint)bVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar12")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "pbVar9 = param_4;" (assignment_expression "pbVar9 = param_4" (identifier "pbVar9") (= "=") (identifier "param_4")) (; ";")) (if_statement "if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar3 + iVar15) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar3 + iVar15) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar3 + iVar15) & 0x20" (pointer_expression "*(ushort *)(*piVar3 + iVar15)" (* "*") (cast_expression "(ushort *)(*piVar3 + iVar15)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + iVar15)" (( "(") (binary_expression "*piVar3 + iVar15" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (identifier "iVar15")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (bVar12 == 0) goto LAB_0003929c;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (bVar12 == 0x27) {\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }\n  else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar12 == 0x27)" (( "(") (binary_expression "bVar12 == 0x27" (identifier "bVar12") (== "==") (number_literal "0x27")) () ")")) (compound_statement "{\nLAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }\n    bVar8 = pbVar14[1];\n    pbVar14 = pbVar14 + 1;\n    if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }\n  }" ({ "{") (labeled_statement "LAB_000391e4:\n    if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" (statement_identifier "LAB_000391e4") (: ":") (if_statement "if (bVar12 == 0x27) {\nLAB_0003942c:\n      bVar12 = 0x27;\n    }\n    else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" (if "if") (parenthesized_expression "(bVar12 == 0x27)" (( "(") (binary_expression "bVar12 == 0x27" (identifier "bVar12") (== "==") (number_literal "0x27")) () ")")) (compound_statement "{\nLAB_0003942c:\n      bVar12 = 0x27;\n    }" ({ "{") (labeled_statement "LAB_0003942c:\n      bVar12 = 0x27;" (statement_identifier "LAB_0003942c") (: ":") (expression_statement "bVar12 = 0x27;" (assignment_expression "bVar12 = 0x27" (identifier "bVar12") (= "=") (number_literal "0x27")) (; ";"))) (} "}")) (else_clause "else if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" (else "else") (if_statement "if ('\'' < (char)bVar12) {\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" (if "if") (parenthesized_expression "('\'' < (char)bVar12)" (( "(") (binary_expression "'\'' < (char)bVar12" (char_literal "'\''" (' "'") (escape_sequence "\'") (' "'")) (< "<") (cast_expression "(char)bVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar12"))) () ")")) (compound_statement "{\n      if (bVar12 == 0x60) goto LAB_0003942c;\n      if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }\n    }" ({ "{") (if_statement "if (bVar12 == 0x60) goto LAB_0003942c;" (if "if") (parenthesized_expression "(bVar12 == 0x60)" (( "(") (binary_expression "bVar12 == 0x60" (identifier "bVar12") (== "==") (number_literal "0x60")) () ")")) (goto_statement "goto LAB_0003942c;" (goto "goto") (statement_identifier "LAB_0003942c") (; ";"))) (if_statement "if (bVar12 == 0x7b) {\n        bVar12 = 0x7d;\n      }" (if "if") (parenthesized_expression "(bVar12 == 0x7b)" (( "(") (binary_expression "bVar12 == 0x7b" (identifier "bVar12") (== "==") (number_literal "0x7b")) () ")")) (compound_statement "{\n        bVar12 = 0x7d;\n      }" ({ "{") (expression_statement "bVar12 = 0x7d;" (assignment_expression "bVar12 = 0x7d" (identifier "bVar12") (= "=") (number_literal "0x7d")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "bVar8 = pbVar14[1];" (assignment_expression "bVar8 = pbVar14[1]" (identifier "bVar8") (= "=") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar8 == 0) {\n      iVar15 = 0;\n    }\n    else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar15 = 0;\n    }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" (else "else") (compound_statement "{\n      iVar15 = 0;\n      do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);\n      iVar15 = 0;\n    }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      } while (bVar8 != 0);" (do "do") (compound_statement "{\n        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }\n        if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }\n        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n        bVar8 = pbVar14[1];\n        pbVar14 = pbVar14 + 1;\n      }" ({ "{") (if_statement "if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {\n          pbVar14 = pbVar14 + 1;\n        }\n        else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" (if "if") (parenthesized_expression "((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c))))" (( "(") (binary_expression "(bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))" (parenthesized_expression "(bVar8 == 0x5c)" (( "(") (binary_expression "bVar8 == 0x5c" (identifier "bVar8") (== "==") (number_literal "0x5c")) () ")")) (&& "&&") (parenthesized_expression "((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))" (( "(") (parenthesized_expression "(pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c))" (( "(") (binary_expression "pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)" (binary_expression "pbVar14[1] == bVar12" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "bVar12")) (|| "||") (parenthesized_expression "(pbVar14[1] == 0x5c)" (( "(") (binary_expression "pbVar14[1] == 0x5c" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5c")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          pbVar14 = pbVar14 + 1;\n        }" ({ "{") (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" (else "else") (if_statement "if (bVar12 == bVar8) {\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" (if "if") (parenthesized_expression "(bVar12 == bVar8)" (( "(") (binary_expression "bVar12 == bVar8" (identifier "bVar12") (== "==") (identifier "bVar8")) () ")")) (compound_statement "{\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n          goto LAB_0003929c;\n        }" ({ "{") (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar15 = (uint)*pbVar13 << 1;" (assignment_expression "iVar15 = (uint)*pbVar13 << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)*pbVar13 << 1" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13")) (<< "<<") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";")) (} "}"))))) (if_statement "if (iVar15 < (int)(param_3 - 1U)) {\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }" (if "if") (parenthesized_expression "(iVar15 < (int)(param_3 - 1U))" (( "(") (binary_expression "iVar15 < (int)(param_3 - 1U)" (identifier "iVar15") (< "<") (cast_expression "(int)(param_3 - 1U)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 - 1U)" (( "(") (binary_expression "param_3 - 1U" (identifier "param_3") (- "-") (number_literal "1U")) () ")")))) () ")")) (compound_statement "{\n          iVar15 = iVar15 + 1;\n          *pbVar9 = *pbVar14;\n          pbVar9 = param_4 + iVar15;\n        }" ({ "{") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar9 = *pbVar14;" (assignment_expression "*pbVar9 = *pbVar14" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar9 = param_4 + iVar15;" (assignment_expression "pbVar9 = param_4 + iVar15" (identifier "pbVar9") (= "=") (binary_expression "param_4 + iVar15" (identifier "param_4") (+ "+") (identifier "iVar15"))) (; ";")) (} "}"))) (if_statement "if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;" (if "if") (parenthesized_expression "(param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1))" (( "(") (binary_expression "param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)" (binary_expression "param_3 - 1U" (identifier "param_3") (- "-") (number_literal "1U")) (<= "<=") (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar14 - (int)param_1)" (( "(") (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) () ")")) (goto_statement "goto LAB_00039418;" (goto "goto") (statement_identifier "LAB_00039418") (; ";"))) (expression_statement "bVar8 = pbVar14[1];" (assignment_expression "bVar8 = pbVar14[1]" (identifier "bVar8") (= "=") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }\n    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;\n    if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if ((char)bVar12 < '(') {\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" (if "if") (parenthesized_expression "((char)bVar12 < '(')" (( "(") (binary_expression "(char)bVar12 < '('" (cast_expression "(char)bVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar12")) (< "<") (char_literal "'('" (' "'") (character "(") (' "'"))) () ")")) (compound_statement "{\n      if (bVar12 == 0) goto LAB_0003929c;\n      if (bVar12 != 0x22) goto LAB_00039140;\n      goto LAB_000391e4;\n    }" ({ "{") (if_statement "if (bVar12 == 0) goto LAB_0003929c;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";"))) (if_statement "if (bVar12 != 0x22) goto LAB_00039140;" (if "if") (parenthesized_expression "(bVar12 != 0x22)" (( "(") (binary_expression "bVar12 != 0x22" (identifier "bVar12") (!= "!=") (number_literal "0x22")) () ")")) (goto_statement "goto LAB_00039140;" (goto "goto") (statement_identifier "LAB_00039140") (; ";"))) (goto_statement "goto LAB_000391e4;" (goto "goto") (statement_identifier "LAB_000391e4") (; ";")) (} "}"))) (if_statement "if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;" (if "if") (parenthesized_expression "((bVar12 == 0x60) || (bVar12 == 0x7b))" (( "(") (binary_expression "(bVar12 == 0x60) || (bVar12 == 0x7b)" (parenthesized_expression "(bVar12 == 0x60)" (( "(") (binary_expression "bVar12 == 0x60" (identifier "bVar12") (== "==") (number_literal "0x60")) () ")")) (|| "||") (parenthesized_expression "(bVar12 == 0x7b)" (( "(") (binary_expression "bVar12 == 0x7b" (identifier "bVar12") (== "==") (number_literal "0x7b")) () ")"))) () ")")) (goto_statement "goto LAB_000391e4;" (goto "goto") (statement_identifier "LAB_000391e4") (; ";"))) (if_statement "if (bVar12 == 0x2f) {\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }\n    else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(bVar12 == 0x2f)" (( "(") (binary_expression "bVar12 == 0x2f" (identifier "bVar12") (== "==") (number_literal "0x2f")) () ")")) (compound_statement "{\n      bVar12 = pbVar14[1];\n      if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }\n      iVar15 = (uint)pbVar14[2] << 1;\n      pbVar14 = pbVar14 + 2;\n    }" ({ "{") (expression_statement "bVar12 = pbVar14[1];" (assignment_expression "bVar12 = pbVar14[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (param_3 + -1 < 1) {\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }\n      else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" (if "if") (parenthesized_expression "(param_3 + -1 < 1)" (( "(") (binary_expression "param_3 + -1 < 1" (binary_expression "param_3 + -1" (identifier "param_3") (+ "+") (number_literal "-1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;\n      }" ({ "{") (if_statement "if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;" (if "if") (parenthesized_expression "((bVar12 != 0x3e) && (bVar12 != 0x2f))" (( "(") (binary_expression "(bVar12 != 0x3e) && (bVar12 != 0x2f)" (parenthesized_expression "(bVar12 != 0x3e)" (( "(") (binary_expression "bVar12 != 0x3e" (identifier "bVar12") (!= "!=") (number_literal "0x3e")) () ")")) (&& "&&") (parenthesized_expression "(bVar12 != 0x2f)" (( "(") (binary_expression "bVar12 != 0x2f" (identifier "bVar12") (!= "!=") (number_literal "0x2f")) () ")"))) () ")")) (goto_statement "goto LAB_00039124;" (goto "goto") (statement_identifier "LAB_00039124") (; ";"))) (} "}")) (else_clause "else {\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" (else "else") (compound_statement "{\n        *param_4 = 0x2f;\n        pbVar9 = param_4 + 1;\n        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }\n        if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }\n      }" ({ "{") (expression_statement "*param_4 = 0x2f;" (assignment_expression "*param_4 = 0x2f" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "pbVar9 = param_4 + 1;" (assignment_expression "pbVar9 = param_4 + 1" (identifier "pbVar9") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }" (if "if") (parenthesized_expression "((bVar12 != 0x3e) && (bVar12 != 0x2f))" (( "(") (binary_expression "(bVar12 != 0x3e) && (bVar12 != 0x2f)" (parenthesized_expression "(bVar12 != 0x3e)" (( "(") (binary_expression "bVar12 != 0x3e" (identifier "bVar12") (!= "!=") (number_literal "0x3e")) () ")")) (&& "&&") (parenthesized_expression "(bVar12 != 0x2f)" (( "(") (binary_expression "bVar12 != 0x2f" (identifier "bVar12") (!= "!=") (number_literal "0x2f")) () ")"))) () ")")) (compound_statement "{\nLAB_00039124:\n          iVar15 = (uint)bVar12 << 1;\n          pbVar14 = pbVar14 + 1;\n          goto LAB_0003929c;\n        }" ({ "{") (labeled_statement "LAB_00039124:\n          iVar15 = (uint)bVar12 << 1;" (statement_identifier "LAB_00039124") (: ":") (expression_statement "iVar15 = (uint)bVar12 << 1;" (assignment_expression "iVar15 = (uint)bVar12 << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)bVar12 << 1" (cast_expression "(uint)bVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar12")) (<< "<<") (number_literal "1"))) (; ";"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";")) (} "}"))) (if_statement "if (param_3 + -1 != 1) {\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }" (if "if") (parenthesized_expression "(param_3 + -1 != 1)" (( "(") (binary_expression "param_3 + -1 != 1" (binary_expression "param_3 + -1" (identifier "param_3") (+ "+") (number_literal "-1")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          param_4[1] = bVar12;\n          pbVar9 = param_4 + 2;\n        }" ({ "{") (expression_statement "param_4[1] = bVar12;" (assignment_expression "param_4[1] = bVar12" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar9 = param_4 + 2;" (assignment_expression "pbVar9 = param_4 + 2" (identifier "pbVar9") (= "=") (binary_expression "param_4 + 2" (identifier "param_4") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar15 = (uint)pbVar14[2] << 1;" (assignment_expression "iVar15 = (uint)pbVar14[2] << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)pbVar14[2] << 1" (cast_expression "(uint)pbVar14[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar14[2]" (identifier "pbVar14") ([ "[") (number_literal "2") (] "]"))) (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 2;" (assignment_expression "pbVar14 = pbVar14 + 2" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 2" (identifier "pbVar14") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" (else "else") (compound_statement "{\nLAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);\n      bVar12 = *pbVar14;\n      uVar4 = (uint)(char)bVar12;\n      if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }\n    }" ({ "{") (labeled_statement "LAB_00039140:\n      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);" (statement_identifier "LAB_00039140") (: ":") (expression_statement "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);" (call_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30)" (parenthesized_expression "(*(code *)PTR_InterpretLocaleValue_003a9768)" (( "(") (pointer_expression "*(code *)PTR_InterpretLocaleValue_003a9768" (* "*") (cast_expression "(code *)PTR_InterpretLocaleValue_003a9768" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_InterpretLocaleValue_003a9768"))) () ")")) (argument_list "(pbVar14,&local_30)" (( "(") (identifier "pbVar14") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";"))) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" (identifier "bVar12") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "uVar4 = (uint)(char)bVar12;" (assignment_expression "uVar4 = (uint)(char)bVar12" (identifier "uVar4") (= "=") (cast_expression "(uint)(char)bVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(char)bVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar12")))) (; ";")) (if_statement "if (local_30 == pbVar14) {\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }\n      else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" (if "if") (parenthesized_expression "(local_30 == pbVar14)" (( "(") (binary_expression "local_30 == pbVar14" (identifier "local_30") (== "==") (identifier "pbVar14")) () ")")) (compound_statement "{\n        uVar11 = (uint)bVar12;\n        iVar15 = uVar11 * 2;\n        if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }\n      }" ({ "{") (expression_statement "uVar11 = (uint)bVar12;" (assignment_expression "uVar11 = (uint)bVar12" (identifier "uVar11") (= "=") (cast_expression "(uint)bVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar12"))) (; ";")) (expression_statement "iVar15 = uVar11 * 2;" (assignment_expression "iVar15 = uVar11 * 2" (identifier "iVar15") (= "=") (binary_expression "uVar11 * 2" (identifier "uVar11") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (uVar4 != 0) {\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = *piVar3;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n          if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;\nLAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }\n          pbVar13 = pbVar14 + 1;\n          pbVar14 = pbVar14 + 1;\n          iVar15 = (uint)*pbVar13 << 1;\n        }" ({ "{") (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" (identifier "iVar5") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "uVar10 = *(ushort *)(iVar5 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + iVar15)" (identifier "uVar10") (= "=") (pointer_expression "*(ushort *)(iVar5 + iVar15)" (* "*") (cast_expression "(ushort *)(iVar5 + iVar15)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar15)" (( "(") (binary_expression "iVar5 + iVar15" (identifier "iVar5") (+ "+") (identifier "iVar15")) () ")"))))) (; ";")) (if_statement "if (((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;" (if "if") (parenthesized_expression "(((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0))))" (( "(") (binary_expression "((uVar10 & 4) != 0) ||\n             (((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))" (parenthesized_expression "((uVar10 & 4) != 0)" (( "(") (binary_expression "(uVar10 & 4) != 0" (parenthesized_expression "(uVar10 & 4)" (( "(") (binary_expression "uVar10 & 4" (identifier "uVar10") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))" (( "(") (parenthesized_expression "((uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0))" (( "(") (binary_expression "(uVar11 - 0x23 & 0xff) < 0x1a &&\n              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)" (binary_expression "(uVar11 - 0x23 & 0xff) < 0x1a" (parenthesized_expression "(uVar11 - 0x23 & 0xff)" (( "(") (binary_expression "uVar11 - 0x23 & 0xff" (binary_expression "uVar11 - 0x23" (identifier "uVar11") (- "-") (number_literal "0x23")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x1a")) (&& "&&") (parenthesized_expression "((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)" (( "(") (binary_expression "(int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f" (parenthesized_expression "(0x2001001U >> (uVar11 - 0x23 & 0x1f))" (( "(") (binary_expression "0x2001001U >> (uVar11 - 0x23 & 0x1f)" (number_literal "0x2001001U") (>> ">>") (parenthesized_expression "(uVar11 - 0x23 & 0x1f)" (( "(") (binary_expression "uVar11 - 0x23 & 0x1f" (binary_expression "uVar11 - 0x23" (identifier "uVar11") (- "-") (number_literal "0x23")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")"))) (< "<") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0003947c;" (goto "goto") (statement_identifier "LAB_0003947c") (; ";"))) (labeled_statement "LAB_000393f8:\n          if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" (statement_identifier "LAB_000393f8") (: ":") (if_statement "if (0 < param_3 + -1) {\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" (if "if") (parenthesized_expression "(0 < param_3 + -1)" (( "(") (binary_expression "0 < param_3 + -1" (number_literal "0") (< "<") (binary_expression "param_3 + -1" (identifier "param_3") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n            *param_4 = bVar12;\n            pbVar9 = param_4 + 1;\n          }" ({ "{") (expression_statement "*param_4 = bVar12;" (assignment_expression "*param_4 = bVar12" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar9 = param_4 + 1;" (assignment_expression "pbVar9 = param_4 + 1" (identifier "pbVar9") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar15 = (uint)*pbVar13 << 1;" (assignment_expression "iVar15 = (uint)*pbVar13 << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)*pbVar13 << 1" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13")) (<< "<<") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" (else "else") (if_statement "if (uVar4 == 0x2c) {\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }\n      else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" (if "if") (parenthesized_expression "(uVar4 == 0x2c)" (( "(") (binary_expression "uVar4 == 0x2c" (identifier "uVar4") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n        iVar5 = *piVar3;\n        uVar10 = *(ushort *)(iVar5 + 0x58);\n        uVar11 = 0x2c;\n        if ((uVar10 & 4) == 0) goto LAB_000393f8;\nLAB_0003947c:\n        iVar7 = 0;\n        uVar16 = param_3 - 1;\n        while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }\n        iVar15 = (uint)*pbVar14 << 1;\n      }" ({ "{") (expression_statement "iVar5 = *piVar3;" (assignment_expression "iVar5 = *piVar3" (identifier "iVar5") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "uVar10 = *(ushort *)(iVar5 + 0x58);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + 0x58)" (identifier "uVar10") (= "=") (pointer_expression "*(ushort *)(iVar5 + 0x58)" (* "*") (cast_expression "(ushort *)(iVar5 + 0x58)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x58)" (( "(") (binary_expression "iVar5 + 0x58" (identifier "iVar5") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "uVar11 = 0x2c;" (assignment_expression "uVar11 = 0x2c" (identifier "uVar11") (= "=") (number_literal "0x2c")) (; ";")) (if_statement "if ((uVar10 & 4) == 0) goto LAB_000393f8;" (if "if") (parenthesized_expression "((uVar10 & 4) == 0)" (( "(") (binary_expression "(uVar10 & 4) == 0" (parenthesized_expression "(uVar10 & 4)" (( "(") (binary_expression "uVar10 & 4" (identifier "uVar10") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000393f8;" (goto "goto") (statement_identifier "LAB_000393f8") (; ";"))) (labeled_statement "LAB_0003947c:\n        iVar7 = 0;" (statement_identifier "LAB_0003947c") (: ":") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar16 = param_3 - 1;" (assignment_expression "uVar16 = param_3 - 1" (identifier "uVar16") (= "=") (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1"))) (; ";")) (while_statement "while (((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }" (while "while") (parenthesized_expression "(((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c)))))" (( "(") (parenthesized_expression "((((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))" (( "(") (binary_expression "(((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c)))" (parenthesized_expression "(((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c))" (( "(") (binary_expression "((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||\n                (pbVar14[-1] == 0x5c)" (parenthesized_expression "((uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)))))" (( "(") (binary_expression "(uVar10 & 0x20) == 0 &&\n                 ((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))" (binary_expression "(uVar10 & 0x20) == 0" (parenthesized_expression "(uVar10 & 0x20)" (( "(") (binary_expression "uVar10 & 0x20" (identifier "uVar10") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))" (( "(") (parenthesized_expression "(0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)))" (( "(") (binary_expression "0x11 < (uVar11 - 0x2c & 0xff) ||\n                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))" (binary_expression "0x11 < (uVar11 - 0x2c & 0xff)" (number_literal "0x11") (< "<") (parenthesized_expression "(uVar11 - 0x2c & 0xff)" (( "(") (binary_expression "uVar11 - 0x2c & 0xff" (binary_expression "uVar11 - 0x2c" (identifier "uVar11") (- "-") (number_literal "0x2c")) (& "&") (number_literal "0xff")) () ")"))) (|| "||") (parenthesized_expression "(-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))" (( "(") (binary_expression "-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" (number_literal "-1") (< "<") (cast_expression "(int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f" (parenthesized_expression "(0x2c001U >> (uVar11 - 0x2c & 0x1f))" (( "(") (binary_expression "0x2c001U >> (uVar11 - 0x2c & 0x1f)" (number_literal "0x2c001U") (>> ">>") (parenthesized_expression "(uVar11 - 0x2c & 0x1f)" (( "(") (binary_expression "uVar11 - 0x2c & 0x1f" (binary_expression "uVar11 - 0x2c" (identifier "uVar11") (- "-") (number_literal "0x2c")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")")))) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pbVar14[-1] == 0x5c)" (( "(") (binary_expression "pbVar14[-1] == 0x5c" (subscript_expression "pbVar14[-1]" (identifier "pbVar14") ([ "[") (number_literal "-1") (] "]")) (== "==") (number_literal "0x5c")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar7 < 1 || (uVar4 != 0x3c)))" (( "(") (parenthesized_expression "(iVar7 < 1 || (uVar4 != 0x3c))" (( "(") (binary_expression "iVar7 < 1 || (uVar4 != 0x3c)" (binary_expression "iVar7 < 1" (identifier "iVar7") (< "<") (number_literal "1")) (|| "||") (parenthesized_expression "(uVar4 != 0x3c)" (( "(") (binary_expression "uVar4 != 0x3c" (identifier "uVar4") (!= "!=") (number_literal "0x3c")) () ")"))) () ")")) () ")"))) () ")")) () ")")) (compound_statement "{\n          if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }\n          if (uVar4 == 0x3e) goto LAB_00039418;\n          uVar11 = (int)pbVar14 - (int)param_1;\n          if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }\n          if (uVar16 <= uVar11) goto LAB_00039418;\n          pbVar13 = pbVar14 + 1;\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = pbVar14 + 1;\n          uVar11 = (uint)*pbVar13;\n          iVar15 = uVar11 * 2;\n          if (uVar4 == 0) goto LAB_0003929c;\n          uVar10 = *(ushort *)(iVar5 + iVar15);\n        }" ({ "{") (if_statement "if (iVar7 < (int)uVar16) {\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }" (if "if") (parenthesized_expression "(iVar7 < (int)uVar16)" (( "(") (binary_expression "iVar7 < (int)uVar16" (identifier "iVar7") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n            iVar7 = iVar7 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar7;\n          }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar9 = (byte)uVar4;" (assignment_expression "*pbVar9 = (byte)uVar4" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "pbVar9 = param_4 + iVar7;" (assignment_expression "pbVar9 = param_4 + iVar7" (identifier "pbVar9") (= "=") (binary_expression "param_4 + iVar7" (identifier "param_4") (+ "+") (identifier "iVar7"))) (; ";")) (} "}"))) (if_statement "if (uVar4 == 0x3e) goto LAB_00039418;" (if "if") (parenthesized_expression "(uVar4 == 0x3e)" (( "(") (binary_expression "uVar4 == 0x3e" (identifier "uVar4") (== "==") (number_literal "0x3e")) () ")")) (goto_statement "goto LAB_00039418;" (goto "goto") (statement_identifier "LAB_00039418") (; ";"))) (expression_statement "uVar11 = (int)pbVar14 - (int)param_1;" (assignment_expression "uVar11 = (int)pbVar14 - (int)param_1" (identifier "uVar11") (= "=") (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (if_statement "if (uVar4 == 0x28) {\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }" (if "if") (parenthesized_expression "(uVar4 == 0x28)" (( "(") (binary_expression "uVar4 == 0x28" (identifier "uVar4") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n            bVar12 = pbVar14[1];\n            pbVar14 = pbVar14 + 1;\n            if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }\n            while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }\n          }" ({ "{") (expression_statement "bVar12 = pbVar14[1];" (assignment_expression "bVar12 = pbVar14[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar12 == 0) {\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar15 = 0;\n              goto LAB_0003929c;\n            }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";")) (} "}"))) (while_statement "while( true ) {\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }\n              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;\n              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;\n              pbVar14 = pbVar14 + 1;\n              bVar12 = *pbVar14;\n              iVar15 = 0;\n              if (bVar12 == 0) goto LAB_0003929c;\n            }" ({ "{") (if_statement "if (iVar7 < (int)uVar16) {\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }" (if "if") (parenthesized_expression "(iVar7 < (int)uVar16)" (( "(") (binary_expression "iVar7 < (int)uVar16" (identifier "iVar7") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                iVar7 = iVar7 + 1;\n                *pbVar9 = bVar12;\n                pbVar9 = param_4 + iVar7;\n              }" ({ "{") (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar9 = bVar12;" (assignment_expression "*pbVar9 = bVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar9 = param_4 + iVar7;" (assignment_expression "pbVar9 = param_4 + iVar7" (identifier "pbVar9") (= "=") (binary_expression "param_4 + iVar7" (identifier "param_4") (+ "+") (identifier "iVar7"))) (; ";")) (} "}"))) (if_statement "if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))\n              break;" (if "if") (parenthesized_expression "((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))" (( "(") (binary_expression "(bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c)" (parenthesized_expression "(bVar12 == 0x29)" (( "(") (binary_expression "bVar12 == 0x29" (identifier "bVar12") (== "==") (number_literal "0x29")) () ")")) (&& "&&") (parenthesized_expression "(uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c)" (( "(") (comma_expression "uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c" (assignment_expression "uVar11 = (int)pbVar14 - (int)param_1" (identifier "uVar11") (= "=") (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (, ",") (binary_expression "pbVar14[-1] != 0x5c" (subscript_expression "pbVar14[-1]" (identifier "pbVar14") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "0x5c"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;" (if "if") (parenthesized_expression "(uVar16 <= (uint)((int)pbVar14 - (int)param_1))" (( "(") (binary_expression "uVar16 <= (uint)((int)pbVar14 - (int)param_1)" (identifier "uVar16") (<= "<=") (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar14 - (int)param_1)" (( "(") (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) () ")")) (goto_statement "goto LAB_00039418;" (goto "goto") (statement_identifier "LAB_00039418") (; ";"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" (identifier "bVar12") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar12 == 0) goto LAB_0003929c;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";"))) (} "}"))) (} "}"))) (if_statement "if (uVar16 <= uVar11) goto LAB_00039418;" (if "if") (parenthesized_expression "(uVar16 <= uVar11)" (( "(") (binary_expression "uVar16 <= uVar11" (identifier "uVar16") (<= "<=") (identifier "uVar11")) () ")")) (goto_statement "goto LAB_00039418;" (goto "goto") (statement_identifier "LAB_00039418") (; ";"))) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = (uint)(char)*pbVar13;" (assignment_expression "uVar4 = (uint)(char)*pbVar13" (identifier "uVar4") (= "=") (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = (uint)*pbVar13;" (assignment_expression "uVar11 = (uint)*pbVar13" (identifier "uVar11") (= "=") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "iVar15 = uVar11 * 2;" (assignment_expression "iVar15 = uVar11 * 2" (identifier "iVar15") (= "=") (binary_expression "uVar11 * 2" (identifier "uVar11") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (uVar4 == 0) goto LAB_0003929c;" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";"))) (expression_statement "uVar10 = *(ushort *)(iVar5 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(iVar5 + iVar15)" (identifier "uVar10") (= "=") (pointer_expression "*(ushort *)(iVar5 + iVar15)" (* "*") (cast_expression "(ushort *)(iVar5 + iVar15)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar15)" (( "(") (binary_expression "iVar5 + iVar15" (identifier "iVar5") (+ "+") (identifier "iVar15")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar15 = (uint)*pbVar14 << 1;" (assignment_expression "iVar15 = (uint)*pbVar14 << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar14")) (<< "<<") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" (else "else") (if_statement "if (pbVar14 < local_30) {\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }\n      else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" (if "if") (parenthesized_expression "(pbVar14 < local_30)" (( "(") (binary_expression "pbVar14 < local_30" (identifier "pbVar14") (< "<") (identifier "local_30")) () ")")) (compound_statement "{\n        iVar5 = 0;\n        do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        } while (uVar4 != 0x2c);" (do "do") (compound_statement "{\n          if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }\n          pbVar13 = pbVar14 + 1;\n          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }\n          uVar4 = (uint)(char)*pbVar13;\n          pbVar14 = local_30;\n          if (local_30 == pbVar13) goto LAB_000391cc;\n          iVar15 = 0x58;\n          pbVar14 = pbVar13;\n        }" ({ "{") (if_statement "if (iVar5 < (int)(param_3 - 1U)) {\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }" (if "if") (parenthesized_expression "(iVar5 < (int)(param_3 - 1U))" (( "(") (binary_expression "iVar5 < (int)(param_3 - 1U)" (identifier "iVar5") (< "<") (cast_expression "(int)(param_3 - 1U)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_3 - 1U)" (( "(") (binary_expression "param_3 - 1U" (identifier "param_3") (- "-") (number_literal "1U")) () ")")))) () ")")) (compound_statement "{\n            iVar5 = iVar5 + 1;\n            *pbVar9 = (byte)uVar4;\n            pbVar9 = param_4 + iVar5;\n          }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar9 = (byte)uVar4;" (assignment_expression "*pbVar9 = (byte)uVar4" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (cast_expression "(byte)uVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "pbVar9 = param_4 + iVar5;" (assignment_expression "pbVar9 = param_4 + iVar5" (identifier "pbVar9") (= "=") (binary_expression "param_4 + iVar5" (identifier "param_4") (+ "+") (identifier "iVar5"))) (; ";")) (} "}"))) (expression_statement "pbVar13 = pbVar14 + 1;" (assignment_expression "pbVar13 = pbVar14 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }" (if "if") (parenthesized_expression "(param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1))" (( "(") (binary_expression "param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)" (binary_expression "param_3 - 1U" (identifier "param_3") (- "-") (number_literal "1U")) (<= "<=") (call_expression "(uint)((int)pbVar14 - (int)param_1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar14 - (int)param_1)" (( "(") (binary_expression "(int)pbVar14 - (int)param_1" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) () ")")) (compound_statement "{\n            uVar4 = (uint)(char)*pbVar14;\n            goto LAB_000391cc;\n          }" ({ "{") (expression_statement "uVar4 = (uint)(char)*pbVar14;" (assignment_expression "uVar4 = (uint)(char)*pbVar14" (identifier "uVar4") (= "=") (binary_expression "(uint)(char)*pbVar14" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar14"))) (; ";")) (goto_statement "goto LAB_000391cc;" (goto "goto") (statement_identifier "LAB_000391cc") (; ";")) (} "}"))) (expression_statement "uVar4 = (uint)(char)*pbVar13;" (assignment_expression "uVar4 = (uint)(char)*pbVar13" (identifier "uVar4") (= "=") (binary_expression "(uint)(char)*pbVar13" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (* "*") (identifier "pbVar13"))) (; ";")) (expression_statement "pbVar14 = local_30;" (assignment_expression "pbVar14 = local_30" (identifier "pbVar14") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 == pbVar13) goto LAB_000391cc;" (if "if") (parenthesized_expression "(local_30 == pbVar13)" (( "(") (binary_expression "local_30 == pbVar13" (identifier "local_30") (== "==") (identifier "pbVar13")) () ")")) (goto_statement "goto LAB_000391cc;" (goto "goto") (statement_identifier "LAB_000391cc") (; ";"))) (expression_statement "iVar15 = 0x58;" (assignment_expression "iVar15 = 0x58" (identifier "iVar15") (= "=") (number_literal "0x58")) (; ";")) (expression_statement "pbVar14 = pbVar13;" (assignment_expression "pbVar14 = pbVar13" (identifier "pbVar14") (= "=") (identifier "pbVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 != 0x2c)" (( "(") (binary_expression "uVar4 != 0x2c" (identifier "uVar4") (!= "!=") (number_literal "0x2c")) () ")")) (; ";")) (} "}")) (else_clause "else {\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" (else "else") (compound_statement "{\n        iVar5 = 0;\nLAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000391cc:\n        if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" (statement_identifier "LAB_000391cc") (: ":") (if_statement "if (uVar4 == 0x25) {\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }\n        else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" (if "if") (parenthesized_expression "(uVar4 == 0x25)" (( "(") (binary_expression "uVar4 == 0x25" (identifier "uVar4") (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n          if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }\n          iVar15 = (uint)pbVar14[1] << 1;\n          pbVar14 = pbVar14 + 1;\n        }" ({ "{") (if_statement "if (iVar5 < param_3 + -1) {\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }" (if "if") (parenthesized_expression "(iVar5 < param_3 + -1)" (( "(") (binary_expression "iVar5 < param_3 + -1" (identifier "iVar5") (< "<") (binary_expression "param_3 + -1" (identifier "param_3") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n            *pbVar9 = 0x25;\n            pbVar9 = param_4 + iVar5 + 1;\n          }" ({ "{") (expression_statement "*pbVar9 = 0x25;" (assignment_expression "*pbVar9 = 0x25" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (number_literal "0x25")) (; ";")) (expression_statement "pbVar9 = param_4 + iVar5 + 1;" (assignment_expression "pbVar9 = param_4 + iVar5 + 1" (identifier "pbVar9") (= "=") (binary_expression "param_4 + iVar5 + 1" (binary_expression "param_4 + iVar5" (identifier "param_4") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar15 = (uint)pbVar14[1] << 1;" (assignment_expression "iVar15 = (uint)pbVar14[1] << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)pbVar14[1] << 1" (cast_expression "(uint)pbVar14[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" (else "else") (compound_statement "{\n          iVar15 = (uVar4 & 0xff) << 1;\n        }" ({ "{") (expression_statement "iVar15 = (uVar4 & 0xff) << 1;" (assignment_expression "iVar15 = (uVar4 & 0xff) << 1" (identifier "iVar15") (= "=") (binary_expression "(uVar4 & 0xff) << 1" (parenthesized_expression "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")")) (<< "<<") (number_literal "1"))) (; ";")) (} "}"))))) (} "}")))))))) (} "}")))) (} "}")))) (labeled_statement "LAB_0003929c:\n  puVar1 = PTR_LocaleNCompare_003a961c;" (statement_identifier "LAB_0003929c") (: ":") (expression_statement "puVar1 = PTR_LocaleNCompare_003a961c;" (assignment_expression "puVar1 = PTR_LocaleNCompare_003a961c" (identifier "puVar1") (= "=") (identifier "PTR_LocaleNCompare_003a961c")) (; ";"))) (expression_statement "*pbVar9 = 0;" (assignment_expression "*pbVar9 = 0" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);" (assignment_expression "iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" (identifier "iVar5") (= "=") (call_expression "(*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_4,PTR_s_courses_003a88ec + -0x29a8,5)" (( "(") (identifier "param_4") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x29a8" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x29a8")) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }" (if "if") (parenthesized_expression "((iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0))" (( "(") (binary_expression "(iVar5 == 0) &&\n     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)" (( "(") (comma_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),\n     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strrchr_003a9650)(param_4,0x29)" (parenthesized_expression "(*(code *)PTR_strrchr_003a9650)" (( "(") (pointer_expression "*(code *)PTR_strrchr_003a9650" (* "*") (cast_expression "(code *)PTR_strrchr_003a9650" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strrchr_003a9650"))) () ")")) (argument_list "(param_4,0x29)" (( "(") (identifier "param_4") (, ",") (number_literal "0x29") () ")"))))) (, ",") (comma_expression "puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0" (assignment_expression "puVar1 = PTR_memmove_003a8f50" (identifier "puVar1") (= "=") (identifier "PTR_memmove_003a8f50")) (, ",") (binary_expression "puVar6 != (undefined1 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n    *puVar6 = 0;\n    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));\n  }" ({ "{") (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));" (call_expression "(*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4))" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4))" (( "(") (identifier "param_4") (, ",") (binary_expression "param_4 + 5" (identifier "param_4") (+ "+") (number_literal "5")) (, ",") (binary_expression "puVar6 + (-4 - (int)param_4)" (identifier "puVar6") (+ "+") (parenthesized_expression "(-4 - (int)param_4)" (( "(") (binary_expression "-4 - (int)param_4" (number_literal "-4") (- "-") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(ushort *)(*piVar3 + iVar15);" (assignment_expression "uVar10 = *(ushort *)(*piVar3 + iVar15)" (identifier "uVar10") (= "=") (pointer_expression "*(ushort *)(*piVar3 + iVar15)" (* "*") (cast_expression "(ushort *)(*piVar3 + iVar15)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + iVar15)" (( "(") (binary_expression "*piVar3 + iVar15" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (identifier "iVar15")) () ")"))))) (; ";")) (while_statement "while ((uVar10 & 0x20) != 0) {\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }" (while "while") (parenthesized_expression "((uVar10 & 0x20) != 0)" (( "(") (binary_expression "(uVar10 & 0x20) != 0" (parenthesized_expression "(uVar10 & 0x20)" (( "(") (binary_expression "uVar10 & 0x20" (identifier "uVar10") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar14 = pbVar14 + 1;\n    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);\n  }" ({ "{") (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);" (assignment_expression "uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" (identifier "uVar10") (= "=") (pointer_expression "*(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" (* "*") (cast_expression "(ushort *)(*piVar3 + (uint)*pbVar14 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + (uint)*pbVar14 * 2)" (( "(") (binary_expression "*piVar3 + (uint)*pbVar14 * 2" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (binary_expression "(uint)*pbVar14 * 2" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar14")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (param_2 != (undefined4 *)0x0) {\n    *param_2 = pbVar14;\n  }" (if "if") (parenthesized_expression "(param_2 != (undefined4 *)0x0)" (( "(") (binary_expression "param_2 != (undefined4 *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_2 = pbVar14;\n  }" ({ "{") (expression_statement "*param_2 = pbVar14;" (assignment_expression "*param_2 = pbVar14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "pbVar14")) (; ";")) (} "}"))) (if_statement "if (local_2c == *(int *)puVar2) {\n    return pbVar14 + (1 - (int)param_1);\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return pbVar14 + (1 - (int)param_1);\n  }" ({ "{") (return_statement "return pbVar14 + (1 - (int)param_1);" (return "return") (binary_expression "pbVar14 + (1 - (int)param_1)" (identifier "pbVar14") (+ "+") (parenthesized_expression "(1 - (int)param_1)" (( "(") (binary_expression "1 - (int)param_1" (number_literal "1") (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00039600:\n  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);" (statement_identifier "LAB_00039600") (: ":") (expression_statement "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0);" (assignment_expression "pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,\n                               0xbf,PTR_s_courses_003a88ec + -0x29a0)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x29c0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x29c0")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x2a48" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x2a48")) (, ",") (number_literal "0xbf") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x29a0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x29a0")) () ")"))))) (; ";"))) (return_statement "return pbVar14;" (return "return") (identifier "pbVar14") (; ";")) (labeled_statement "LAB_00039418:\n  iVar15 = (uint)*pbVar14 << 1;" (statement_identifier "LAB_00039418") (: ":") (expression_statement "iVar15 = (uint)*pbVar14 << 1;" (assignment_expression "iVar15 = (uint)*pbVar14 << 1" (identifier "iVar15") (= "=") (binary_expression "(uint)*pbVar14 << 1" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar14")) (<< "<<") (number_literal "1"))) (; ";"))) (goto_statement "goto LAB_0003929c;" (goto "goto") (statement_identifier "LAB_0003929c") (; ";")) (} "}")))

size_t function_1(char *var_1,char **var_18,size_t var_9,char *var_3)

{
  type_1 *puVar1;
  type_1 *puVar2;
  int *piVar3;
  type_2 var_11;
  int var_12;
  type_3 *var_17;
  size_t sVar7;
  int var_14;
  type_4 var_7;
  type_4 *pbVar10;
  type_5 var_13;
  type_2 var_10;
  type_4 var_5;
  type_4 *var_8;
  type_4 *var_6;
  int var_4;
  type_2 var_15;
  char *var_16;
  int var_19;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  var_19 = *(int *)PTR___stack_chk_guard_003a9230;
  if (var_1 == (char *)0x0) {
    sVar7 = (*(type_6 *)PTR___assert_fail_003a9608)
                      (var_2 + -0x29e0,var_2 + -0x2a48,0xbe,
                       var_2 + -0x29a0);
    return sVar7;
  }
  if (var_3 == (char *)0x0) goto LAB_00039600;
  piVar3 = (int *)(*(type_6 *)PTR___ctype_b_loc_003a9434)();
  var_6 = (type_4 *)var_1;
  while( true ) {
    var_5 = *var_6;
    var_4 = (type_2)var_5 * 2;
    pbVar10 = (type_4 *)var_3;
    if ((*(type_5 *)(*piVar3 + var_4) & 0x20) == 0) break;
    if (var_5 == 0) goto LAB_0003929c;
    var_6 = var_6 + 1;
  }
  if (var_5 == 0x27) {
LAB_000391e4:
    if (var_5 == 0x27) {
LAB_0003942c:
      var_5 = 0x27;
    }
    else if ('\'' < (char)var_5) {
      if (var_5 == 0x60) goto LAB_0003942c;
      if (var_5 == 0x7b) {
        var_5 = 0x7d;
      }
    }
    var_7 = var_6[1];
    var_6 = var_6 + 1;
    if (var_7 == 0) {
      var_4 = 0;
    }
    else {
      var_4 = 0;
      do {
        if ((var_7 == 0x5c) && ((var_6[1] == var_5 || (var_6[1] == 0x5c)))) {
          var_6 = var_6 + 1;
        }
        else if (var_5 == var_7) {
          var_8 = var_6 + 1;
          var_6 = var_6 + 1;
          var_4 = (type_2)*var_8 << 1;
          goto LAB_0003929c;
        }
        if (var_4 < (int)(var_9 - 1)) {
          var_4 = var_4 + 1;
          *pbVar10 = *var_6;
          pbVar10 = (type_4 *)(var_3 + var_4);
        }
        if (var_9 - 1 <= (type_2)((int)var_6 - (int)var_1)) goto LAB_00039418;
        var_7 = var_6[1];
        var_6 = var_6 + 1;
      } while (var_7 != 0);
      var_4 = 0;
    }
  }
  else {
    if ((char)var_5 < '(') {
      if (var_5 == 0) goto LAB_0003929c;
      if (var_5 != 0x22) goto LAB_00039140;
      goto LAB_000391e4;
    }
    if ((var_5 == 0x60) || (var_5 == 0x7b)) goto LAB_000391e4;
    if (var_5 == 0x2f) {
      var_5 = var_6[1];
      if ((int)(var_9 - 1) < 1) {
        if ((var_5 != 0x3e) && (var_5 != 0x2f)) goto LAB_00039124;
      }
      else {
        *var_3 = '/';
        pbVar10 = (type_4 *)(var_3 + 1);
        if ((var_5 != 0x3e) && (var_5 != 0x2f)) {
LAB_00039124:
          var_4 = (type_2)var_5 << 1;
          var_6 = var_6 + 1;
          goto LAB_0003929c;
        }
        if (var_9 - 1 != 1) {
          var_3[1] = var_5;
          pbVar10 = (type_4 *)(var_3 + 2);
        }
      }
      var_4 = (type_2)var_6[2] << 1;
      var_6 = var_6 + 2;
    }
    else {
LAB_00039140:
      (*(type_6 *)PTR_InterpretLocaleValue_003a9768)(var_6,&var_16);
      var_5 = *var_6;
      var_11 = (type_2)(char)var_5;
      if ((type_4 *)var_16 == var_6) {
        var_10 = (type_2)var_5;
        var_4 = var_10 * 2;
        if (var_11 != 0) {
          var_12 = *piVar3;
          var_13 = *(type_5 *)(var_12 + var_4);
          if (((var_13 & 4) != 0) ||
             (((var_10 - 0x23 & 0xff) < 0x1a &&
              ((int)((0x2001001U >> (var_10 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;
LAB_000393f8:
          if (0 < (int)(var_9 - 1)) {
            *var_3 = var_5;
            pbVar10 = (type_4 *)(var_3 + 1);
          }
          var_8 = var_6 + 1;
          var_6 = var_6 + 1;
          var_4 = (type_2)*var_8 << 1;
        }
      }
      else if (var_11 == 0x2c) {
        var_12 = *piVar3;
        var_13 = *(type_5 *)(var_12 + 0x58);
        var_10 = 0x2c;
        if ((var_13 & 4) == 0) goto LAB_000393f8;
LAB_0003947c:
        var_14 = 0;
        var_15 = var_9 - 1;
        while (((((var_13 & 0x20) == 0 &&
                 ((0x11 < (var_10 - 0x2c & 0xff) ||
                  (-1 < (int)((0x2c001U >> (var_10 - 0x2c & 0x1f)) << 0x1f))))) ||
                (var_6[-1] == 0x5c)) && ((var_14 < 1 || (var_11 != 0x3c))))) {
          if (var_14 < (int)var_15) {
            var_14 = var_14 + 1;
            *pbVar10 = (type_4)var_11;
            pbVar10 = (type_4 *)(var_3 + var_14);
          }
          if (var_11 == 0x3e) goto LAB_00039418;
          var_10 = (int)var_6 - (int)var_1;
          if (var_11 == 0x28) {
            var_5 = var_6[1];
            var_6 = var_6 + 1;
            if (var_5 == 0) {
              var_4 = 0;
              goto LAB_0003929c;
            }
            while( true ) {
              if (var_14 < (int)var_15) {
                var_14 = var_14 + 1;
                *pbVar10 = var_5;
                pbVar10 = (type_4 *)(var_3 + var_14);
              }
              if ((var_5 == 0x29) && (var_10 = (int)var_6 - (int)var_1, var_6[-1] != 0x5c))
              break;
              if (var_15 <= (type_2)((int)var_6 - (int)var_1)) goto LAB_00039418;
              var_6 = var_6 + 1;
              var_5 = *var_6;
              var_4 = 0;
              if (var_5 == 0) goto LAB_0003929c;
            }
          }
          if (var_15 <= var_10) goto LAB_00039418;
          var_8 = var_6 + 1;
          var_11 = (type_2)(char)*var_8;
          var_6 = var_6 + 1;
          var_10 = (type_2)*var_8;
          var_4 = var_10 * 2;
          if (var_11 == 0) goto LAB_0003929c;
          var_13 = *(type_5 *)(var_12 + var_4);
        }
        var_4 = (type_2)*var_6 << 1;
      }
      else if (var_6 < var_16) {
        var_12 = 0;
        do {
          if (var_12 < (int)(var_9 - 1)) {
            var_12 = var_12 + 1;
            *pbVar10 = (type_4)var_11;
            pbVar10 = (type_4 *)(var_3 + var_12);
          }
          var_8 = var_6 + 1;
          if (var_9 - 1 <= (type_2)((int)var_6 - (int)var_1)) {
            var_11 = (type_2)(char)*var_6;
            goto LAB_000391cc;
          }
          var_11 = (type_2)(char)*var_8;
          var_6 = (type_4 *)var_16;
          if ((type_4 *)var_16 == var_8) goto LAB_000391cc;
          var_4 = 0x58;
          var_6 = var_8;
        } while (var_11 != 0x2c);
      }
      else {
        var_12 = 0;
LAB_000391cc:
        if (var_11 == 0x25) {
          if (var_12 < (int)(var_9 - 1)) {
            *pbVar10 = 0x25;
            pbVar10 = (type_4 *)(var_3 + var_12 + 1);
          }
          var_4 = (type_2)var_6[1] << 1;
          var_6 = var_6 + 1;
        }
        else {
          var_4 = (var_11 & 0xff) << 1;
        }
      }
    }
  }
LAB_0003929c:
  puVar1 = PTR_LocaleNCompare_003a961c;
  *pbVar10 = 0;
  var_12 = (*(type_6 *)puVar1)(var_3,var_2 + -0x29a8,5);
  if ((var_12 == 0) &&
     (var_17 = (type_3 *)(*(type_6 *)PTR_strrchr_003a9650)(var_3,0x29),
     puVar1 = PTR_memmove_003a8f50, var_17 != (type_3 *)0x0)) {
    *var_17 = 0;
    (*(type_6 *)puVar1)(var_3,var_3 + 5,var_17 + (-4 - (int)var_3));
  }
  var_13 = *(type_5 *)(*piVar3 + var_4);
  while ((var_13 & 0x20) != 0) {
    var_6 = var_6 + 1;
    var_13 = *(type_5 *)(*piVar3 + (type_2)*var_6 * 2);
  }
  if (var_18 != (char **)0x0) {
    *var_18 = (char *)var_6;
  }
  if (var_19 == *(int *)puVar2) {
    return (size_t)(var_6 + (1 - (int)var_1));
  }
  (*(type_6 *)PTR___stack_chk_fail_003a9064)();
LAB_00039600:
  sVar7 = (*(type_6 *)PTR___assert_fail_003a9608)
                    (var_2 + -0x29c0,var_2 + -0x2a48,0xbf,
                     var_2 + -0x29a0);
  return sVar7;
LAB_00039418:
  var_4 = (type_2)*var_6 << 1;
  goto LAB_0003929c;
}


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

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

{
  undefined *puVar1;
  undefined *puVar2;
  int *piVar3;
  uint uVar4;
  int iVar5;
  undefined1 *puVar6;
  int iVar7;
  byte bVar8;
  byte *pbVar9;
  ushort uVar10;
  uint uVar11;
  byte bVar12;
  byte *pbVar13;
  byte *pbVar14;
  int iVar15;
  uint uVar16;
  byte *local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_2c = *(int *)PTR___stack_chk_guard_003a9230;
  if (param_1 == (byte *)0x0) {
    pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)
                                (PTR_s_courses_003a88ec + -0x29e0,PTR_s_courses_003a88ec + -0x2a48,
                                 0xbe,PTR_s_courses_003a88ec + -0x29a0);
    return pbVar14;
  }
  if (param_4 == (byte *)0x0) goto LAB_00039600;
  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_003a9434)();
  pbVar14 = param_1;
  while( true ) {
    bVar12 = *pbVar14;
    iVar15 = (uint)bVar12 * 2;
    pbVar9 = param_4;
    if ((*(ushort *)(*piVar3 + iVar15) & 0x20) == 0) break;
    if (bVar12 == 0) goto LAB_0003929c;
    pbVar14 = pbVar14 + 1;
  }
  if (bVar12 == 0x27) {
LAB_000391e4:
    if (bVar12 == 0x27) {
LAB_0003942c:
      bVar12 = 0x27;
    }
    else if ('\'' < (char)bVar12) {
      if (bVar12 == 0x60) goto LAB_0003942c;
      if (bVar12 == 0x7b) {
        bVar12 = 0x7d;
      }
    }
    bVar8 = pbVar14[1];
    pbVar14 = pbVar14 + 1;
    if (bVar8 == 0) {
      iVar15 = 0;
    }
    else {
      iVar15 = 0;
      do {
        if ((bVar8 == 0x5c) && ((pbVar14[1] == bVar12 || (pbVar14[1] == 0x5c)))) {
          pbVar14 = pbVar14 + 1;
        }
        else if (bVar12 == bVar8) {
          pbVar13 = pbVar14 + 1;
          pbVar14 = pbVar14 + 1;
          iVar15 = (uint)*pbVar13 << 1;
          goto LAB_0003929c;
        }
        if (iVar15 < (int)(param_3 - 1U)) {
          iVar15 = iVar15 + 1;
          *pbVar9 = *pbVar14;
          pbVar9 = param_4 + iVar15;
        }
        if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;
        bVar8 = pbVar14[1];
        pbVar14 = pbVar14 + 1;
      } while (bVar8 != 0);
      iVar15 = 0;
    }
  }
  else {
    if ((char)bVar12 < '(') {
      if (bVar12 == 0) goto LAB_0003929c;
      if (bVar12 != 0x22) goto LAB_00039140;
      goto LAB_000391e4;
    }
    if ((bVar12 == 0x60) || (bVar12 == 0x7b)) goto LAB_000391e4;
    if (bVar12 == 0x2f) {
      bVar12 = pbVar14[1];
      if (param_3 + -1 < 1) {
        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) goto LAB_00039124;
      }
      else {
        *param_4 = 0x2f;
        pbVar9 = param_4 + 1;
        if ((bVar12 != 0x3e) && (bVar12 != 0x2f)) {
LAB_00039124:
          iVar15 = (uint)bVar12 << 1;
          pbVar14 = pbVar14 + 1;
          goto LAB_0003929c;
        }
        if (param_3 + -1 != 1) {
          param_4[1] = bVar12;
          pbVar9 = param_4 + 2;
        }
      }
      iVar15 = (uint)pbVar14[2] << 1;
      pbVar14 = pbVar14 + 2;
    }
    else {
LAB_00039140:
      (*(code *)PTR_InterpretLocaleValue_003a9768)(pbVar14,&local_30);
      bVar12 = *pbVar14;
      uVar4 = (uint)(char)bVar12;
      if (local_30 == pbVar14) {
        uVar11 = (uint)bVar12;
        iVar15 = uVar11 * 2;
        if (uVar4 != 0) {
          iVar5 = *piVar3;
          uVar10 = *(ushort *)(iVar5 + iVar15);
          if (((uVar10 & 4) != 0) ||
             (((uVar11 - 0x23 & 0xff) < 0x1a &&
              ((int)((0x2001001U >> (uVar11 - 0x23 & 0x1f)) << 0x1f) < 0)))) goto LAB_0003947c;
LAB_000393f8:
          if (0 < param_3 + -1) {
            *param_4 = bVar12;
            pbVar9 = param_4 + 1;
          }
          pbVar13 = pbVar14 + 1;
          pbVar14 = pbVar14 + 1;
          iVar15 = (uint)*pbVar13 << 1;
        }
      }
      else if (uVar4 == 0x2c) {
        iVar5 = *piVar3;
        uVar10 = *(ushort *)(iVar5 + 0x58);
        uVar11 = 0x2c;
        if ((uVar10 & 4) == 0) goto LAB_000393f8;
LAB_0003947c:
        iVar7 = 0;
        uVar16 = param_3 - 1;
        while (((((uVar10 & 0x20) == 0 &&
                 ((0x11 < (uVar11 - 0x2c & 0xff) ||
                  (-1 < (int)((0x2c001U >> (uVar11 - 0x2c & 0x1f)) << 0x1f))))) ||
                (pbVar14[-1] == 0x5c)) && ((iVar7 < 1 || (uVar4 != 0x3c))))) {
          if (iVar7 < (int)uVar16) {
            iVar7 = iVar7 + 1;
            *pbVar9 = (byte)uVar4;
            pbVar9 = param_4 + iVar7;
          }
          if (uVar4 == 0x3e) goto LAB_00039418;
          uVar11 = (int)pbVar14 - (int)param_1;
          if (uVar4 == 0x28) {
            bVar12 = pbVar14[1];
            pbVar14 = pbVar14 + 1;
            if (bVar12 == 0) {
              iVar15 = 0;
              goto LAB_0003929c;
            }
            while( true ) {
              if (iVar7 < (int)uVar16) {
                iVar7 = iVar7 + 1;
                *pbVar9 = bVar12;
                pbVar9 = param_4 + iVar7;
              }
              if ((bVar12 == 0x29) && (uVar11 = (int)pbVar14 - (int)param_1, pbVar14[-1] != 0x5c))
              break;
              if (uVar16 <= (uint)((int)pbVar14 - (int)param_1)) goto LAB_00039418;
              pbVar14 = pbVar14 + 1;
              bVar12 = *pbVar14;
              iVar15 = 0;
              if (bVar12 == 0) goto LAB_0003929c;
            }
          }
          if (uVar16 <= uVar11) goto LAB_00039418;
          pbVar13 = pbVar14 + 1;
          uVar4 = (uint)(char)*pbVar13;
          pbVar14 = pbVar14 + 1;
          uVar11 = (uint)*pbVar13;
          iVar15 = uVar11 * 2;
          if (uVar4 == 0) goto LAB_0003929c;
          uVar10 = *(ushort *)(iVar5 + iVar15);
        }
        iVar15 = (uint)*pbVar14 << 1;
      }
      else if (pbVar14 < local_30) {
        iVar5 = 0;
        do {
          if (iVar5 < (int)(param_3 - 1U)) {
            iVar5 = iVar5 + 1;
            *pbVar9 = (byte)uVar4;
            pbVar9 = param_4 + iVar5;
          }
          pbVar13 = pbVar14 + 1;
          if (param_3 - 1U <= (uint)((int)pbVar14 - (int)param_1)) {
            uVar4 = (uint)(char)*pbVar14;
            goto LAB_000391cc;
          }
          uVar4 = (uint)(char)*pbVar13;
          pbVar14 = local_30;
          if (local_30 == pbVar13) goto LAB_000391cc;
          iVar15 = 0x58;
          pbVar14 = pbVar13;
        } while (uVar4 != 0x2c);
      }
      else {
        iVar5 = 0;
LAB_000391cc:
        if (uVar4 == 0x25) {
          if (iVar5 < param_3 + -1) {
            *pbVar9 = 0x25;
            pbVar9 = param_4 + iVar5 + 1;
          }
          iVar15 = (uint)pbVar14[1] << 1;
          pbVar14 = pbVar14 + 1;
        }
        else {
          iVar15 = (uVar4 & 0xff) << 1;
        }
      }
    }
  }
LAB_0003929c:
  puVar1 = PTR_LocaleNCompare_003a961c;
  *pbVar9 = 0;
  iVar5 = (*(code *)puVar1)(param_4,PTR_s_courses_003a88ec + -0x29a8,5);
  if ((iVar5 == 0) &&
     (puVar6 = (undefined1 *)(*(code *)PTR_strrchr_003a9650)(param_4,0x29),
     puVar1 = PTR_memmove_003a8f50, puVar6 != (undefined1 *)0x0)) {
    *puVar6 = 0;
    (*(code *)puVar1)(param_4,param_4 + 5,puVar6 + (-4 - (int)param_4));
  }
  uVar10 = *(ushort *)(*piVar3 + iVar15);
  while ((uVar10 & 0x20) != 0) {
    pbVar14 = pbVar14 + 1;
    uVar10 = *(ushort *)(*piVar3 + (uint)*pbVar14 * 2);
  }
  if (param_2 != (undefined4 *)0x0) {
    *param_2 = pbVar14;
  }
  if (local_2c == *(int *)puVar2) {
    return pbVar14 + (1 - (int)param_1);
  }
  (*(code *)PTR___stack_chk_fail_003a9064)();
LAB_00039600:
  pbVar14 = (byte *)(*(code *)PTR___assert_fail_003a9608)
                              (PTR_s_courses_003a88ec + -0x29c0,PTR_s_courses_003a88ec + -0x2a48,
                               0xbf,PTR_s_courses_003a88ec + -0x29a0);
  return pbVar14;
LAB_00039418:
  iVar15 = (uint)*pbVar14 << 1;
  goto LAB_0003929c;
}

