
int rpl_fnmatch(char *pattern,char *string,int flags)

{
  char *string_00;
  uint *puVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 uVar7;
  uint uVar8;
  wchar_t *pwVar9;
  uint uVar10;
  int *piVar11;
  undefined4 uVar12;
  wchar_t *unaff_s3;
  wchar_t *pwVar13;
  int iVar14;
  int in_t9;
  code *UNRECOVERED_JUMPTABLE;
  undefined1 *puVar15;
  code *pcVar16;
  longlong lVar17;
  undefined1 auStackY_68 [16];
  int local_50 [3];
  wchar_t *local_44;
  char *local_40;
  char *local_3c [2];
  mbstate_t ps;
  
  local_50[0] = in_t9 + 0x319ec;
  puVar15 = auStackY_68;
  piVar11 = *(int **)(in_t9 + 0x29cfc);
  puVar1 = (uint *)*piVar11;
  local_40 = string;
  local_3c[0] = pattern;
  iVar2 = (**(code **)(in_t9 + 0x29cac))();
  if (iVar2 != 1) {
    ps.__count = 0;
    ps.__value.__wch = 0;
    iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);
    unaff_s3 = (wchar_t *)(iVar2 + 1);
    if (unaff_s3 != (wchar_t *)0x0) {
      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);
      uVar12 = 0x129;
      iVar2 = local_50[0];
      if (iVar3 == 0) goto LAB_00021a80;
      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);
      iVar14 = iVar3 + 1;
      if (iVar14 != 0) {
        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);
        if (iVar2 == 0) {
          uVar12 = 0x12d;
          iVar2 = local_50[0];
          goto LAB_00021a80;
        }
        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);
        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {
          if (pwVar9 < (wchar_t *)0x7d0) {
            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);
            pwVar13 = (wchar_t *)((int)local_50 + iVar6);
            pwVar9 = pwVar13 + (int)unaff_s3;
            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);
            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);
            iVar2 = local_50[0];
            if (iVar4 == 0) {
LAB_00021aa0:
              do {
                uVar12 = 0x147;
LAB_00021a80:
                (**(code **)(iVar2 + -0x7e74))
                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,
                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);
              } while( true );
            }
            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);
            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;
            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,
                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),
                                      *(int *)((int)local_3c + iVar6 + -0x1c));
            unaff_s3 = pwVar9;
            puVar15 = auStackY_68 + iVar6;
            goto LAB_00021810;
          }
          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();
          if (pwVar9 != (wchar_t *)0x0) {
            pwVar13 = pwVar9 + (int)unaff_s3;
            local_44 = pwVar9;
            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);
            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);
            iVar2 = local_50[0];
            if (iVar6 == 0) goto LAB_00021aa0;
            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);
            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,
                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
            (**(code **)(local_50[0] + -0x7ce4))(local_44);
            unaff_s3 = pwVar13;
            puVar15 = auStackY_68;
            goto LAB_00021810;
          }
        }
        iVar2 = -1;
        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();
        *puVar5 = 0xc;
        goto LAB_00021810;
      }
    }
  }
  string_00 = local_40;
  iVar2 = (**(code **)(local_50[0] + -0x7d94))(local_40);
  iVar2 = internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,
                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
  puVar15 = auStackY_68;
LAB_00021810:
  UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18);
  if (puVar1 == (uint *)*piVar11) {
    return iVar2;
  }
  pcVar16 = rpl_fseeko;
  (*UNRECOVERED_JUMPTABLE)();
  uVar10 = puVar1[2];
  uVar8 = puVar1[1];
  *(code **)(puVar15 + -0x20) = UNRECOVERED_JUMPTABLE + 0x316a0;
  *(int **)(puVar15 + -0x10) = piVar11;
  *(int *)(puVar15 + -0x14) = iVar2;
  *(code **)(puVar15 + -4) = pcVar16;
  *(wchar_t **)(puVar15 + -8) = unaff_s3;
  *(int *)(puVar15 + -0xc) = flags;
  uVar12 = *(undefined4 *)(puVar15 + 0x10);
  if (((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0)) {
    uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();
    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);
    *(undefined4 *)(puVar15 + -0x28) = uVar12;
    lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);
    if (lVar17 == -1) {
      iVar2 = -1;
    }
    else {
      *(longlong *)(puVar1 + 0x14) = lVar17;
      iVar2 = 0;
      *puVar1 = *puVar1 & 0xffffffef;
    }
    return iVar2;
  }
  UNRECOVERED_JUMPTABLE = *(code **)(UNRECOVERED_JUMPTABLE + 0x298bc);
  *(undefined4 *)(puVar15 + 0x10) = uVar12;
                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  iVar2 = (*UNRECOVERED_JUMPTABLE)(puVar1);
  return iVar2;
}



undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined1 *puVar10;
  uint *puVar11;
  uint uVar12;
  undefined1 *unaff_s3;
  undefined1 *puVar13;
  undefined *puVar14;
  code *UNRECOVERED_JUMPTABLE;
  longlong lVar15;
  undefined1 auStack_68 [16];
  int local_58 [2];
  int local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  uint *local_2c;
  
  puVar1 = PTR___stack_chk_guard_0004b460;
  puVar13 = auStack_68;
  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;
  local_40 = param_2;
  local_3c[0] = param_1;
  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();
  if (iVar2 != 1) {
    local_34 = 0;
    local_30 = 0;
    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);
    unaff_s3 = (undefined1 *)(iVar2 + 1);
    if (unaff_s3 != (undefined1 *)0x0) {
      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
      uVar4 = 0x129;
      if (iVar2 == 0) goto LAB_00021a80;
      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);
      iVar3 = iVar2 + 1;
      if (iVar3 != 0) {
        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
        if (iVar5 == 0) {
          uVar4 = 0x12d;
          goto LAB_00021a80;
        }
        puVar10 = unaff_s3 + iVar3;
        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {
          if (puVar10 < (undefined1 *)0x7d0) {
            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);
            puVar10 = &stack0xffffffb0 + iVar5;
            puVar13 = puVar10 + (int)unaff_s3 * 4;
            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);
            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
            if (iVar6 == 0) {
LAB_00021aa0:
              do {
                uVar4 = 0x147;
LAB_00021a80:
                (*(code *)PTR___assert_fail_0004b2dc)
                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,
                           PTR_DAT_0004b1a0 + -0x6818);
              } while( true );
            }
            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);
            *(int *)((int)local_58 + iVar5) = param_3;
            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f
                                );
            unaff_s3 = puVar13;
            puVar13 = auStack_68 + iVar5;
            goto LAB_00021810;
          }
          iVar5 = (*(code *)PTR_malloc_0004b3e8)();
          if (iVar5 != 0) {
            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);
            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);
            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
            if (iVar6 == 0) goto LAB_00021aa0;
            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);
            local_58[0] = param_3;
            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);
            (*(code *)PTR_free_0004b46c)(iVar5);
            unaff_s3 = puVar13;
            puVar13 = auStack_68;
            goto LAB_00021810;
          }
        }
        uVar4 = 0xffffffff;
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();
        *puVar7 = 0xc;
        goto LAB_00021810;
      }
    }
  }
  iVar2 = local_40;
  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);
  local_58[0] = param_3;
  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);
  puVar13 = auStack_68;
LAB_00021810:
  if (local_2c == *(uint **)puVar1) {
    return uVar4;
  }
  UNRECOVERED_JUMPTABLE = rpl_fseeko;
  puVar11 = local_2c;
  puVar14 = PTR___stack_chk_fail_0004b438;
  (*(code *)PTR___stack_chk_fail_0004b438)();
  uVar12 = puVar11[2];
  uVar9 = puVar11[1];
  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;
  *(undefined **)(puVar13 + -0x10) = puVar1;
  *(undefined4 *)(puVar13 + -0x14) = uVar4;
  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;
  *(undefined1 **)(puVar13 + -8) = unaff_s3;
  *(int *)(puVar13 + -0xc) = param_3;
  uVar4 = *(undefined4 *)(puVar13 + 0x10);
  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {
    uVar8 = (**(code **)(puVar14 + 0x298dc))();
    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);
    *(undefined4 *)(puVar13 + -0x28) = uVar4;
    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);
    if (lVar15 == -1) {
      uVar4 = 0xffffffff;
    }
    else {
      *(longlong *)(puVar11 + 0x14) = lVar15;
      uVar4 = 0;
      *puVar11 = *puVar11 & 0xffffffef;
    }
    return uVar4;
  }
  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);
  *(undefined4 *)(puVar13 + 0x10) = uVar4;
                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);
  return uVar4;
}


lui gp,0x3
addiu gp,gp,0x19ec
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x7d40(gp)
sw s1,0x44(sp)
lw s1,-0x7cf0(gp)
sw s8,0x60(sp)
or s8,sp,zero
sw s2,0x48(sp)
or s2,a2,zero
sw gp,0x18(sp)
sw ra,0x64(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s0,0x40(sp)
sw a0,0x2c(s8)
sw a1,0x28(s8)
lw v0,0x0(s1)
sw v0,0x3c(s8)
jalr t9
_nop
li v1,0x1
bne v0,v1,0x00021858
_lw gp,0x18(s8)
lw s0,0x28(s8)
lw t9,-0x7d94(gp)
jalr t9
_or a0,s0,zero
ext a3,s2,0x2,0x1
lw gp,0x18(s8)
addu a2,s0,v0
lw a0,0x2c(s8)
or a1,s0,zero
lw t9,-0x7eec(gp)
addiu t9,t9,0xb20
bal 0x00020b20
_sw s2,0x10(sp)
lw gp,0x18(s8)
or s0,v0,zero
lw a0,0x3c(s8)
or v0,s0,zero
lw v1,0x0(s1)
bne a0,v1,0x00021aa8
_lw t9,-0x7d18(gp)
or sp,s8,zero
lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
addiu s0,s8,0x34
lw t9,-0x7cbc(gp)
addiu s5,s8,0x2c
sw zero,0x34(s8)
or a2,zero,zero
or a0,zero,zero
sw zero,0x4(s0)
or a3,s0,zero
jalr t9
_or a1,s5,zero
addiu s3,v0,0x1
beq s3,zero,0x000217d4
_lw gp,0x18(s8)
lw t9,-0x7cf4(gp)
jalr t9
_or a0,s0,zero
li a2,0x129
beq v0,zero,0x00021a80
_lw gp,0x18(s8)
lw t9,-0x7cbc(gp)
addiu s6,s8,0x28
or a2,zero,zero
or a0,zero,zero
or a3,s0,zero
jalr t9
_or a1,s6,zero
addiu s7,v0,0x1
lw gp,0x18(s8)
beq s7,zero,0x000217d4
_or s4,v0,zero
lw t9,-0x7cf4(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x00021a7c
_lw gp,0x18(s8)
addu a0,s3,s7
sltu v0,a0,s3
bne v0,zero,0x000219a0
_lui v0,0x4000
sltu v0,a0,v0
beq v0,zero,0x000219a0
_sltiu v0,a0,0x7d0
beq v0,zero,0x000219bc
_sll a0,a0,0x2
addiu a0,a0,0x7
lw t9,-0x7cbc(gp)
or a1,s5,zero
srl v0,a0,0x3
sll v1,s3,0x2
sll v0,v0,0x3
or a2,s3,zero
subu sp,sp,v0
or a3,s0,zero
addiu s5,sp,0x18
or a0,s5,zero
jalr t9
_addu s3,s5,v1
lw gp,0x18(s8)
lw t9,-0x7cf4(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x00021aa0
_lw gp,0x18(s8)
lw t9,-0x7cbc(gp)
or a3,s0,zero
or a2,s7,zero
or a1,s6,zero
jalr t9
_or a0,s3,zero
sll a2,s4,0x2
lw gp,0x18(s8)
ext a3,s2,0x2,0x1
addu a2,s3,a2
sw s2,0x10(sp)
or a1,s3,zero
lw t9,-0x7eec(gp)
addiu t9,t9,-0x7d0
bal 0x0001f830
_or a0,s5,zero
lw gp,0x18(s8)
b 0x00021810
_or s0,v0,zero
lw t9,-0x7dbc(gp)
jalr t9
_li s0,-0x1
li v1,0xc
lw gp,0x18(s8)
b 0x00021810
_sw v1,0x0(v0)
lw t9,-0x7d68(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x000219a0
_or v1,v0,zero
lw t9,-0x7cbc(gp)
sll v0,s3,0x2
or a0,v1,zero
sw v1,0x24(s8)
or a2,s3,zero
or a3,s0,zero
or a1,s5,zero
jalr t9
_addu s3,v1,v0
lw gp,0x18(s8)
lw t9,-0x7cf4(gp)
jalr t9
_or a0,s0,zero
lw gp,0x18(s8)
beq v0,zero,0x00021aa0
_lw v1,0x24(s8)
lw t9,-0x7cbc(gp)
or a3,s0,zero
sw v1,0x24(s8)
or a2,s7,zero
or a1,s6,zero
jalr t9
_or a0,s3,zero
sll a2,s4,0x2
lw gp,0x18(s8)
ext a3,s2,0x2,0x1
lw v1,0x24(s8)
addu a2,s3,a2
or a1,s3,zero
sw s2,0x10(sp)
lw t9,-0x7eec(gp)
addiu t9,t9,-0x7d0
bal 0x0001f830
_or a0,v1,zero
lw gp,0x18(s8)
or s0,v0,zero
lw v1,0x24(s8)
lw t9,-0x7ce4(gp)
jalr t9
_or a0,v1,zero
b 0x00021810
_lw gp,0x18(s8)
li a2,0x12d
lw a3,-0x7fb0(gp)
lw a1,-0x7fb0(gp)
lw a0,-0x7fb0(gp)
lw t9,-0x7e74(gp)
addiu a3,a3,-0x6818
addiu a1,a1,-0x6b34
jalr t9
_addiu a0,a0,-0x6b28
b 0x00021a80
_li a2,0x147
jalr t9
_nop
(translation_unit "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}\n\n" (function_definition "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}" type_identifier (function_declarator "rpl_fnmatch(undefined4 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined1 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [16];" type_identifier (array_declarator "auStack_68 [16]" identifier [ number_literal ]) ;) (declaration "int local_58 [2];" primitive_type (array_declarator "local_58 [2]" identifier [ number_literal ]) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c [2];" type_identifier (array_declarator "local_3c [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0004b460" identifier = identifier) ;) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_0004b460" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_0004b460" * (cast_expression "(uint **)PTR___stack_chk_guard_0004b460" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004b410)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004b410)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004b410" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_3c,0,&local_34)" ( number_literal , identifier , number_literal , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "unaff_s3 = (undefined1 *)(iVar2 + 1);" (assignment_expression "unaff_s3 = (undefined1 *)(iVar2 + 1)" identifier = (cast_expression "(undefined1 *)(iVar2 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (if_statement "if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }" if (parenthesized_expression "(unaff_s3 != (undefined1 *)0x0)" ( (binary_expression "unaff_s3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar4 = 0x129;" (assignment_expression "uVar4 = 0x129" identifier = number_literal) ;) (if_statement "if (iVar2 == 0) goto LAB_00021a80;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00021a80;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,&local_40,0,&local_34)" ( number_literal , (pointer_expression "&local_40" & identifier) , number_literal , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "iVar3 = iVar2 + 1;" (assignment_expression "iVar3 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }" { (expression_statement "uVar4 = 0x12d;" (assignment_expression "uVar4 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_00021a80;" goto statement_identifier ;) })) (expression_statement "puVar10 = unaff_s3 + iVar3;" (assignment_expression "puVar10 = unaff_s3 + iVar3" identifier = (binary_expression "unaff_s3 + iVar3" identifier + identifier)) ;) (if_statement "if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }" if (parenthesized_expression "((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000))" ( (binary_expression "(unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)" (parenthesized_expression "(unaff_s3 <= puVar10)" ( (binary_expression "unaff_s3 <= puVar10" identifier <= identifier) )) && (parenthesized_expression "(puVar10 < (undefined1 *)0x40000000)" ( (binary_expression "puVar10 < (undefined1 *)0x40000000" identifier < (cast_expression "(undefined1 *)0x40000000" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }" { (if_statement "if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }" if (parenthesized_expression "(puVar10 < (undefined1 *)0x7d0)" ( (binary_expression "puVar10 < (undefined1 *)0x7d0" identifier < (cast_expression "(undefined1 *)0x7d0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }" { (expression_statement "iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)puVar10 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)puVar10 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)puVar10 * 4 + 7U & 0xfffffff8" (binary_expression "(int)puVar10 * 4 + 7U" (binary_expression "(int)puVar10 * 4" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = &stack0xffffffb0 + iVar5;" (assignment_expression "puVar10 = &stack0xffffffb0 + iVar5" identifier = (binary_expression "&stack0xffffffb0 + iVar5" (pointer_expression "&stack0xffffffb0" & identifier) + identifier)) ;) (expression_statement "puVar13 = puVar10 + (int)unaff_s3 * 4;" (assignment_expression "puVar13 = puVar10 + (int)unaff_s3 * 4" identifier = (binary_expression "puVar10 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,local_3c,unaff_s3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }" { (labeled_statement "LAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );" statement_identifier : (do_statement "do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );" do (compound_statement "{\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              }" { (expression_statement "uVar4 = 0x147;" (assignment_expression "uVar4 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);" (call_expression "(*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004b2dc)" ( (pointer_expression "*(code *)PTR___assert_fail_0004b2dc" * (cast_expression "(code *)PTR___assert_fail_0004b2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818)" ( (binary_expression "PTR_DAT_0004b1a0 + -0x6b28" identifier + number_literal) , (binary_expression "PTR_DAT_0004b1a0 + -0x6b34" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0004b1a0 + -0x6818" identifier + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,&local_40,iVar3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "*(int *)((int)local_58 + iVar5) = param_3;" (assignment_expression "*(int *)((int)local_58 + iVar5) = param_3" (pointer_expression "*(int *)((int)local_58 + iVar5)" * (cast_expression "(int *)((int)local_58 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + iVar5)" ( (binary_expression "(int)local_58 + iVar5" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );" (assignment_expression "uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" identifier = (call_expression "FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" identifier (argument_list "(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" ( identifier , identifier , (binary_expression "puVar13 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal)) , (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 << 0x1d)" ( (binary_expression "param_3 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "unaff_s3 = puVar13;" (assignment_expression "unaff_s3 = puVar13" identifier = identifier) ;) (expression_statement "puVar13 = auStack_68 + iVar5;" (assignment_expression "puVar13 = auStack_68 + iVar5" identifier = (binary_expression "auStack_68 + iVar5" identifier + identifier)) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) (expression_statement "iVar5 = (*(code *)PTR_malloc_0004b3e8)();" (assignment_expression "iVar5 = (*(code *)PTR_malloc_0004b3e8)()" identifier = (call_expression "(*(code *)PTR_malloc_0004b3e8)()" (parenthesized_expression "(*(code *)PTR_malloc_0004b3e8)" ( (pointer_expression "*(code *)PTR_malloc_0004b3e8" * (cast_expression "(code *)PTR_malloc_0004b3e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }" { (expression_statement "puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);" (assignment_expression "puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4)" identifier = (cast_expression "(undefined1 *)(iVar5 + (int)unaff_s3 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + (int)unaff_s3 * 4)" ( (binary_expression "iVar5 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,local_3c,unaff_s3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00021aa0;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00021aa0;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,&local_40,iVar3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "puVar13 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal)) , (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 << 0x1d)" ( (binary_expression "param_3 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(*(code *)PTR_free_0004b46c)(iVar5);" (call_expression "(*(code *)PTR_free_0004b46c)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_0004b46c)" ( (pointer_expression "*(code *)PTR_free_0004b46c" * (cast_expression "(code *)PTR_free_0004b46c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "unaff_s3 = puVar13;" (assignment_expression "unaff_s3 = puVar13" identifier = identifier) ;) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) })) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004b394)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004b394)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004b394)" ( (pointer_expression "*(code *)PTR___errno_location_0004b394" * (cast_expression "(code *)PTR___errno_location_0004b394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0xc;" (assignment_expression "*puVar7 = 0xc" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) })) })) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_0004b3bc)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004b3bc)" ( (pointer_expression "*(code *)PTR_strlen_0004b3bc" * (cast_expression "(code *)PTR_strlen_0004b3bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "iVar2 + iVar3" identifier + identifier) , (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 << 0x1d)" ( (binary_expression "param_3 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" identifier = identifier) ;) (labeled_statement "LAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_2c == *(uint **)puVar1)" ( (binary_expression "local_2c == *(uint **)puVar1" identifier == (pointer_expression "*(uint **)puVar1" * (cast_expression "(uint **)puVar1" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = rpl_fseeko;" (assignment_expression "UNRECOVERED_JUMPTABLE = rpl_fseeko" identifier = identifier) ;) (expression_statement "puVar11 = local_2c;" (assignment_expression "puVar11 = local_2c" identifier = identifier) ;) (expression_statement "puVar14 = PTR___stack_chk_fail_0004b438;" (assignment_expression "puVar14 = PTR___stack_chk_fail_0004b438" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" * (cast_expression "(code *)PTR___stack_chk_fail_0004b438" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar12 = puVar11[2];" (assignment_expression "uVar12 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar11[1];" (assignment_expression "uVar9 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;" (assignment_expression "*(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0" (pointer_expression "*(undefined **)(puVar13 + -0x20)" * (cast_expression "(undefined **)(puVar13 + -0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (binary_expression "puVar14 + 0x316a0" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar13 + -0x10) = puVar1;" (assignment_expression "*(undefined **)(puVar13 + -0x10) = puVar1" (pointer_expression "*(undefined **)(puVar13 + -0x10)" * (cast_expression "(undefined **)(puVar13 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;" (assignment_expression "*(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE" (pointer_expression "*(code **)(puVar13 + -4)" * (cast_expression "(code **)(puVar13 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar13 + -8) = unaff_s3;" (assignment_expression "*(undefined1 **)(puVar13 + -8) = unaff_s3" (pointer_expression "*(undefined1 **)(puVar13 + -8)" * (cast_expression "(undefined1 **)(puVar13 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0xc) = param_3;" (assignment_expression "*(int *)(puVar13 + -0xc) = param_3" (pointer_expression "*(int *)(puVar13 + -0xc)" * (cast_expression "(int *)(puVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar13 + 0x10);" (assignment_expression "uVar4 = *(undefined4 *)(puVar13 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" * (cast_expression "(undefined4 *)(puVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }" if (parenthesized_expression "(((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0))" ( (binary_expression "((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)" (parenthesized_expression "((uVar12 == uVar9) && (puVar11[5] == puVar11[4]))" ( (binary_expression "(uVar12 == uVar9) && (puVar11[5] == puVar11[4])" (parenthesized_expression "(uVar12 == uVar9)" ( (binary_expression "uVar12 == uVar9" identifier == identifier) )) && (parenthesized_expression "(puVar11[5] == puVar11[4])" ( (binary_expression "puVar11[5] == puVar11[4]" (subscript_expression "puVar11[5]" identifier [ number_literal ]) == (subscript_expression "puVar11[4]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar11[9] == 0)" ( (binary_expression "puVar11[9] == 0" (subscript_expression "puVar11[9]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }" { (expression_statement "uVar8 = (**(code **)(puVar14 + 0x298dc))();" (assignment_expression "uVar8 = (**(code **)(puVar14 + 0x298dc))()" identifier = (call_expression "(**(code **)(puVar14 + 0x298dc))()" (parenthesized_expression "(**(code **)(puVar14 + 0x298dc))" ( (pointer_expression "**(code **)(puVar14 + 0x298dc)" * (pointer_expression "*(code **)(puVar14 + 0x298dc)" * (cast_expression "(code **)(puVar14 + 0x298dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x298dc)" ( (binary_expression "puVar14 + 0x298dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" identifier = (pointer_expression "*(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" * (cast_expression "(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar13 + -0x20) + -0x7d54)" ( (binary_expression "*(int *)(puVar13 + -0x20) + -0x7d54" (pointer_expression "*(int *)(puVar13 + -0x20)" * (cast_expression "(int *)(puVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x28) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x28) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x28)" * (cast_expression "(undefined4 *)(puVar13 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x28)" ( (binary_expression "puVar13 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);" (assignment_expression "lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar8)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar8)" ( identifier )))) ;) (if_statement "if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" if (parenthesized_expression "(lVar15 == -1)" ( (binary_expression "lVar15 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0xffffffff;\n    }" { (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" else (compound_statement "{\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" { (expression_statement "*(longlong *)(puVar11 + 0x14) = lVar15;" (assignment_expression "*(longlong *)(puVar11 + 0x14) = lVar15" (pointer_expression "*(longlong *)(puVar11 + 0x14)" * (cast_expression "(longlong *)(puVar11 + 0x14)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*puVar11 = *puVar11 & 0xffffffef;" (assignment_expression "*puVar11 = *puVar11 & 0xffffffef" (pointer_expression "*puVar11" * identifier) = (binary_expression "*puVar11 & 0xffffffef" (pointer_expression "*puVar11" * identifier) & number_literal)) ;) }))) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc)" identifier = (pointer_expression "*(code **)(puVar14 + 0x298bc)" * (cast_expression "(code **)(puVar14 + 0x298bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x298bc)" ( (binary_expression "puVar14 + 0x298bc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + 0x10) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + 0x10) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" * (cast_expression "(undefined4 *)(puVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = identifier) ;) comment comment (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar11)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar11)" ( identifier )))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "int rpl_fnmatch(char *pattern,char *string,int flags)\n\n{\n  char *string_00;\n  uint *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  wchar_t *pwVar9;\n  uint uVar10;\n  int *piVar11;\n  undefined4 uVar12;\n  wchar_t *unaff_s3;\n  wchar_t *pwVar13;\n  int iVar14;\n  int in_t9;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined1 *puVar15;\n  code *pcVar16;\n  longlong lVar17;\n  undefined1 auStackY_68 [16];\n  int local_50 [3];\n  wchar_t *local_44;\n  char *local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  local_50[0] = in_t9 + 0x319ec;\n  puVar15 = auStackY_68;\n  piVar11 = *(int **)(in_t9 + 0x29cfc);\n  puVar1 = (uint *)*piVar11;\n  local_40 = string;\n  local_3c[0] = pattern;\n  iVar2 = (**(code **)(in_t9 + 0x29cac))();\n  if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);\n    unaff_s3 = (wchar_t *)(iVar2 + 1);\n    if (unaff_s3 != (wchar_t *)0x0) {\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  string_00 = local_40;\n  iVar2 = (**(code **)(local_50[0] + -0x7d94))(local_40);\n  iVar2 = internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n  puVar15 = auStackY_68;\nLAB_00021810:\n  UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18);\n  if (puVar1 == (uint *)*piVar11) {\n    return iVar2;\n  }\n  pcVar16 = rpl_fseeko;\n  (*UNRECOVERED_JUMPTABLE)();\n  uVar10 = puVar1[2];\n  uVar8 = puVar1[1];\n  *(code **)(puVar15 + -0x20) = UNRECOVERED_JUMPTABLE + 0x316a0;\n  *(int **)(puVar15 + -0x10) = piVar11;\n  *(int *)(puVar15 + -0x14) = iVar2;\n  *(code **)(puVar15 + -4) = pcVar16;\n  *(wchar_t **)(puVar15 + -8) = unaff_s3;\n  *(int *)(puVar15 + -0xc) = flags;\n  uVar12 = *(undefined4 *)(puVar15 + 0x10);\n  if (((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0)) {\n    uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar15 + -0x28) = uVar12;\n    lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);\n    if (lVar17 == -1) {\n      iVar2 = -1;\n    }\n    else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }\n    return iVar2;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(UNRECOVERED_JUMPTABLE + 0x298bc);\n  *(undefined4 *)(puVar15 + 0x10) = uVar12;\n                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar2 = (*UNRECOVERED_JUMPTABLE)(puVar1);\n  return iVar2;\n}\n\n" (function_definition "int rpl_fnmatch(char *pattern,char *string,int flags)\n\n{\n  char *string_00;\n  uint *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  wchar_t *pwVar9;\n  uint uVar10;\n  int *piVar11;\n  undefined4 uVar12;\n  wchar_t *unaff_s3;\n  wchar_t *pwVar13;\n  int iVar14;\n  int in_t9;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined1 *puVar15;\n  code *pcVar16;\n  longlong lVar17;\n  undefined1 auStackY_68 [16];\n  int local_50 [3];\n  wchar_t *local_44;\n  char *local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  local_50[0] = in_t9 + 0x319ec;\n  puVar15 = auStackY_68;\n  piVar11 = *(int **)(in_t9 + 0x29cfc);\n  puVar1 = (uint *)*piVar11;\n  local_40 = string;\n  local_3c[0] = pattern;\n  iVar2 = (**(code **)(in_t9 + 0x29cac))();\n  if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);\n    unaff_s3 = (wchar_t *)(iVar2 + 1);\n    if (unaff_s3 != (wchar_t *)0x0) {\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  string_00 = local_40;\n  iVar2 = (**(code **)(local_50[0] + -0x7d94))(local_40);\n  iVar2 = internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n  puVar15 = auStackY_68;\nLAB_00021810:\n  UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18);\n  if (puVar1 == (uint *)*piVar11) {\n    return iVar2;\n  }\n  pcVar16 = rpl_fseeko;\n  (*UNRECOVERED_JUMPTABLE)();\n  uVar10 = puVar1[2];\n  uVar8 = puVar1[1];\n  *(code **)(puVar15 + -0x20) = UNRECOVERED_JUMPTABLE + 0x316a0;\n  *(int **)(puVar15 + -0x10) = piVar11;\n  *(int *)(puVar15 + -0x14) = iVar2;\n  *(code **)(puVar15 + -4) = pcVar16;\n  *(wchar_t **)(puVar15 + -8) = unaff_s3;\n  *(int *)(puVar15 + -0xc) = flags;\n  uVar12 = *(undefined4 *)(puVar15 + 0x10);\n  if (((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0)) {\n    uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar15 + -0x28) = uVar12;\n    lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);\n    if (lVar17 == -1) {\n      iVar2 = -1;\n    }\n    else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }\n    return iVar2;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(UNRECOVERED_JUMPTABLE + 0x298bc);\n  *(undefined4 *)(puVar15 + 0x10) = uVar12;\n                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar2 = (*UNRECOVERED_JUMPTABLE)(puVar1);\n  return iVar2;\n}" primitive_type (function_declarator "rpl_fnmatch(char *pattern,char *string,int flags)" identifier (parameter_list "(char *pattern,char *string,int flags)" ( (parameter_declaration "char *pattern" primitive_type (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) ))) (compound_statement "{\n  char *string_00;\n  uint *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  wchar_t *pwVar9;\n  uint uVar10;\n  int *piVar11;\n  undefined4 uVar12;\n  wchar_t *unaff_s3;\n  wchar_t *pwVar13;\n  int iVar14;\n  int in_t9;\n  code *UNRECOVERED_JUMPTABLE;\n  undefined1 *puVar15;\n  code *pcVar16;\n  longlong lVar17;\n  undefined1 auStackY_68 [16];\n  int local_50 [3];\n  wchar_t *local_44;\n  char *local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  local_50[0] = in_t9 + 0x319ec;\n  puVar15 = auStackY_68;\n  piVar11 = *(int **)(in_t9 + 0x29cfc);\n  puVar1 = (uint *)*piVar11;\n  local_40 = string;\n  local_3c[0] = pattern;\n  iVar2 = (**(code **)(in_t9 + 0x29cac))();\n  if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);\n    unaff_s3 = (wchar_t *)(iVar2 + 1);\n    if (unaff_s3 != (wchar_t *)0x0) {\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  string_00 = local_40;\n  iVar2 = (**(code **)(local_50[0] + -0x7d94))(local_40);\n  iVar2 = internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n  puVar15 = auStackY_68;\nLAB_00021810:\n  UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18);\n  if (puVar1 == (uint *)*piVar11) {\n    return iVar2;\n  }\n  pcVar16 = rpl_fseeko;\n  (*UNRECOVERED_JUMPTABLE)();\n  uVar10 = puVar1[2];\n  uVar8 = puVar1[1];\n  *(code **)(puVar15 + -0x20) = UNRECOVERED_JUMPTABLE + 0x316a0;\n  *(int **)(puVar15 + -0x10) = piVar11;\n  *(int *)(puVar15 + -0x14) = iVar2;\n  *(code **)(puVar15 + -4) = pcVar16;\n  *(wchar_t **)(puVar15 + -8) = unaff_s3;\n  *(int *)(puVar15 + -0xc) = flags;\n  uVar12 = *(undefined4 *)(puVar15 + 0x10);\n  if (((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0)) {\n    uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar15 + -0x28) = uVar12;\n    lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);\n    if (lVar17 == -1) {\n      iVar2 = -1;\n    }\n    else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }\n    return iVar2;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(UNRECOVERED_JUMPTABLE + 0x298bc);\n  *(undefined4 *)(puVar15 + 0x10) = uVar12;\n                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  iVar2 = (*UNRECOVERED_JUMPTABLE)(puVar1);\n  return iVar2;\n}" { (declaration "char *string_00;" primitive_type (pointer_declarator "*string_00" * identifier) ;) (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "wchar_t *pwVar9;" type_identifier (pointer_declarator "*pwVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "wchar_t *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "wchar_t *pwVar13;" type_identifier (pointer_declarator "*pwVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "longlong lVar17;" type_identifier identifier ;) (declaration "undefined1 auStackY_68 [16];" type_identifier (array_declarator "auStackY_68 [16]" identifier [ number_literal ]) ;) (declaration "int local_50 [3];" primitive_type (array_declarator "local_50 [3]" identifier [ number_literal ]) ;) (declaration "wchar_t *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "char *local_3c [2];" primitive_type (pointer_declarator "*local_3c [2]" * (array_declarator "local_3c [2]" identifier [ number_literal ])) ;) (declaration "mbstate_t ps;" type_identifier identifier ;) (expression_statement "local_50[0] = in_t9 + 0x319ec;" (assignment_expression "local_50[0] = in_t9 + 0x319ec" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (binary_expression "in_t9 + 0x319ec" identifier + number_literal)) ;) (expression_statement "puVar15 = auStackY_68;" (assignment_expression "puVar15 = auStackY_68" identifier = identifier) ;) (expression_statement "piVar11 = *(int **)(in_t9 + 0x29cfc);" (assignment_expression "piVar11 = *(int **)(in_t9 + 0x29cfc)" identifier = (pointer_expression "*(int **)(in_t9 + 0x29cfc)" * (cast_expression "(int **)(in_t9 + 0x29cfc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x29cfc)" ( (binary_expression "in_t9 + 0x29cfc" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = (uint *)*piVar11;" (assignment_expression "puVar1 = (uint *)*piVar11" identifier = (cast_expression "(uint *)*piVar11" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (expression_statement "local_40 = string;" (assignment_expression "local_40 = string" identifier = identifier) ;) (expression_statement "local_3c[0] = pattern;" (assignment_expression "local_3c[0] = pattern" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (**(code **)(in_t9 + 0x29cac))();" (assignment_expression "iVar2 = (**(code **)(in_t9 + 0x29cac))()" identifier = (call_expression "(**(code **)(in_t9 + 0x29cac))()" (parenthesized_expression "(**(code **)(in_t9 + 0x29cac))" ( (pointer_expression "**(code **)(in_t9 + 0x29cac)" * (pointer_expression "*(code **)(in_t9 + 0x29cac)" * (cast_expression "(code **)(in_t9 + 0x29cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x29cac)" ( (binary_expression "in_t9 + 0x29cac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);\n    unaff_s3 = (wchar_t *)(iVar2 + 1);\n    if (unaff_s3 != (wchar_t *)0x0) {\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);\n    unaff_s3 = (wchar_t *)(iVar2 + 1);\n    if (unaff_s3 != (wchar_t *)0x0) {\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" { (expression_statement "ps.__count = 0;" (assignment_expression "ps.__count = 0" (field_expression "ps.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "ps.__value.__wch = 0;" (assignment_expression "ps.__value.__wch = 0" (field_expression "ps.__value.__wch" (field_expression "ps.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7cbc)" * (cast_expression "(code **)(local_50[0] + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cbc)" ( (binary_expression "local_50[0] + -0x7cbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(0,local_3c,0,&ps)" ( number_literal , identifier , number_literal , (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "unaff_s3 = (wchar_t *)(iVar2 + 1);" (assignment_expression "unaff_s3 = (wchar_t *)(iVar2 + 1)" identifier = (cast_expression "(wchar_t *)(iVar2 + 1)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (if_statement "if (unaff_s3 != (wchar_t *)0x0) {\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }" if (parenthesized_expression "(unaff_s3 != (wchar_t *)0x0)" ( (binary_expression "unaff_s3 != (wchar_t *)0x0" identifier != (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n      uVar12 = 0x129;\n      iVar2 = local_50[0];\n      if (iVar3 == 0) goto LAB_00021a80;\n      iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);\n      iVar14 = iVar3 + 1;\n      if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }\n    }" { (expression_statement "iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps);" (assignment_expression "iVar3 = (**(code **)(local_50[0] + -0x7cf4))(&ps)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7cf4))(&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cf4))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cf4)" * (pointer_expression "*(code **)(local_50[0] + -0x7cf4)" * (cast_expression "(code **)(local_50[0] + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cf4)" ( (binary_expression "local_50[0] + -0x7cf4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "uVar12 = 0x129;" (assignment_expression "uVar12 = 0x129" identifier = number_literal) ;) (expression_statement "iVar2 = local_50[0];" (assignment_expression "iVar2 = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 0) goto LAB_00021a80;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00021a80;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);" (assignment_expression "iVar3 = (**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7cbc)" * (cast_expression "(code **)(local_50[0] + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cbc)" ( (binary_expression "local_50[0] + -0x7cbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(0,&local_40,0,&ps)" ( number_literal , (pointer_expression "&local_40" & identifier) , number_literal , (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "iVar14 = iVar3 + 1;" (assignment_expression "iVar14 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar14 != 0) {\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n        if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }\n        pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);\n        if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }\n        iVar2 = -1;\n        puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();\n        *puVar5 = 0xc;\n        goto LAB_00021810;\n      }" { (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x7cf4))(&ps)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7cf4))(&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cf4))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cf4)" * (pointer_expression "*(code **)(local_50[0] + -0x7cf4)" * (cast_expression "(code **)(local_50[0] + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cf4)" ( (binary_expression "local_50[0] + -0x7cf4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0x12d;\n          iVar2 = local_50[0];\n          goto LAB_00021a80;\n        }" { (expression_statement "uVar12 = 0x12d;" (assignment_expression "uVar12 = 0x12d" identifier = number_literal) ;) (expression_statement "iVar2 = local_50[0];" (assignment_expression "iVar2 = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00021a80;" goto statement_identifier ;) })) (expression_statement "pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14);" (assignment_expression "pwVar9 = (wchar_t *)((int)unaff_s3 + iVar14)" identifier = (cast_expression "(wchar_t *)((int)unaff_s3 + iVar14)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + iVar14)" ( (binary_expression "(int)unaff_s3 + iVar14" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if ((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)) {\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }" if (parenthesized_expression "((unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000))" ( (binary_expression "(unaff_s3 <= pwVar9) && (pwVar9 < (wchar_t *)0x40000000)" (parenthesized_expression "(unaff_s3 <= pwVar9)" ( (binary_expression "unaff_s3 <= pwVar9" identifier <= identifier) )) && (parenthesized_expression "(pwVar9 < (wchar_t *)0x40000000)" ( (binary_expression "pwVar9 < (wchar_t *)0x40000000" identifier < (cast_expression "(wchar_t *)0x40000000" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }\n          pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();\n          if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }\n        }" { (if_statement "if (pwVar9 < (wchar_t *)0x7d0) {\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }" if (parenthesized_expression "(pwVar9 < (wchar_t *)0x7d0)" ( (binary_expression "pwVar9 < (wchar_t *)0x7d0" identifier < (cast_expression "(wchar_t *)0x7d0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);\n            pwVar13 = (wchar_t *)((int)local_50 + iVar6);\n            pwVar9 = pwVar13 + (int)unaff_s3;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);\n            iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);\n            *(int *)((int)local_3c + iVar6 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));\n            unaff_s3 = pwVar9;\n            puVar15 = auStackY_68 + iVar6;\n            goto LAB_00021810;\n          }" { (expression_statement "iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar6 = -((int)pwVar9 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pwVar9 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pwVar9 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pwVar9 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pwVar9 * 4 + 7U" (binary_expression "(int)pwVar9 * 4" (cast_expression "(int)pwVar9" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pwVar13 = (wchar_t *)((int)local_50 + iVar6);" (assignment_expression "pwVar13 = (wchar_t *)((int)local_50 + iVar6)" identifier = (cast_expression "(wchar_t *)((int)local_50 + iVar6)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + iVar6)" ( (binary_expression "(int)local_50 + iVar6" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pwVar9 = pwVar13 + (int)unaff_s3;" (assignment_expression "pwVar9 = pwVar13 + (int)unaff_s3" identifier = (binary_expression "pwVar13 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps);" (call_expression "(**(code **)(local_50[0] + -0x7cbc))(pwVar13,local_3c,unaff_s3,&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7cbc)" * (cast_expression "(code **)(local_50[0] + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cbc)" ( (binary_expression "local_50[0] + -0x7cbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(pwVar13,local_3c,unaff_s3,&ps)" ( identifier , identifier , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps);" (assignment_expression "iVar4 = (**(code **)(local_50[0] + -0x7cf4))(&ps)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7cf4))(&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cf4))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cf4)" * (pointer_expression "*(code **)(local_50[0] + -0x7cf4)" * (cast_expression "(code **)(local_50[0] + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cf4)" ( (binary_expression "local_50[0] + -0x7cf4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "iVar2 = local_50[0];" (assignment_expression "iVar2 = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar4 == 0) {\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );\n            }" { (labeled_statement "LAB_00021aa0:\n              do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );" statement_identifier : (do_statement "do {\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              } while( true );" do (compound_statement "{\n                uVar12 = 0x147;\nLAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);\n              }" { (expression_statement "uVar12 = 0x147;" (assignment_expression "uVar12 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_00021a80:\n                (**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);" statement_identifier : (expression_statement "(**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818);" (call_expression "(**(code **)(iVar2 + -0x7e74))\n                          (*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818)" (parenthesized_expression "(**(code **)(iVar2 + -0x7e74))" ( (pointer_expression "**(code **)(iVar2 + -0x7e74)" * (pointer_expression "*(code **)(iVar2 + -0x7e74)" * (cast_expression "(code **)(iVar2 + -0x7e74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x7e74)" ( (binary_expression "iVar2 + -0x7e74" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar2 + -0x7fb0) + -0x6b28,*(int *)(iVar2 + -0x7fb0) + -0x6b34,\n                           uVar12,*(int *)(iVar2 + -0x7fb0) + -0x6818)" ( (binary_expression "*(int *)(iVar2 + -0x7fb0) + -0x6b28" (pointer_expression "*(int *)(iVar2 + -0x7fb0)" * (cast_expression "(int *)(iVar2 + -0x7fb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x7fb0)" ( (binary_expression "iVar2 + -0x7fb0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar2 + -0x7fb0) + -0x6b34" (pointer_expression "*(int *)(iVar2 + -0x7fb0)" * (cast_expression "(int *)(iVar2 + -0x7fb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x7fb0)" ( (binary_expression "iVar2 + -0x7fb0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar2 + -0x7fb0) + -0x6818" (pointer_expression "*(int *)(iVar2 + -0x7fb0)" * (cast_expression "(int *)(iVar2 + -0x7fb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x7fb0)" ( (binary_expression "iVar2 + -0x7fb0" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps);" (call_expression "(**(code **)(local_50[0] + -0x7cbc))(pwVar9,&local_40,iVar14,&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7cbc)" * (cast_expression "(code **)(local_50[0] + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cbc)" ( (binary_expression "local_50[0] + -0x7cbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(pwVar9,&local_40,iVar14,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "*(int *)((int)local_3c + iVar6 + -0x1c) = flags;" (assignment_expression "*(int *)((int)local_3c + iVar6 + -0x1c) = flags" (pointer_expression "*(int *)((int)local_3c + iVar6 + -0x1c)" * (cast_expression "(int *)((int)local_3c + iVar6 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + iVar6 + -0x1c)" ( (binary_expression "(int)local_3c + iVar6 + -0x1c" (binary_expression "(int)local_3c + iVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c));" (assignment_expression "iVar2 = internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c))" identifier = (call_expression "internal_fnwmatch(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c))" identifier (argument_list "(pwVar13,pwVar9,pwVar9 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar6 + -0x1c))" ( identifier , identifier , (binary_expression "pwVar9 + iVar3" identifier + identifier) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)((int)local_3c + iVar6 + -0x1c)" * (cast_expression "(int *)((int)local_3c + iVar6 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + iVar6 + -0x1c)" ( (binary_expression "(int)local_3c + iVar6 + -0x1c" (binary_expression "(int)local_3c + iVar6" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "unaff_s3 = pwVar9;" (assignment_expression "unaff_s3 = pwVar9" identifier = identifier) ;) (expression_statement "puVar15 = auStackY_68 + iVar6;" (assignment_expression "puVar15 = auStackY_68 + iVar6" identifier = (binary_expression "auStackY_68 + iVar6" identifier + identifier)) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) (expression_statement "pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))();" (assignment_expression "pwVar9 = (wchar_t *)(**(code **)(local_50[0] + -0x7d68))()" identifier = (cast_expression "(wchar_t *)(**(code **)(local_50[0] + -0x7d68))()" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_50[0] + -0x7d68))()" (parenthesized_expression "(**(code **)(local_50[0] + -0x7d68))" ( (pointer_expression "**(code **)(local_50[0] + -0x7d68)" * (pointer_expression "*(code **)(local_50[0] + -0x7d68)" * (cast_expression "(code **)(local_50[0] + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7d68)" ( (binary_expression "local_50[0] + -0x7d68" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (pwVar9 != (wchar_t *)0x0) {\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }" if (parenthesized_expression "(pwVar9 != (wchar_t *)0x0)" ( (binary_expression "pwVar9 != (wchar_t *)0x0" identifier != (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pwVar13 = pwVar9 + (int)unaff_s3;\n            local_44 = pwVar9;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);\n            iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);\n            iVar2 = local_50[0];\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);\n            iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (**(code **)(local_50[0] + -0x7ce4))(local_44);\n            unaff_s3 = pwVar13;\n            puVar15 = auStackY_68;\n            goto LAB_00021810;\n          }" { (expression_statement "pwVar13 = pwVar9 + (int)unaff_s3;" (assignment_expression "pwVar13 = pwVar9 + (int)unaff_s3" identifier = (binary_expression "pwVar9 + (int)unaff_s3" identifier + (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_44 = pwVar9;" (assignment_expression "local_44 = pwVar9" identifier = identifier) ;) (expression_statement "(**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps);" (call_expression "(**(code **)(local_50[0] + -0x7cbc))(pwVar9,local_3c,unaff_s3,&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7cbc)" * (cast_expression "(code **)(local_50[0] + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cbc)" ( (binary_expression "local_50[0] + -0x7cbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(pwVar9,local_3c,unaff_s3,&ps)" ( identifier , identifier , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps);" (assignment_expression "iVar6 = (**(code **)(local_50[0] + -0x7cf4))(&ps)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7cf4))(&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cf4))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cf4)" * (pointer_expression "*(code **)(local_50[0] + -0x7cf4)" * (cast_expression "(code **)(local_50[0] + -0x7cf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cf4)" ( (binary_expression "local_50[0] + -0x7cf4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "iVar2 = local_50[0];" (assignment_expression "iVar2 = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar6 == 0) goto LAB_00021aa0;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00021aa0;" goto statement_identifier ;)) (expression_statement "(**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps);" (call_expression "(**(code **)(local_50[0] + -0x7cbc))(pwVar13,&local_40,iVar14,&ps)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7cbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7cbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7cbc)" * (cast_expression "(code **)(local_50[0] + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7cbc)" ( (binary_expression "local_50[0] + -0x7cbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(pwVar13,&local_40,iVar14,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "iVar2 = internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (call_expression "internal_fnwmatch(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(local_44,pwVar13,pwVar13 + iVar3,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( identifier , identifier , (binary_expression "pwVar13 + iVar3" identifier + identifier) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , identifier )))) ;) (expression_statement "(**(code **)(local_50[0] + -0x7ce4))(local_44);" (call_expression "(**(code **)(local_50[0] + -0x7ce4))(local_44)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7ce4))" ( (pointer_expression "**(code **)(local_50[0] + -0x7ce4)" * (pointer_expression "*(code **)(local_50[0] + -0x7ce4)" * (cast_expression "(code **)(local_50[0] + -0x7ce4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7ce4)" ( (binary_expression "local_50[0] + -0x7ce4" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(local_44)" ( identifier ))) ;) (expression_statement "unaff_s3 = pwVar13;" (assignment_expression "unaff_s3 = pwVar13" identifier = identifier) ;) (expression_statement "puVar15 = auStackY_68;" (assignment_expression "puVar15 = auStackY_68" identifier = identifier) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) })) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(local_50[0] + -0x7dbc))()" identifier = (cast_expression "(undefined4 *)(**(code **)(local_50[0] + -0x7dbc))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(local_50[0] + -0x7dbc))()" (parenthesized_expression "(**(code **)(local_50[0] + -0x7dbc))" ( (pointer_expression "**(code **)(local_50[0] + -0x7dbc)" * (pointer_expression "*(code **)(local_50[0] + -0x7dbc)" * (cast_expression "(code **)(local_50[0] + -0x7dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7dbc)" ( (binary_expression "local_50[0] + -0x7dbc" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) })) })) (expression_statement "string_00 = local_40;" (assignment_expression "string_00 = local_40" identifier = identifier) ;) (expression_statement "iVar2 = (**(code **)(local_50[0] + -0x7d94))(local_40);" (assignment_expression "iVar2 = (**(code **)(local_50[0] + -0x7d94))(local_40)" identifier = (call_expression "(**(code **)(local_50[0] + -0x7d94))(local_40)" (parenthesized_expression "(**(code **)(local_50[0] + -0x7d94))" ( (pointer_expression "**(code **)(local_50[0] + -0x7d94)" * (pointer_expression "*(code **)(local_50[0] + -0x7d94)" * (cast_expression "(code **)(local_50[0] + -0x7d94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7d94)" ( (binary_expression "local_50[0] + -0x7d94" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "iVar2 = internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "iVar2 = internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (call_expression "internal_fnmatch(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(local_3c[0],string_00,string_00 + iVar2,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "string_00 + iVar2" identifier + identifier) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , identifier )))) ;) (expression_statement "puVar15 = auStackY_68;" (assignment_expression "puVar15 = auStackY_68" identifier = identifier) ;) (labeled_statement "LAB_00021810:\n  UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18);" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(local_50[0] + -0x7d18)" identifier = (pointer_expression "*(code **)(local_50[0] + -0x7d18)" * (cast_expression "(code **)(local_50[0] + -0x7d18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_50[0] + -0x7d18)" ( (binary_expression "local_50[0] + -0x7d18" (subscript_expression "local_50[0]" identifier [ number_literal ]) + number_literal) ))))) ;)) (if_statement "if (puVar1 == (uint *)*piVar11) {\n    return iVar2;\n  }" if (parenthesized_expression "(puVar1 == (uint *)*piVar11)" ( (binary_expression "puVar1 == (uint *)*piVar11" identifier == (cast_expression "(uint *)*piVar11" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pcVar16 = rpl_fseeko;" (assignment_expression "pcVar16 = rpl_fseeko" identifier = identifier) ;) (expression_statement "(*UNRECOVERED_JUMPTABLE)();" (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar10 = puVar1[2];" (assignment_expression "uVar10 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar1[1];" (assignment_expression "uVar8 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "*(code **)(puVar15 + -0x20) = UNRECOVERED_JUMPTABLE + 0x316a0;" (assignment_expression "*(code **)(puVar15 + -0x20) = UNRECOVERED_JUMPTABLE + 0x316a0" (pointer_expression "*(code **)(puVar15 + -0x20)" * (cast_expression "(code **)(puVar15 + -0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (binary_expression "UNRECOVERED_JUMPTABLE + 0x316a0" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar11;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar11" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0x14) = iVar2;" (assignment_expression "*(int *)(puVar15 + -0x14) = iVar2" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -4) = pcVar16;" (assignment_expression "*(code **)(puVar15 + -4) = pcVar16" (pointer_expression "*(code **)(puVar15 + -4)" * (cast_expression "(code **)(puVar15 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar15 + -8) = unaff_s3;" (assignment_expression "*(wchar_t **)(puVar15 + -8) = unaff_s3" (pointer_expression "*(wchar_t **)(puVar15 + -8)" * (cast_expression "(wchar_t **)(puVar15 + -8)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar15 + -0xc) = flags;" (assignment_expression "*(int *)(puVar15 + -0xc) = flags" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "uVar12 = *(undefined4 *)(puVar15 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" * (cast_expression "(undefined4 *)(puVar15 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0)) {\n    uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar15 + -0x28) = uVar12;\n    lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);\n    if (lVar17 == -1) {\n      iVar2 = -1;\n    }\n    else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }\n    return iVar2;\n  }" if (parenthesized_expression "(((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0))" ( (binary_expression "((uVar10 == uVar8) && (puVar1[5] == puVar1[4])) && (puVar1[9] == 0)" (parenthesized_expression "((uVar10 == uVar8) && (puVar1[5] == puVar1[4]))" ( (binary_expression "(uVar10 == uVar8) && (puVar1[5] == puVar1[4])" (parenthesized_expression "(uVar10 == uVar8)" ( (binary_expression "uVar10 == uVar8" identifier == identifier) )) && (parenthesized_expression "(puVar1[5] == puVar1[4])" ( (binary_expression "puVar1[5] == puVar1[4]" (subscript_expression "puVar1[5]" identifier [ number_literal ]) == (subscript_expression "puVar1[4]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar1[9] == 0)" ( (binary_expression "puVar1[9] == 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar15 + -0x28) = uVar12;\n    lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);\n    if (lVar17 == -1) {\n      iVar2 = -1;\n    }\n    else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }\n    return iVar2;\n  }" { (expression_statement "uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))();" (assignment_expression "uVar7 = (**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))()" identifier = (call_expression "(**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))()" (parenthesized_expression "(**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc))" ( (pointer_expression "**(code **)(UNRECOVERED_JUMPTABLE + 0x298dc)" * (pointer_expression "*(code **)(UNRECOVERED_JUMPTABLE + 0x298dc)" * (cast_expression "(code **)(UNRECOVERED_JUMPTABLE + 0x298dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(UNRECOVERED_JUMPTABLE + 0x298dc)" ( (binary_expression "UNRECOVERED_JUMPTABLE + 0x298dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar15 + -0x20) + -0x7d54)" identifier = (pointer_expression "*(code **)(*(int *)(puVar15 + -0x20) + -0x7d54)" * (cast_expression "(code **)(*(int *)(puVar15 + -0x20) + -0x7d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar15 + -0x20) + -0x7d54)" ( (binary_expression "*(int *)(puVar15 + -0x20) + -0x7d54" (pointer_expression "*(int *)(puVar15 + -0x20)" * (cast_expression "(int *)(puVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7);" (assignment_expression "lVar17 = (*UNRECOVERED_JUMPTABLE)(uVar7)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar7)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar7)" ( identifier )))) ;) (if_statement "if (lVar17 == -1) {\n      iVar2 = -1;\n    }\n    else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }" if (parenthesized_expression "(lVar17 == -1)" ( (binary_expression "lVar17 == -1" identifier == number_literal) )) (compound_statement "{\n      iVar2 = -1;\n    }" { (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }" else (compound_statement "{\n      *(longlong *)(puVar1 + 0x14) = lVar17;\n      iVar2 = 0;\n      *puVar1 = *puVar1 & 0xffffffef;\n    }" { (expression_statement "*(longlong *)(puVar1 + 0x14) = lVar17;" (assignment_expression "*(longlong *)(puVar1 + 0x14) = lVar17" (pointer_expression "*(longlong *)(puVar1 + 0x14)" * (cast_expression "(longlong *)(puVar1 + 0x14)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x14)" ( (binary_expression "puVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "*puVar1 = *puVar1 & 0xffffffef;" (assignment_expression "*puVar1 = *puVar1 & 0xffffffef" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 & 0xffffffef" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) }))) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(UNRECOVERED_JUMPTABLE + 0x298bc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(UNRECOVERED_JUMPTABLE + 0x298bc)" identifier = (pointer_expression "*(code **)(UNRECOVERED_JUMPTABLE + 0x298bc)" * (cast_expression "(code **)(UNRECOVERED_JUMPTABLE + 0x298bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(UNRECOVERED_JUMPTABLE + 0x298bc)" ( (binary_expression "UNRECOVERED_JUMPTABLE + 0x298bc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x10) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x10) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" * (cast_expression "(undefined4 *)(puVar15 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) )))) = identifier) ;) comment comment (expression_statement "iVar2 = (*UNRECOVERED_JUMPTABLE)(puVar1);" (assignment_expression "iVar2 = (*UNRECOVERED_JUMPTABLE)(puVar1)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar1)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar1)" ( identifier )))) ;) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    \n                    \n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}\n\n" (function_definition "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    \n                    \n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}" type_identifier (function_declarator "rpl_fnmatch(undefined4 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    \n                    \n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined1 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "longlong lVar15;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [16];" type_identifier (array_declarator "auStack_68 [16]" identifier [ number_literal ]) ;) (declaration "int local_58 [2];" primitive_type (array_declarator "local_58 [2]" identifier [ number_literal ]) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c [2];" type_identifier (array_declarator "local_3c [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0004b460" identifier = identifier) ;) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_0004b460" identifier = (pointer_expression "*(uint **)PTR___stack_chk_guard_0004b460" * (cast_expression "(uint **)PTR___stack_chk_guard_0004b460" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" identifier = identifier) ;) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004b410)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004b410)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004b410" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004b410" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_3c,0,&local_34)" ( number_literal , identifier , number_literal , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "unaff_s3 = (undefined1 *)(iVar2 + 1);" (assignment_expression "unaff_s3 = (undefined1 *)(iVar2 + 1)" identifier = (cast_expression "(undefined1 *)(iVar2 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )))) ;) (if_statement "if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }" if (parenthesized_expression "(unaff_s3 != (undefined1 *)0x0)" ( (binary_expression "unaff_s3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar4 = 0x129;" (assignment_expression "uVar4 = 0x129" identifier = number_literal) ;) (if_statement "if (iVar2 == 0) goto LAB_00021a80;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00021a80;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,&local_40,0,&local_34)" ( number_literal , (pointer_expression "&local_40" & identifier) , number_literal , (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "iVar3 = iVar2 + 1;" (assignment_expression "iVar3 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }" { (expression_statement "iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }" { (expression_statement "uVar4 = 0x12d;" (assignment_expression "uVar4 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_00021a80;" goto statement_identifier ;) })) (expression_statement "puVar10 = unaff_s3 + iVar3;" (assignment_expression "puVar10 = unaff_s3 + iVar3" identifier = (binary_expression "unaff_s3 + iVar3" identifier + identifier)) ;) (if_statement "if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }" if (parenthesized_expression "((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000))" ( (binary_expression "(unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)" (parenthesized_expression "(unaff_s3 <= puVar10)" ( (binary_expression "unaff_s3 <= puVar10" identifier <= identifier) )) && (parenthesized_expression "(puVar10 < (undefined1 *)0x40000000)" ( (binary_expression "puVar10 < (undefined1 *)0x40000000" identifier < (cast_expression "(undefined1 *)0x40000000" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }" { (if_statement "if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }" if (parenthesized_expression "(puVar10 < (undefined1 *)0x7d0)" ( (binary_expression "puVar10 < (undefined1 *)0x7d0" identifier < (cast_expression "(undefined1 *)0x7d0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }" { (expression_statement "iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)puVar10 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)puVar10 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)puVar10 * 4 + 7U & 0xfffffff8" (binary_expression "(int)puVar10 * 4 + 7U" (binary_expression "(int)puVar10 * 4" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = &stack0xffffffb0 + iVar5;" (assignment_expression "puVar10 = &stack0xffffffb0 + iVar5" identifier = (binary_expression "&stack0xffffffb0 + iVar5" (pointer_expression "&stack0xffffffb0" & identifier) + identifier)) ;) (expression_statement "puVar13 = puVar10 + (int)unaff_s3 * 4;" (assignment_expression "puVar13 = puVar10 + (int)unaff_s3 * 4" identifier = (binary_expression "puVar10 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,local_3c,unaff_s3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }" { (labeled_statement "LAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );" statement_identifier : (do_statement "do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );" do (compound_statement "{\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              }" { (expression_statement "uVar4 = 0x147;" (assignment_expression "uVar4 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);" (call_expression "(*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004b2dc)" ( (pointer_expression "*(code *)PTR___assert_fail_0004b2dc" * (cast_expression "(code *)PTR___assert_fail_0004b2dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818)" ( (binary_expression "PTR_DAT_0004b1a0 + -0x6b28" identifier + number_literal) , (binary_expression "PTR_DAT_0004b1a0 + -0x6b34" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0004b1a0 + -0x6818" identifier + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,&local_40,iVar3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "*(int *)((int)local_58 + iVar5) = param_3;" (assignment_expression "*(int *)((int)local_58 + iVar5) = param_3" (pointer_expression "*(int *)((int)local_58 + iVar5)" * (cast_expression "(int *)((int)local_58 + iVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + iVar5)" ( (binary_expression "(int)local_58 + iVar5" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );" (assignment_expression "uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" identifier = (call_expression "FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" identifier (argument_list "(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" ( identifier , identifier , (binary_expression "puVar13 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal)) , (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 << 0x1d)" ( (binary_expression "param_3 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "unaff_s3 = puVar13;" (assignment_expression "unaff_s3 = puVar13" identifier = identifier) ;) (expression_statement "puVar13 = auStack_68 + iVar5;" (assignment_expression "puVar13 = auStack_68 + iVar5" identifier = (binary_expression "auStack_68 + iVar5" identifier + identifier)) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) (expression_statement "iVar5 = (*(code *)PTR_malloc_0004b3e8)();" (assignment_expression "iVar5 = (*(code *)PTR_malloc_0004b3e8)()" identifier = (call_expression "(*(code *)PTR_malloc_0004b3e8)()" (parenthesized_expression "(*(code *)PTR_malloc_0004b3e8)" ( (pointer_expression "*(code *)PTR_malloc_0004b3e8" * (cast_expression "(code *)PTR_malloc_0004b3e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }" { (expression_statement "puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);" (assignment_expression "puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4)" identifier = (cast_expression "(undefined1 *)(iVar5 + (int)unaff_s3 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + (int)unaff_s3 * 4)" ( (binary_expression "iVar5 + (int)unaff_s3 * 4" identifier + (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,local_3c,unaff_s3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" ( (pointer_expression "*(code *)PTR_mbsinit_0004b45c" * (cast_expression "(code *)PTR_mbsinit_0004b45c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00021aa0;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00021aa0;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" * (cast_expression "(code *)PTR_mbsrtowcs_0004b494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,&local_40,iVar3,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "puVar13 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal)) , (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 << 0x1d)" ( (binary_expression "param_3 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(*(code *)PTR_free_0004b46c)(iVar5);" (call_expression "(*(code *)PTR_free_0004b46c)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_0004b46c)" ( (pointer_expression "*(code *)PTR_free_0004b46c" * (cast_expression "(code *)PTR_free_0004b46c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "unaff_s3 = puVar13;" (assignment_expression "unaff_s3 = puVar13" identifier = identifier) ;) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) })) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004b394)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_0004b394)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004b394)" ( (pointer_expression "*(code *)PTR___errno_location_0004b394" * (cast_expression "(code *)PTR___errno_location_0004b394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar7 = 0xc;" (assignment_expression "*puVar7 = 0xc" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (goto_statement "goto LAB_00021810;" goto statement_identifier ;) })) })) })) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_0004b3bc)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004b3bc)" ( (pointer_expression "*(code *)PTR_strlen_0004b3bc" * (cast_expression "(code *)PTR_strlen_0004b3bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "iVar2 + iVar3" identifier + identifier) , (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 << 0x1d)" ( (binary_expression "param_3 << 0x1d" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" identifier = identifier) ;) (labeled_statement "LAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }" statement_identifier : (if_statement "if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_2c == *(uint **)puVar1)" ( (binary_expression "local_2c == *(uint **)puVar1" identifier == (pointer_expression "*(uint **)puVar1" * (cast_expression "(uint **)puVar1" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) }))) (expression_statement "UNRECOVERED_JUMPTABLE = rpl_fseeko;" (assignment_expression "UNRECOVERED_JUMPTABLE = rpl_fseeko" identifier = identifier) ;) (expression_statement "puVar11 = local_2c;" (assignment_expression "puVar11 = local_2c" identifier = identifier) ;) (expression_statement "puVar14 = PTR___stack_chk_fail_0004b438;" (assignment_expression "puVar14 = PTR___stack_chk_fail_0004b438" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" * (cast_expression "(code *)PTR___stack_chk_fail_0004b438" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar12 = puVar11[2];" (assignment_expression "uVar12 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar11[1];" (assignment_expression "uVar9 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;" (assignment_expression "*(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0" (pointer_expression "*(undefined **)(puVar13 + -0x20)" * (cast_expression "(undefined **)(puVar13 + -0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = (binary_expression "puVar14 + 0x316a0" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar13 + -0x10) = puVar1;" (assignment_expression "*(undefined **)(puVar13 + -0x10) = puVar1" (pointer_expression "*(undefined **)(puVar13 + -0x10)" * (cast_expression "(undefined **)(puVar13 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;" (assignment_expression "*(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE" (pointer_expression "*(code **)(puVar13 + -4)" * (cast_expression "(code **)(puVar13 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar13 + -8) = unaff_s3;" (assignment_expression "*(undefined1 **)(puVar13 + -8) = unaff_s3" (pointer_expression "*(undefined1 **)(puVar13 + -8)" * (cast_expression "(undefined1 **)(puVar13 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0xc) = param_3;" (assignment_expression "*(int *)(puVar13 + -0xc) = param_3" (pointer_expression "*(int *)(puVar13 + -0xc)" * (cast_expression "(int *)(puVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar13 + 0x10);" (assignment_expression "uVar4 = *(undefined4 *)(puVar13 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" * (cast_expression "(undefined4 *)(puVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }" if (parenthesized_expression "(((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0))" ( (binary_expression "((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)" (parenthesized_expression "((uVar12 == uVar9) && (puVar11[5] == puVar11[4]))" ( (binary_expression "(uVar12 == uVar9) && (puVar11[5] == puVar11[4])" (parenthesized_expression "(uVar12 == uVar9)" ( (binary_expression "uVar12 == uVar9" identifier == identifier) )) && (parenthesized_expression "(puVar11[5] == puVar11[4])" ( (binary_expression "puVar11[5] == puVar11[4]" (subscript_expression "puVar11[5]" identifier [ number_literal ]) == (subscript_expression "puVar11[4]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar11[9] == 0)" ( (binary_expression "puVar11[9] == 0" (subscript_expression "puVar11[9]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }" { (expression_statement "uVar8 = (**(code **)(puVar14 + 0x298dc))();" (assignment_expression "uVar8 = (**(code **)(puVar14 + 0x298dc))()" identifier = (call_expression "(**(code **)(puVar14 + 0x298dc))()" (parenthesized_expression "(**(code **)(puVar14 + 0x298dc))" ( (pointer_expression "**(code **)(puVar14 + 0x298dc)" * (pointer_expression "*(code **)(puVar14 + 0x298dc)" * (cast_expression "(code **)(puVar14 + 0x298dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x298dc)" ( (binary_expression "puVar14 + 0x298dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" identifier = (pointer_expression "*(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" * (cast_expression "(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar13 + -0x20) + -0x7d54)" ( (binary_expression "*(int *)(puVar13 + -0x20) + -0x7d54" (pointer_expression "*(int *)(puVar13 + -0x20)" * (cast_expression "(int *)(puVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x28) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x28) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x28)" * (cast_expression "(undefined4 *)(puVar13 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x28)" ( (binary_expression "puVar13 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);" (assignment_expression "lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar8)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(uVar8)" ( identifier )))) ;) (if_statement "if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" if (parenthesized_expression "(lVar15 == -1)" ( (binary_expression "lVar15 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar4 = 0xffffffff;\n    }" { (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" else (compound_statement "{\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" { (expression_statement "*(longlong *)(puVar11 + 0x14) = lVar15;" (assignment_expression "*(longlong *)(puVar11 + 0x14) = lVar15" (pointer_expression "*(longlong *)(puVar11 + 0x14)" * (cast_expression "(longlong *)(puVar11 + 0x14)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "*puVar11 = *puVar11 & 0xffffffef;" (assignment_expression "*puVar11 = *puVar11 & 0xffffffef" (pointer_expression "*puVar11" * identifier) = (binary_expression "*puVar11 & 0xffffffef" (pointer_expression "*puVar11" * identifier) & number_literal)) ;) }))) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc)" identifier = (pointer_expression "*(code **)(puVar14 + 0x298bc)" * (cast_expression "(code **)(puVar14 + 0x298bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x298bc)" ( (binary_expression "puVar14 + 0x298bc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar13 + 0x10) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + 0x10) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" * (cast_expression "(undefined4 *)(puVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x10)" ( (binary_expression "puVar13 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11)" identifier = (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar11)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(puVar11)" ( identifier )))) ;) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 ( LIT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (pointer_expression & IDENT) , LIT , (pointer_expression & 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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (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) , IDENT , (binary_expression IDENT + LIT) ))) ;)) }) while (parenthesized_expression ( BOOL )) ;)) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto 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) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (binary_expression IDENT * LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression IDENT + IDENT) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) & LIT)) ;) }))) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    \n                    \n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}" (type_identifier "undefined4") (function_declarator "rpl_fnmatch(undefined4 param_1,int param_2,int param_3)" (identifier "rpl_fnmatch") (parameter_list "(undefined4 param_1,int param_2,int param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  uint *puVar11;\n  uint uVar12;\n  undefined1 *unaff_s3;\n  undefined1 *puVar13;\n  undefined *puVar14;\n  code *UNRECOVERED_JUMPTABLE;\n  longlong lVar15;\n  undefined1 auStack_68 [16];\n  int local_58 [2];\n  int local_40;\n  undefined4 local_3c [2];\n  undefined4 local_34;\n  undefined4 local_30;\n  uint *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0004b460;\n  puVar13 = auStack_68;\n  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }\n  iVar2 = local_40;\n  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);\n  local_58[0] = param_3;\n  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar13 = auStack_68;\nLAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = rpl_fseeko;\n  puVar11 = local_2c;\n  puVar14 = PTR___stack_chk_fail_0004b438;\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  uVar12 = puVar11[2];\n  uVar9 = puVar11[1];\n  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;\n  *(undefined **)(puVar13 + -0x10) = puVar1;\n  *(undefined4 *)(puVar13 + -0x14) = uVar4;\n  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;\n  *(undefined1 **)(puVar13 + -8) = unaff_s3;\n  *(int *)(puVar13 + -0xc) = param_3;\n  uVar4 = *(undefined4 *)(puVar13 + 0x10);\n  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }\n  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);\n  *(undefined4 *)(puVar13 + 0x10) = uVar4;\n                    \n                    \n  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);\n  return uVar4;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint *puVar11;" (type_identifier "uint") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined1 *unaff_s3;" (type_identifier "undefined1") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) (; ";")) (declaration "longlong lVar15;" (type_identifier "longlong") (identifier "lVar15") (; ";")) (declaration "undefined1 auStack_68 [16];" (type_identifier "undefined1") (array_declarator "auStack_68 [16]" (identifier "auStack_68") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int local_58 [2];" (primitive_type "int") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c [2];" (type_identifier "undefined4") (array_declarator "local_3c [2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "uint *local_2c;" (type_identifier "uint") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0004b460" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0004b460")) (; ";")) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" (identifier "puVar13") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "local_2c = *(uint **)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(uint **)PTR___stack_chk_guard_0004b460" (identifier "local_2c") (= "=") (pointer_expression "*(uint **)PTR___stack_chk_guard_0004b460" (* "*") (cast_expression "(uint **)PTR___stack_chk_guard_0004b460" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0004b460")))) (; ";")) (expression_statement "local_40 = param_2;" (assignment_expression "local_40 = param_2" (identifier "local_40") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004b410)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_0004b410)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_0004b410" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_0004b410" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_0004b410"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);\n    unaff_s3 = (undefined1 *)(iVar2 + 1);\n    if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }\n  }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004b494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004b494"))) () ")")) (argument_list "(0,local_3c,0,&local_34)" (( "(") (number_literal "0") (, ",") (identifier "local_3c") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "unaff_s3 = (undefined1 *)(iVar2 + 1);" (assignment_expression "unaff_s3 = (undefined1 *)(iVar2 + 1)" (identifier "unaff_s3") (= "=") (cast_expression "(undefined1 *)(iVar2 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (unaff_s3 != (undefined1 *)0x0) {\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }" (if "if") (parenthesized_expression "(unaff_s3 != (undefined1 *)0x0)" (( "(") (binary_expression "unaff_s3 != (undefined1 *)0x0" (identifier "unaff_s3") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n      uVar4 = 0x129;\n      if (iVar2 == 0) goto LAB_00021a80;\n      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);\n      iVar3 = iVar2 + 1;\n      if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }\n    }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004b45c" (* "*") (cast_expression "(code *)PTR_mbsinit_0004b45c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004b45c"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "uVar4 = 0x129;" (assignment_expression "uVar4 = 0x129" (identifier "uVar4") (= "=") (number_literal "0x129")) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_00021a80;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00021a80;" (goto "goto") (statement_identifier "LAB_00021a80") (; ";"))) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004b494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004b494"))) () ")")) (argument_list "(0,&local_40,0,&local_34)" (( "(") (number_literal "0") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "iVar3 = iVar2 + 1;" (assignment_expression "iVar3 = iVar2 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar3 != 0) {\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n        if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }\n        puVar10 = unaff_s3 + iVar3;\n        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }\n        uVar4 = 0xffffffff;\n        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();\n        *puVar7 = 0xc;\n        goto LAB_00021810;\n      }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004b45c" (* "*") (cast_expression "(code *)PTR_mbsinit_0004b45c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004b45c"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar4 = 0x12d;\n          goto LAB_00021a80;\n        }" ({ "{") (expression_statement "uVar4 = 0x12d;" (assignment_expression "uVar4 = 0x12d" (identifier "uVar4") (= "=") (number_literal "0x12d")) (; ";")) (goto_statement "goto LAB_00021a80;" (goto "goto") (statement_identifier "LAB_00021a80") (; ";")) (} "}"))) (expression_statement "puVar10 = unaff_s3 + iVar3;" (assignment_expression "puVar10 = unaff_s3 + iVar3" (identifier "puVar10") (= "=") (binary_expression "unaff_s3 + iVar3" (identifier "unaff_s3") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }" (if "if") (parenthesized_expression "((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000))" (( "(") (binary_expression "(unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)" (parenthesized_expression "(unaff_s3 <= puVar10)" (( "(") (binary_expression "unaff_s3 <= puVar10" (identifier "unaff_s3") (<= "<=") (identifier "puVar10")) () ")")) (&& "&&") (parenthesized_expression "(puVar10 < (undefined1 *)0x40000000)" (( "(") (binary_expression "puVar10 < (undefined1 *)0x40000000" (identifier "puVar10") (< "<") (cast_expression "(undefined1 *)0x40000000" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40000000"))) () ")"))) () ")")) (compound_statement "{\n          if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }\n          iVar5 = (*(code *)PTR_malloc_0004b3e8)();\n          if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }\n        }" ({ "{") (if_statement "if (puVar10 < (undefined1 *)0x7d0) {\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }" (if "if") (parenthesized_expression "(puVar10 < (undefined1 *)0x7d0)" (( "(") (binary_expression "puVar10 < (undefined1 *)0x7d0" (identifier "puVar10") (< "<") (cast_expression "(undefined1 *)0x7d0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d0"))) () ")")) (compound_statement "{\n            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar5;\n            puVar13 = puVar10 + (int)unaff_s3 * 4;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68 + iVar5;\n            goto LAB_00021810;\n          }" ({ "{") (expression_statement "iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8)" (identifier "iVar5") (= "=") (unary_expression "-((int)puVar10 * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((int)puVar10 * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)puVar10 * 4 + 7U & 0xfffffff8" (binary_expression "(int)puVar10 * 4 + 7U" (binary_expression "(int)puVar10 * 4" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar10 = &stack0xffffffb0 + iVar5;" (assignment_expression "puVar10 = &stack0xffffffb0 + iVar5" (identifier "puVar10") (= "=") (binary_expression "&stack0xffffffb0 + iVar5" (pointer_expression "&stack0xffffffb0" (& "&") (identifier "stack0xffffffb0")) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "puVar13 = puVar10 + (int)unaff_s3 * 4;" (assignment_expression "puVar13 = puVar10 + (int)unaff_s3 * 4" (identifier "puVar13") (= "=") (binary_expression "puVar10 + (int)unaff_s3 * 4" (identifier "puVar10") (+ "+") (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004b494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004b494"))) () ")")) (argument_list "(puVar10,local_3c,unaff_s3,&local_34)" (( "(") (identifier "puVar10") (, ",") (identifier "local_3c") (, ",") (identifier "unaff_s3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004b45c" (* "*") (cast_expression "(code *)PTR_mbsinit_0004b45c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004b45c"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );\n            }" ({ "{") (labeled_statement "LAB_00021aa0:\n              do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );" (statement_identifier "LAB_00021aa0") (: ":") (do_statement "do {\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              } while( true );" (do "do") (compound_statement "{\n                uVar4 = 0x147;\nLAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);\n              }" ({ "{") (expression_statement "uVar4 = 0x147;" (assignment_expression "uVar4 = 0x147" (identifier "uVar4") (= "=") (number_literal "0x147")) (; ";")) (labeled_statement "LAB_00021a80:\n                (*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);" (statement_identifier "LAB_00021a80") (: ":") (expression_statement "(*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818);" (call_expression "(*(code *)PTR___assert_fail_0004b2dc)\n                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818)" (parenthesized_expression "(*(code *)PTR___assert_fail_0004b2dc)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0004b2dc" (* "*") (cast_expression "(code *)PTR___assert_fail_0004b2dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0004b2dc"))) () ")")) (argument_list "(PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,\n                           PTR_DAT_0004b1a0 + -0x6818)" (( "(") (binary_expression "PTR_DAT_0004b1a0 + -0x6b28" (identifier "PTR_DAT_0004b1a0") (+ "+") (number_literal "-0x6b28")) (, ",") (binary_expression "PTR_DAT_0004b1a0 + -0x6b34" (identifier "PTR_DAT_0004b1a0") (+ "+") (number_literal "-0x6b34")) (, ",") (identifier "uVar4") (, ",") (binary_expression "PTR_DAT_0004b1a0 + -0x6818" (identifier "PTR_DAT_0004b1a0") (+ "+") (number_literal "-0x6818")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004b494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004b494"))) () ")")) (argument_list "(puVar13,&local_40,iVar3,&local_34)" (( "(") (identifier "puVar13") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "iVar3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "*(int *)((int)local_58 + iVar5) = param_3;" (assignment_expression "*(int *)((int)local_58 + iVar5) = param_3" (pointer_expression "*(int *)((int)local_58 + iVar5)" (* "*") (cast_expression "(int *)((int)local_58 + iVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_58 + iVar5)" (( "(") (binary_expression "(int)local_58 + iVar5" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (identifier "iVar5")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                );" (assignment_expression "uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" (identifier "uVar4") (= "=") (call_expression "FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" (identifier "FUN_0001f830") (argument_list "(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f\n                                )" (( "(") (identifier "puVar10") (, ",") (identifier "puVar13") (, ",") (binary_expression "puVar13 + iVar2 * 4" (identifier "puVar13") (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) (, ",") (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_3 << 0x1d)" (( "(") (binary_expression "param_3 << 0x1d" (identifier "param_3") (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "unaff_s3 = puVar13;" (assignment_expression "unaff_s3 = puVar13" (identifier "unaff_s3") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar13 = auStack_68 + iVar5;" (assignment_expression "puVar13 = auStack_68 + iVar5" (identifier "puVar13") (= "=") (binary_expression "auStack_68 + iVar5" (identifier "auStack_68") (+ "+") (identifier "iVar5"))) (; ";")) (goto_statement "goto LAB_00021810;" (goto "goto") (statement_identifier "LAB_00021810") (; ";")) (} "}"))) (expression_statement "iVar5 = (*(code *)PTR_malloc_0004b3e8)();" (assignment_expression "iVar5 = (*(code *)PTR_malloc_0004b3e8)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_malloc_0004b3e8)()" (parenthesized_expression "(*(code *)PTR_malloc_0004b3e8)" (( "(") (pointer_expression "*(code *)PTR_malloc_0004b3e8" (* "*") (cast_expression "(code *)PTR_malloc_0004b3e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0004b3e8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);\n            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);\n            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);\n            if (iVar6 == 0) goto LAB_00021aa0;\n            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);\n            local_58[0] = param_3;\n            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_0004b46c)(iVar5);\n            unaff_s3 = puVar13;\n            puVar13 = auStack_68;\n            goto LAB_00021810;\n          }" ({ "{") (expression_statement "puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);" (assignment_expression "puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4)" (identifier "puVar13") (= "=") (cast_expression "(undefined1 *)(iVar5 + (int)unaff_s3 * 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + (int)unaff_s3 * 4)" (( "(") (binary_expression "iVar5 + (int)unaff_s3 * 4" (identifier "iVar5") (+ "+") (binary_expression "(int)unaff_s3 * 4" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004b494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004b494"))) () ")")) (argument_list "(iVar5,local_3c,unaff_s3,&local_34)" (( "(") (identifier "iVar5") (, ",") (identifier "local_3c") (, ",") (identifier "unaff_s3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);" (assignment_expression "iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_mbsinit_0004b45c)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_0004b45c)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_0004b45c" (* "*") (cast_expression "(code *)PTR_mbsinit_0004b45c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_0004b45c"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00021aa0;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00021aa0;" (goto "goto") (statement_identifier "LAB_00021aa0") (; ";"))) (expression_statement "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_0004b494)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_0004b494" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_0004b494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_0004b494"))) () ")")) (argument_list "(puVar13,&local_40,iVar3,&local_34)" (( "(") (identifier "puVar13") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "iVar3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar4") (= "=") (call_expression "FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0001f830") (argument_list "(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (identifier "iVar5") (, ",") (identifier "puVar13") (, ",") (binary_expression "puVar13 + iVar2 * 4" (identifier "puVar13") (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) (, ",") (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_3 << 0x1d)" (( "(") (binary_expression "param_3 << 0x1d" (identifier "param_3") (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_free_0004b46c)(iVar5);" (call_expression "(*(code *)PTR_free_0004b46c)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_0004b46c)" (( "(") (pointer_expression "*(code *)PTR_free_0004b46c" (* "*") (cast_expression "(code *)PTR_free_0004b46c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0004b46c"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "unaff_s3 = puVar13;" (assignment_expression "unaff_s3 = puVar13" (identifier "unaff_s3") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" (identifier "puVar13") (= "=") (identifier "auStack_68")) (; ";")) (goto_statement "goto LAB_00021810;" (goto "goto") (statement_identifier "LAB_00021810") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)()" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_0004b394)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_0004b394)()" (parenthesized_expression "(*(code *)PTR___errno_location_0004b394)" (( "(") (pointer_expression "*(code *)PTR___errno_location_0004b394" (* "*") (cast_expression "(code *)PTR___errno_location_0004b394" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_0004b394"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar7 = 0xc;" (assignment_expression "*puVar7 = 0xc" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00021810;" (goto "goto") (statement_identifier "LAB_00021810") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar2 = local_40;" (assignment_expression "iVar2 = local_40" (identifier "iVar2") (= "=") (identifier "local_40")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_0004b3bc)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_0004b3bc)" (( "(") (pointer_expression "*(code *)PTR_strlen_0004b3bc" (* "*") (cast_expression "(code *)PTR_strlen_0004b3bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0004b3bc"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")")))) (; ";")) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar4") (= "=") (call_expression "FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_00020b20") (argument_list "(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "iVar2") (, ",") (binary_expression "iVar2 + iVar3" (identifier "iVar2") (+ "+") (identifier "iVar3")) (, ",") (binary_expression "(uint)(param_3 << 0x1d) >> 0x1f" (call_expression "(uint)(param_3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_3 << 0x1d)" (( "(") (binary_expression "param_3 << 0x1d" (identifier "param_3") (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "puVar13 = auStack_68;" (assignment_expression "puVar13 = auStack_68" (identifier "puVar13") (= "=") (identifier "auStack_68")) (; ";")) (labeled_statement "LAB_00021810:\n  if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }" (statement_identifier "LAB_00021810") (: ":") (if_statement "if (local_2c == *(uint **)puVar1) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(local_2c == *(uint **)puVar1)" (( "(") (binary_expression "local_2c == *(uint **)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(uint **)puVar1" (* "*") (cast_expression "(uint **)puVar1" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))) (expression_statement "UNRECOVERED_JUMPTABLE = rpl_fseeko;" (assignment_expression "UNRECOVERED_JUMPTABLE = rpl_fseeko" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (identifier "rpl_fseeko")) (; ";")) (expression_statement "puVar11 = local_2c;" (assignment_expression "puVar11 = local_2c" (identifier "puVar11") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar14 = PTR___stack_chk_fail_0004b438;" (assignment_expression "puVar14 = PTR___stack_chk_fail_0004b438" (identifier "puVar14") (= "=") (identifier "PTR___stack_chk_fail_0004b438")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0004b438" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0004b438"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar12 = puVar11[2];" (assignment_expression "uVar12 = puVar11[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar11[1];" (assignment_expression "uVar9 = puVar11[1]" (identifier "uVar9") (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;" (assignment_expression "*(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0" (pointer_expression "*(undefined **)(puVar13 + -0x20)" (* "*") (cast_expression "(undefined **)(puVar13 + -0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (binary_expression "puVar14 + 0x316a0" (identifier "puVar14") (+ "+") (number_literal "0x316a0"))) (; ";")) (expression_statement "*(undefined **)(puVar13 + -0x10) = puVar1;" (assignment_expression "*(undefined **)(puVar13 + -0x10) = puVar1" (pointer_expression "*(undefined **)(puVar13 + -0x10)" (* "*") (cast_expression "(undefined **)(puVar13 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;" (assignment_expression "*(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE" (pointer_expression "*(code **)(puVar13 + -4)" (* "*") (cast_expression "(code **)(puVar13 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "UNRECOVERED_JUMPTABLE")) (; ";")) (expression_statement "*(undefined1 **)(puVar13 + -8) = unaff_s3;" (assignment_expression "*(undefined1 **)(puVar13 + -8) = unaff_s3" (pointer_expression "*(undefined1 **)(puVar13 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar13 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "*(int *)(puVar13 + -0xc) = param_3;" (assignment_expression "*(int *)(puVar13 + -0xc) = param_3" (pointer_expression "*(int *)(puVar13 + -0xc)" (* "*") (cast_expression "(int *)(puVar13 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(puVar13 + 0x10);" (assignment_expression "uVar4 = *(undefined4 *)(puVar13 + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar13 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x10)" (( "(") (binary_expression "puVar13 + 0x10" (identifier "puVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0))" (( "(") (binary_expression "((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)" (parenthesized_expression "((uVar12 == uVar9) && (puVar11[5] == puVar11[4]))" (( "(") (binary_expression "(uVar12 == uVar9) && (puVar11[5] == puVar11[4])" (parenthesized_expression "(uVar12 == uVar9)" (( "(") (binary_expression "uVar12 == uVar9" (identifier "uVar12") (== "==") (identifier "uVar9")) () ")")) (&& "&&") (parenthesized_expression "(puVar11[5] == puVar11[4])" (( "(") (binary_expression "puVar11[5] == puVar11[4]" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (== "==") (subscript_expression "puVar11[4]" (identifier "puVar11") ([ "[") (number_literal "4") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar11[9] == 0)" (( "(") (binary_expression "puVar11[9] == 0" (subscript_expression "puVar11[9]" (identifier "puVar11") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar8 = (**(code **)(puVar14 + 0x298dc))();\n    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);\n    *(undefined4 *)(puVar13 + -0x28) = uVar4;\n    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);\n    if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }\n    return uVar4;\n  }" ({ "{") (expression_statement "uVar8 = (**(code **)(puVar14 + 0x298dc))();" (assignment_expression "uVar8 = (**(code **)(puVar14 + 0x298dc))()" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar14 + 0x298dc))()" (parenthesized_expression "(**(code **)(puVar14 + 0x298dc))" (( "(") (pointer_expression "**(code **)(puVar14 + 0x298dc)" (* "*") (pointer_expression "*(code **)(puVar14 + 0x298dc)" (* "*") (cast_expression "(code **)(puVar14 + 0x298dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x298dc)" (( "(") (binary_expression "puVar14 + 0x298dc" (identifier "puVar14") (+ "+") (number_literal "0x298dc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" (* "*") (cast_expression "(code **)(*(int *)(puVar13 + -0x20) + -0x7d54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar13 + -0x20) + -0x7d54)" (( "(") (binary_expression "*(int *)(puVar13 + -0x20) + -0x7d54" (pointer_expression "*(int *)(puVar13 + -0x20)" (* "*") (cast_expression "(int *)(puVar13 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7d54")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x28) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + -0x28) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x28)" (( "(") (binary_expression "puVar13 + -0x28" (identifier "puVar13") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);" (assignment_expression "lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8)" (identifier "lVar15") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE)(uVar8)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (lVar15 == -1) {\n      uVar4 = 0xffffffff;\n    }\n    else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" (if "if") (parenthesized_expression "(lVar15 == -1)" (( "(") (binary_expression "lVar15 == -1" (identifier "lVar15") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar4 = 0xffffffff;\n    }" ({ "{") (expression_statement "uVar4 = 0xffffffff;" (assignment_expression "uVar4 = 0xffffffff" (identifier "uVar4") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" (else "else") (compound_statement "{\n      *(longlong *)(puVar11 + 0x14) = lVar15;\n      uVar4 = 0;\n      *puVar11 = *puVar11 & 0xffffffef;\n    }" ({ "{") (expression_statement "*(longlong *)(puVar11 + 0x14) = lVar15;" (assignment_expression "*(longlong *)(puVar11 + 0x14) = lVar15" (pointer_expression "*(longlong *)(puVar11 + 0x14)" (* "*") (cast_expression "(longlong *)(puVar11 + 0x14)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "lVar15")) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar11 = *puVar11 & 0xffffffef;" (assignment_expression "*puVar11 = *puVar11 & 0xffffffef" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (binary_expression "*puVar11 & 0xffffffef" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (& "&") (number_literal "0xffffffef"))) (; ";")) (} "}")))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(puVar14 + 0x298bc)" (* "*") (cast_expression "(code **)(puVar14 + 0x298bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar14 + 0x298bc)" (( "(") (binary_expression "puVar14 + 0x298bc" (identifier "puVar14") (+ "+") (number_literal "0x298bc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + 0x10) = uVar4;" (assignment_expression "*(undefined4 *)(puVar13 + 0x10) = uVar4" (pointer_expression "*(undefined4 *)(puVar13 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar13 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x10)" (( "(") (binary_expression "puVar13 + 0x10" (identifier "puVar13") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);" (assignment_expression "uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11)" (identifier "uVar4") (= "=") (call_expression "(*UNRECOVERED_JUMPTABLE)(puVar11)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "(puVar11)" (( "(") (identifier "puVar11") () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

int function_1(char *pattern,char *string,int var_12)

{
  char *var_15;
  type_1 *var_16;
  int var_2;
  int var_4;
  int var_9;
  type_2 *puVar5;
  int var_7;
  type_2 uVar7;
  type_1 var_20;
  type_3 *var_6;
  type_1 var_19;
  int *piVar11;
  type_2 uVar12;
  type_3 *var_3;
  type_3 *var_8;
  int var_5;
  int var_1;
  type_4 *var_18;
  type_5 *var_17;
  type_4 *pcVar16;
  type_6 var_21;
  type_5 var_13 [16];
  int local_50 [3];
  type_3 *local_44;
  char *local_40;
  char *local_3c [2];
  type_7 ps;
  
  local_50[0] = var_1 + 0x319ec;
  var_17 = var_13;
  piVar11 = *(int **)(var_1 + 0x29cfc);
  var_16 = (type_1 *)*piVar11;
  local_40 = string;
  local_3c[0] = pattern;
  var_2 = (**(type_4 **)(var_1 + 0x29cac))();
  if (var_2 != 1) {
    ps.__count = 0;
    ps.__value.__wch = 0;
    var_2 = (**(type_4 **)(local_50[0] + -0x7cbc))(0,local_3c,0,&ps);
    var_3 = (type_3 *)(var_2 + 1);
    if (var_3 != (type_3 *)0x0) {
      var_4 = (**(type_4 **)(local_50[0] + -0x7cf4))(&ps);
      uVar12 = 0x129;
      var_2 = local_50[0];
      if (var_4 == 0) goto LAB_00021a80;
      var_4 = (**(type_4 **)(local_50[0] + -0x7cbc))(0,&local_40,0,&ps);
      var_5 = var_4 + 1;
      if (var_5 != 0) {
        var_2 = (**(type_4 **)(local_50[0] + -0x7cf4))(&ps);
        if (var_2 == 0) {
          uVar12 = 0x12d;
          var_2 = local_50[0];
          goto LAB_00021a80;
        }
        var_6 = (type_3 *)((int)var_3 + var_5);
        if ((var_3 <= var_6) && (var_6 < (type_3 *)0x40000000)) {
          if (var_6 < (type_3 *)0x7d0) {
            var_7 = -((int)var_6 * 4 + 7U & 0xfffffff8);
            var_8 = (type_3 *)((int)local_50 + var_7);
            var_6 = var_8 + (int)var_3;
            (**(type_4 **)(local_50[0] + -0x7cbc))(var_8,local_3c,var_3,&ps);
            var_9 = (**(type_4 **)(local_50[0] + -0x7cf4))(&ps);
            var_2 = local_50[0];
            if (var_9 == 0) {
LAB_00021aa0:
              do {
                uVar12 = 0x147;
LAB_00021a80:
                (**(type_4 **)(var_2 + -0x7e74))
                          (*(int *)(var_2 + -0x7fb0) + -0x6b28,*(int *)(var_2 + -0x7fb0) + -0x6b34,
                           uVar12,*(int *)(var_2 + -0x7fb0) + -0x6818);
              } while( true );
            }
            (**(type_4 **)(local_50[0] + -0x7cbc))(var_6,&local_40,var_5,&ps);
            *(int *)((int)local_3c + var_7 + -0x1c) = var_12;
            var_2 = var_10(var_8,var_6,var_6 + var_4,
                                      var_11((type_1)(var_12 << 0x1d) >> 0x1f,0),
                                      *(int *)((int)local_3c + var_7 + -0x1c));
            var_3 = var_6;
            var_17 = var_13 + var_7;
            goto LAB_00021810;
          }
          var_6 = (type_3 *)(**(type_4 **)(local_50[0] + -0x7d68))();
          if (var_6 != (type_3 *)0x0) {
            var_8 = var_6 + (int)var_3;
            local_44 = var_6;
            (**(type_4 **)(local_50[0] + -0x7cbc))(var_6,local_3c,var_3,&ps);
            var_7 = (**(type_4 **)(local_50[0] + -0x7cf4))(&ps);
            var_2 = local_50[0];
            if (var_7 == 0) goto LAB_00021aa0;
            (**(type_4 **)(local_50[0] + -0x7cbc))(var_8,&local_40,var_5,&ps);
            var_2 = var_10(local_44,var_8,var_8 + var_4,
                                      var_11((type_1)(var_12 << 0x1d) >> 0x1f,0),var_12);
            (**(type_4 **)(local_50[0] + -0x7ce4))(local_44);
            var_3 = var_8;
            var_17 = var_13;
            goto LAB_00021810;
          }
        }
        var_2 = -1;
        puVar5 = (type_2 *)(**(type_4 **)(local_50[0] + -0x7dbc))();
        *puVar5 = 0xc;
        goto LAB_00021810;
      }
    }
  }
  var_15 = local_40;
  var_2 = (**(type_4 **)(local_50[0] + -0x7d94))(local_40);
  var_2 = var_14(local_3c[0],var_15,var_15 + var_2,
                           var_11((type_1)(var_12 << 0x1d) >> 0x1f,0),var_12);
  var_17 = var_13;
LAB_00021810:
  var_18 = *(type_4 **)(local_50[0] + -0x7d18);
  if (var_16 == (type_1 *)*piVar11) {
    return var_2;
  }
  pcVar16 = rpl_fseeko;
  (*var_18)();
  var_19 = var_16[2];
  var_20 = var_16[1];
  *(type_4 **)(var_17 + -0x20) = var_18 + 0x316a0;
  *(int **)(var_17 + -0x10) = piVar11;
  *(int *)(var_17 + -0x14) = var_2;
  *(type_4 **)(var_17 + -4) = pcVar16;
  *(type_3 **)(var_17 + -8) = var_3;
  *(int *)(var_17 + -0xc) = var_12;
  uVar12 = *(type_2 *)(var_17 + 0x10);
  if (((var_19 == var_20) && (var_16[5] == var_16[4])) && (var_16[9] == 0)) {
    uVar7 = (**(type_4 **)(var_18 + 0x298dc))();
    var_18 = *(type_4 **)(*(int *)(var_17 + -0x20) + -0x7d54);
    *(type_2 *)(var_17 + -0x28) = uVar12;
    var_21 = (*var_18)(uVar7);
    if (var_21 == -1) {
      var_2 = -1;
    }
    else {
      *(type_6 *)(var_16 + 0x14) = var_21;
      var_2 = 0;
      *var_16 = *var_16 & 0xffffffef;
    }
    return var_2;
  }
  var_18 = *(type_4 **)(var_18 + 0x298bc);
  *(type_2 *)(var_17 + 0x10) = uVar12;
                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  var_2 = (*var_18)(var_16);
  return var_2;
}


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

undefined4 MASKED(undefined4 param_1,int param_2,int param_3)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 uVar8;
  uint uVar9;
  undefined1 *puVar10;
  uint *puVar11;
  uint uVar12;
  undefined1 *unaff_s3;
  undefined1 *puVar13;
  undefined *puVar14;
  code *UNRECOVERED_JUMPTABLE;
  longlong lVar15;
  undefined1 auStack_68 [16];
  int local_58 [2];
  int local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  uint *local_2c;
  
  puVar1 = PTR___stack_chk_guard_0004b460;
  puVar13 = auStack_68;
  local_2c = *(uint **)PTR___stack_chk_guard_0004b460;
  local_40 = param_2;
  local_3c[0] = param_1;
  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_0004b410)();
  if (iVar2 != 1) {
    local_34 = 0;
    local_30 = 0;
    iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,local_3c,0,&local_34);
    unaff_s3 = (undefined1 *)(iVar2 + 1);
    if (unaff_s3 != (undefined1 *)0x0) {
      iVar2 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
      uVar4 = 0x129;
      if (iVar2 == 0) goto LAB_00021a80;
      iVar2 = (*(code *)PTR_mbsrtowcs_0004b494)(0,&local_40,0,&local_34);
      iVar3 = iVar2 + 1;
      if (iVar3 != 0) {
        iVar5 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
        if (iVar5 == 0) {
          uVar4 = 0x12d;
          goto LAB_00021a80;
        }
        puVar10 = unaff_s3 + iVar3;
        if ((unaff_s3 <= puVar10) && (puVar10 < (undefined1 *)0x40000000)) {
          if (puVar10 < (undefined1 *)0x7d0) {
            iVar5 = -((int)puVar10 * 4 + 7U & 0xfffffff8);
            puVar10 = &stack0xffffffb0 + iVar5;
            puVar13 = puVar10 + (int)unaff_s3 * 4;
            (*(code *)PTR_mbsrtowcs_0004b494)(puVar10,local_3c,unaff_s3,&local_34);
            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
            if (iVar6 == 0) {
LAB_00021aa0:
              do {
                uVar4 = 0x147;
LAB_00021a80:
                (*(code *)PTR___assert_fail_0004b2dc)
                          (PTR_DAT_0004b1a0 + -0x6b28,PTR_DAT_0004b1a0 + -0x6b34,uVar4,
                           PTR_DAT_0004b1a0 + -0x6818);
              } while( true );
            }
            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);
            *(int *)((int)local_58 + iVar5) = param_3;
            uVar4 = FUN_0001f830(puVar10,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f
                                );
            unaff_s3 = puVar13;
            puVar13 = auStack_68 + iVar5;
            goto LAB_00021810;
          }
          iVar5 = (*(code *)PTR_malloc_0004b3e8)();
          if (iVar5 != 0) {
            puVar13 = (undefined1 *)(iVar5 + (int)unaff_s3 * 4);
            (*(code *)PTR_mbsrtowcs_0004b494)(iVar5,local_3c,unaff_s3,&local_34);
            iVar6 = (*(code *)PTR_mbsinit_0004b45c)(&local_34);
            if (iVar6 == 0) goto LAB_00021aa0;
            (*(code *)PTR_mbsrtowcs_0004b494)(puVar13,&local_40,iVar3,&local_34);
            local_58[0] = param_3;
            uVar4 = FUN_0001f830(iVar5,puVar13,puVar13 + iVar2 * 4,(uint)(param_3 << 0x1d) >> 0x1f);
            (*(code *)PTR_free_0004b46c)(iVar5);
            unaff_s3 = puVar13;
            puVar13 = auStack_68;
            goto LAB_00021810;
          }
        }
        uVar4 = 0xffffffff;
        puVar7 = (undefined4 *)(*(code *)PTR___errno_location_0004b394)();
        *puVar7 = 0xc;
        goto LAB_00021810;
      }
    }
  }
  iVar2 = local_40;
  iVar3 = (*(code *)PTR_strlen_0004b3bc)(local_40);
  local_58[0] = param_3;
  uVar4 = FUN_00020b20(local_3c[0],iVar2,iVar2 + iVar3,(uint)(param_3 << 0x1d) >> 0x1f);
  puVar13 = auStack_68;
LAB_00021810:
  if (local_2c == *(uint **)puVar1) {
    return uVar4;
  }
  UNRECOVERED_JUMPTABLE = rpl_fseeko;
  puVar11 = local_2c;
  puVar14 = PTR___stack_chk_fail_0004b438;
  (*(code *)PTR___stack_chk_fail_0004b438)();
  uVar12 = puVar11[2];
  uVar9 = puVar11[1];
  *(undefined **)(puVar13 + -0x20) = puVar14 + 0x316a0;
  *(undefined **)(puVar13 + -0x10) = puVar1;
  *(undefined4 *)(puVar13 + -0x14) = uVar4;
  *(code **)(puVar13 + -4) = UNRECOVERED_JUMPTABLE;
  *(undefined1 **)(puVar13 + -8) = unaff_s3;
  *(int *)(puVar13 + -0xc) = param_3;
  uVar4 = *(undefined4 *)(puVar13 + 0x10);
  if (((uVar12 == uVar9) && (puVar11[5] == puVar11[4])) && (puVar11[9] == 0)) {
    uVar8 = (**(code **)(puVar14 + 0x298dc))();
    UNRECOVERED_JUMPTABLE = *(code **)(*(int *)(puVar13 + -0x20) + -0x7d54);
    *(undefined4 *)(puVar13 + -0x28) = uVar4;
    lVar15 = (*UNRECOVERED_JUMPTABLE)(uVar8);
    if (lVar15 == -1) {
      uVar4 = 0xffffffff;
    }
    else {
      *(longlong *)(puVar11 + 0x14) = lVar15;
      uVar4 = 0;
      *puVar11 = *puVar11 & 0xffffffef;
    }
    return uVar4;
  }
  UNRECOVERED_JUMPTABLE = *(code **)(puVar14 + 0x298bc);
  *(undefined4 *)(puVar13 + 0x10) = uVar4;
                    /* WARNING: Could not recover jumptable at 0x00021b0c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar4 = (*UNRECOVERED_JUMPTABLE)(puVar11);
  return uVar4;
}

