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

{
  int iVar1;
  FILE *fp;
  int iVar2;
  undefined4 *puVar3;
  wchar_t *pwVar4;
  uint uVar5;
  wchar_t *******string_00;
  wchar_t *******string_end;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int in_t9;
  wchar_t ****ppppwVar9;
  undefined1 *puVar10;
  undefined4 uVar11;
  undefined1 auStackY_68 [16];
  wchar_t *****local_50 [3];
  wchar_t *local_44;
  wchar_t ******local_40;
  char *local_3c [2];
  mbstate_t ps;
  
  local_50[0] = (wchar_t *****)(in_t9 + 0x49090);
  puVar10 = auStackY_68;
  piVar6 = *(int **)(in_t9 + 0x4189c);
  fp = (FILE *)*piVar6;
  local_40 = (wchar_t ******)string;
  local_3c[0] = pattern;
  iVar2 = (**(code **)(in_t9 + 0x41a70))();
  if (iVar2 != 1) {
    ps.__count = 0;
    ps.__value.__wch = 0;
    iVar2 = (*(code *)local_50[0][-0x1da2])(0,local_3c,0,&ps);
    uVar7 = iVar2 + 1;
    if (uVar7 != 0) {
      string_end = (wchar_t *******)0x0;
      string_00 = &local_40;
      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);
      iVar8 = iVar2 + 1;
      if (iVar8 != 0) {
        uVar5 = uVar7 + iVar8;
        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {
          if (uVar5 < 2000) {
            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);
            pwVar4 = (wchar_t *)((int)local_50 + iVar1);
            string_00 = (wchar_t *******)(pwVar4 + uVar7);
            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);
            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);
            string_end = string_00 + iVar2;
            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;
            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,
                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),
                                      *(int *)((int)local_3c + iVar1 + -0x1c));
            puVar10 = auStackY_68 + iVar1;
            goto LAB_0006e44c;
          }
          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();
          if (pwVar4 != (wchar_t *)0x0) {
            string_00 = (wchar_t *******)(pwVar4 + uVar7);
            local_44 = pwVar4;
            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);
            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);
            string_end = string_00 + iVar2;
            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,
                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
            (*(code *)local_50[0][-0x1dca])(local_44);
            puVar10 = auStackY_68;
            goto LAB_0006e44c;
          }
        }
        iVar2 = -1;
        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();
        *puVar3 = 0xc;
        goto LAB_0006e44c;
      }
    }
  }
  string_00 = (wchar_t *******)local_40;
  iVar2 = (*(code *)local_50[0][-0x1df2])(local_40);
  string_end = (wchar_t *******)((int)string_00 + iVar2);
  iVar2 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,
                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
  puVar10 = auStackY_68;
LAB_0006e44c:
  ppppwVar9 = local_50[0][-0x1e17];
  if (fp == (FILE *)*piVar6) {
    return iVar2;
  }
  uVar11 = 0x6e664;
  (*(code *)ppppwVar9)();
  *(wchar_t ********)(puVar10 + -0x18) = string_end;
  *(undefined4 *)(puVar10 + -4) = uVar11;
  *(wchar_t *****)(puVar10 + -0x10) = ppppwVar9 + 0x12370;
  iVar2 = rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00);
  return iVar2;
}



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

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  int iVar5;
  uint uVar6;
  undefined1 *puVar7;
  undefined1 *puVar8;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  undefined *puVar12;
  undefined1 auStack_68 [16];
  int local_58 [2];
  int local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  puVar12 = PTR___stack_chk_guard_000afc3c;
  puVar8 = auStack_68;
  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;
  local_40 = param_2;
  local_3c[0] = param_1;
  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();
  if (iVar1 != 1) {
    local_34 = 0;
    local_30 = 0;
    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);
    uVar10 = iVar1 + 1;
    if (uVar10 != 0) {
      puVar7 = (undefined1 *)0x0;
      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);
      iVar2 = iVar1 + 1;
      if (iVar2 != 0) {
        uVar6 = uVar10 + iVar2;
        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {
          if (uVar6 < 2000) {
            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);
            puVar11 = &stack0xffffffb0 + iVar5;
            puVar8 = puVar11 + uVar10 * 4;
            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);
            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);
            puVar7 = puVar8 + iVar1 * 4;
            *(int *)((int)local_58 + iVar5) = param_3;
            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);
            puVar8 = auStack_68 + iVar5;
            goto LAB_0006e44c;
          }
          iVar5 = (*(code *)PTR_malloc_000afbe8)();
          if (iVar5 != 0) {
            iVar9 = iVar5 + uVar10 * 4;
            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);
            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);
            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);
            local_58[0] = param_3;
            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);
            (*(code *)PTR_free_000afd08)(iVar5);
            puVar8 = auStack_68;
            goto LAB_0006e44c;
          }
        }
        uVar3 = 0xffffffff;
        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();
        *puVar4 = 0xc;
        goto LAB_0006e44c;
      }
    }
  }
  iVar1 = local_40;
  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);
  puVar7 = (undefined1 *)(iVar1 + iVar2);
  local_58[0] = param_3;
  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);
  puVar8 = auStack_68;
LAB_0006e44c:
  if (local_2c == *(int *)puVar12) {
    return uVar3;
  }
  uVar3 = 0x6e664;
  puVar12 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  *(undefined1 **)(puVar8 + -0x18) = puVar7;
  *(undefined4 *)(puVar8 + -4) = uVar3;
  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;
  uVar3 = rpl_fseeko();
  return uVar3;
}


lui gp,0x5
addiu gp,gp,-0x6f70
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x7620(gp)
sw s1,0x44(sp)
lw s1,-0x77f4(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,0x0006e494
_lw gp,0x18(s8)
lw s0,0x28(s8)
lw t9,-0x77c8(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,-0x7a10(gp)
addiu t9,t9,-0x28a4
bal 0x0006d75c
_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,0x0006e65c
_lw t9,-0x785c(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,-0x7688(gp)
addiu s3,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,s3,zero
addiu s5,v0,0x1
beq s5,zero,0x0006e410
_lw gp,0x18(s8)
lw t9,-0x7688(gp)
addiu s4,s8,0x28
or a2,zero,zero
or a0,zero,zero
or a3,s0,zero
jalr t9
_or a1,s4,zero
addiu s7,v0,0x1
lw gp,0x18(s8)
beq s7,zero,0x0006e410
_or s6,v0,zero
addu a0,s5,s7
sltu v0,a0,s5
bne v0,zero,0x0006e59c
_lui v0,0x4000
sltu v0,a0,v0
beq v0,zero,0x0006e59c
_sltiu v0,a0,0x7d0
beq v0,zero,0x0006e5b8
_sll a0,a0,0x2
addiu a0,a0,0x7
lw t9,-0x7688(gp)
sll v1,s5,0x2
srl v0,a0,0x3
or a2,s5,zero
sll v0,v0,0x3
or a3,s0,zero
subu sp,sp,v0
or a1,s3,zero
addiu s5,sp,0x18
or a0,s5,zero
jalr t9
_addu s3,s5,v1
lw gp,0x18(s8)
or a3,s0,zero
or a2,s7,zero
or a1,s4,zero
lw t9,-0x7688(gp)
jalr t9
_or a0,s3,zero
sll a2,s6,0x2
lw gp,0x18(s8)
ext a3,s2,0x2,0x1
addu a2,s3,a2
sw s2,0x10(sp)
or a1,s3,zero
lw t9,-0x7a10(gp)
addiu t9,t9,-0x3b44
bal 0x0006c4bc
_or a0,s5,zero
lw gp,0x18(s8)
b 0x0006e44c
_or s0,v0,zero
lw t9,-0x75a0(gp)
jalr t9
_li s0,-0x1
li v1,0xc
lw gp,0x18(s8)
b 0x0006e44c
_sw v1,0x0(v0)
lw t9,-0x7848(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x0006e59c
_or v1,v0,zero
lw t9,-0x7688(gp)
sll v0,s5,0x2
or a0,v1,zero
sw v1,0x24(s8)
or a3,s0,zero
or a1,s3,zero
or a2,s5,zero
jalr t9
_addu s3,v1,v0
lw gp,0x18(s8)
or a3,s0,zero
or a2,s7,zero
or a1,s4,zero
lw t9,-0x7688(gp)
jalr t9
_or a0,s3,zero
sll a2,s6,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,-0x7a10(gp)
addiu t9,t9,-0x3b44
bal 0x0006c4bc
_or a0,v1,zero
lw gp,0x18(s8)
or s0,v0,zero
lw v1,0x24(s8)
lw t9,-0x7728(gp)
jalr t9
_or a0,v1,zero
b 0x0006e44c
_lw gp,0x18(s8)
jalr t9
_nop
nop
nop
nop
(translation_unit "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\n}\n\n" (function_definition "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\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  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * 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 "int local_2c;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar12 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "int *" primitive_type (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 "iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();" (assignment_expression "iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_000afe10)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_000afe10)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_000afe10" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_000afe10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\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 "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);" (assignment_expression "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (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 "uVar10 = iVar1 + 1;" (assignment_expression "uVar10 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" { (expression_statement "puVar7 = (undefined1 *)0x0;" (assignment_expression "puVar7 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);" (assignment_expression "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (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 "iVar2 = iVar1 + 1;" (assignment_expression "iVar2 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }" { (expression_statement "uVar6 = uVar10 + iVar2;" (assignment_expression "uVar6 = uVar10 + iVar2" identifier = (binary_expression "uVar10 + iVar2" identifier + identifier)) ;) (if_statement "if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }" if (parenthesized_expression "((uVar10 <= uVar6) && (uVar6 < 0x40000000))" ( (binary_expression "(uVar10 <= uVar6) && (uVar6 < 0x40000000)" (parenthesized_expression "(uVar10 <= uVar6)" ( (binary_expression "uVar10 <= uVar6" identifier <= identifier) )) && (parenthesized_expression "(uVar6 < 0x40000000)" ( (binary_expression "uVar6 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }" { (if_statement "if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }" if (parenthesized_expression "(uVar6 < 2000)" ( (binary_expression "uVar6 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }" { (expression_statement "iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 * 4 + 7 & 0xfffffff8" (binary_expression "uVar6 * 4 + 7" (binary_expression "uVar6 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar11 = &stack0xffffffb0 + iVar5;" (assignment_expression "puVar11 = &stack0xffffffb0 + iVar5" identifier = (binary_expression "&stack0xffffffb0 + iVar5" (pointer_expression "&stack0xffffffb0" & identifier) + identifier)) ;) (expression_statement "puVar8 = puVar11 + uVar10 * 4;" (assignment_expression "puVar8 = puVar11 + uVar10 * 4" identifier = (binary_expression "puVar11 + uVar10 * 4" identifier + (binary_expression "uVar10 * 4" identifier * number_literal))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,local_3c,uVar10,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,&local_40,iVar2,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "puVar7 = puVar8 + iVar1 * 4;" (assignment_expression "puVar7 = puVar8 + iVar1 * 4" identifier = (binary_expression "puVar8 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal))) ;) (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 "uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , 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 "puVar8 = auStack_68 + iVar5;" (assignment_expression "puVar8 = auStack_68 + iVar5" identifier = (binary_expression "auStack_68 + iVar5" identifier + identifier)) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) (expression_statement "iVar5 = (*(code *)PTR_malloc_000afbe8)();" (assignment_expression "iVar5 = (*(code *)PTR_malloc_000afbe8)()" identifier = (call_expression "(*(code *)PTR_malloc_000afbe8)()" (parenthesized_expression "(*(code *)PTR_malloc_000afbe8)" ( (pointer_expression "*(code *)PTR_malloc_000afbe8" * (cast_expression "(code *)PTR_malloc_000afbe8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }" { (expression_statement "iVar9 = iVar5 + uVar10 * 4;" (assignment_expression "iVar9 = iVar5 + uVar10 * 4" identifier = (binary_expression "iVar5 + uVar10 * 4" identifier + (binary_expression "uVar10 * 4" identifier * number_literal))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,local_3c,uVar10,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,&local_40,iVar2,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);" (assignment_expression "puVar7 = (undefined1 *)(iVar9 + iVar1 * 4)" identifier = (cast_expression "(undefined1 *)(iVar9 + iVar1 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar1 * 4)" ( (binary_expression "iVar9 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) ;) (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 "uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , 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 "(*(code *)PTR_free_000afd08)(iVar5);" (call_expression "(*(code *)PTR_free_000afd08)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000afe90)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000afe90)()" (parenthesized_expression "(*(code *)PTR___errno_location_000afe90)" ( (pointer_expression "*(code *)PTR___errno_location_000afe90" * (cast_expression "(code *)PTR___errno_location_000afe90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) })) })) (expression_statement "iVar1 = local_40;" (assignment_expression "iVar1 = local_40" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000afc68)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" ( (pointer_expression "*(code *)PTR_strlen_000afc68" * (cast_expression "(code *)PTR_strlen_000afc68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "puVar7 = (undefined1 *)(iVar1 + iVar2);" (assignment_expression "puVar7 = (undefined1 *)(iVar1 + iVar2)" identifier = (cast_expression "(undefined1 *)(iVar1 + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar2)" ( (binary_expression "iVar1 + iVar2" identifier + 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 "uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , 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 "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" identifier = identifier) ;) (labeled_statement "LAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar12)" ( (binary_expression "local_2c == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) (expression_statement "uVar3 = 0x6e664;" (assignment_expression "uVar3 = 0x6e664" identifier = number_literal) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar12 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 **)(puVar8 + -0x18) = puVar7;" (assignment_expression "*(undefined1 **)(puVar8 + -0x18) = puVar7" (pointer_expression "*(undefined1 **)(puVar8 + -0x18)" * (cast_expression "(undefined1 **)(puVar8 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x18)" ( (binary_expression "puVar8 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + -4) = uVar3;" (assignment_expression "*(undefined4 *)(puVar8 + -4) = uVar3" (pointer_expression "*(undefined4 *)(puVar8 + -4)" * (cast_expression "(undefined4 *)(puVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -4)" ( (binary_expression "puVar8 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;" (assignment_expression "*(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0" (pointer_expression "*(undefined **)(puVar8 + -0x10)" * (cast_expression "(undefined **)(puVar8 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x10)" ( (binary_expression "puVar8 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar12 + 0x48dc0" identifier + number_literal)) ;) (expression_statement "uVar3 = rpl_fseeko();" (assignment_expression "uVar3 = rpl_fseeko()" identifier = (call_expression "rpl_fseeko()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "int rpl_fnmatch(char *pattern,char *string,int flags)\n\n{\n  int iVar1;\n  FILE *fp;\n  int iVar2;\n  undefined4 *puVar3;\n  wchar_t *pwVar4;\n  uint uVar5;\n  wchar_t *******string_00;\n  wchar_t *******string_end;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int in_t9;\n  wchar_t ****ppppwVar9;\n  undefined1 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStackY_68 [16];\n  wchar_t *****local_50 [3];\n  wchar_t *local_44;\n  wchar_t ******local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  local_50[0] = (wchar_t *****)(in_t9 + 0x49090);\n  puVar10 = auStackY_68;\n  piVar6 = *(int **)(in_t9 + 0x4189c);\n  fp = (FILE *)*piVar6;\n  local_40 = (wchar_t ******)string;\n  local_3c[0] = pattern;\n  iVar2 = (**(code **)(in_t9 + 0x41a70))();\n  if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (*(code *)local_50[0][-0x1da2])(0,local_3c,0,&ps);\n    uVar7 = iVar2 + 1;\n    if (uVar7 != 0) {\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  string_00 = (wchar_t *******)local_40;\n  iVar2 = (*(code *)local_50[0][-0x1df2])(local_40);\n  string_end = (wchar_t *******)((int)string_00 + iVar2);\n  iVar2 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n  puVar10 = auStackY_68;\nLAB_0006e44c:\n  ppppwVar9 = local_50[0][-0x1e17];\n  if (fp == (FILE *)*piVar6) {\n    return iVar2;\n  }\n  uVar11 = 0x6e664;\n  (*(code *)ppppwVar9)();\n  *(wchar_t ********)(puVar10 + -0x18) = string_end;\n  *(undefined4 *)(puVar10 + -4) = uVar11;\n  *(wchar_t *****)(puVar10 + -0x10) = ppppwVar9 + 0x12370;\n  iVar2 = rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00);\n  return iVar2;\n}\n\n" (function_definition "int rpl_fnmatch(char *pattern,char *string,int flags)\n\n{\n  int iVar1;\n  FILE *fp;\n  int iVar2;\n  undefined4 *puVar3;\n  wchar_t *pwVar4;\n  uint uVar5;\n  wchar_t *******string_00;\n  wchar_t *******string_end;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int in_t9;\n  wchar_t ****ppppwVar9;\n  undefined1 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStackY_68 [16];\n  wchar_t *****local_50 [3];\n  wchar_t *local_44;\n  wchar_t ******local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  local_50[0] = (wchar_t *****)(in_t9 + 0x49090);\n  puVar10 = auStackY_68;\n  piVar6 = *(int **)(in_t9 + 0x4189c);\n  fp = (FILE *)*piVar6;\n  local_40 = (wchar_t ******)string;\n  local_3c[0] = pattern;\n  iVar2 = (**(code **)(in_t9 + 0x41a70))();\n  if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (*(code *)local_50[0][-0x1da2])(0,local_3c,0,&ps);\n    uVar7 = iVar2 + 1;\n    if (uVar7 != 0) {\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  string_00 = (wchar_t *******)local_40;\n  iVar2 = (*(code *)local_50[0][-0x1df2])(local_40);\n  string_end = (wchar_t *******)((int)string_00 + iVar2);\n  iVar2 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n  puVar10 = auStackY_68;\nLAB_0006e44c:\n  ppppwVar9 = local_50[0][-0x1e17];\n  if (fp == (FILE *)*piVar6) {\n    return iVar2;\n  }\n  uVar11 = 0x6e664;\n  (*(code *)ppppwVar9)();\n  *(wchar_t ********)(puVar10 + -0x18) = string_end;\n  *(undefined4 *)(puVar10 + -4) = uVar11;\n  *(wchar_t *****)(puVar10 + -0x10) = ppppwVar9 + 0x12370;\n  iVar2 = rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00);\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  int iVar1;\n  FILE *fp;\n  int iVar2;\n  undefined4 *puVar3;\n  wchar_t *pwVar4;\n  uint uVar5;\n  wchar_t *******string_00;\n  wchar_t *******string_end;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int in_t9;\n  wchar_t ****ppppwVar9;\n  undefined1 *puVar10;\n  undefined4 uVar11;\n  undefined1 auStackY_68 [16];\n  wchar_t *****local_50 [3];\n  wchar_t *local_44;\n  wchar_t ******local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  local_50[0] = (wchar_t *****)(in_t9 + 0x49090);\n  puVar10 = auStackY_68;\n  piVar6 = *(int **)(in_t9 + 0x4189c);\n  fp = (FILE *)*piVar6;\n  local_40 = (wchar_t ******)string;\n  local_3c[0] = pattern;\n  iVar2 = (**(code **)(in_t9 + 0x41a70))();\n  if (iVar2 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar2 = (*(code *)local_50[0][-0x1da2])(0,local_3c,0,&ps);\n    uVar7 = iVar2 + 1;\n    if (uVar7 != 0) {\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  string_00 = (wchar_t *******)local_40;\n  iVar2 = (*(code *)local_50[0][-0x1df2])(local_40);\n  string_end = (wchar_t *******)((int)string_00 + iVar2);\n  iVar2 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n  puVar10 = auStackY_68;\nLAB_0006e44c:\n  ppppwVar9 = local_50[0][-0x1e17];\n  if (fp == (FILE *)*piVar6) {\n    return iVar2;\n  }\n  uVar11 = 0x6e664;\n  (*(code *)ppppwVar9)();\n  *(wchar_t ********)(puVar10 + -0x18) = string_end;\n  *(undefined4 *)(puVar10 + -4) = uVar11;\n  *(wchar_t *****)(puVar10 + -0x10) = ppppwVar9 + 0x12370;\n  iVar2 = rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00);\n  return iVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "FILE *fp;" type_identifier (pointer_declarator "*fp" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "wchar_t *pwVar4;" type_identifier (pointer_declarator "*pwVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "wchar_t *******string_00;" type_identifier (pointer_declarator "*******string_00" * (pointer_declarator "******string_00" * (pointer_declarator "*****string_00" * (pointer_declarator "****string_00" * (pointer_declarator "***string_00" * (pointer_declarator "**string_00" * (pointer_declarator "*string_00" * identifier))))))) ;) (declaration "wchar_t *******string_end;" type_identifier (pointer_declarator "*******string_end" * (pointer_declarator "******string_end" * (pointer_declarator "*****string_end" * (pointer_declarator "****string_end" * (pointer_declarator "***string_end" * (pointer_declarator "**string_end" * (pointer_declarator "*string_end" * identifier))))))) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "wchar_t ****ppppwVar9;" type_identifier (pointer_declarator "****ppppwVar9" * (pointer_declarator "***ppppwVar9" * (pointer_declarator "**ppppwVar9" * (pointer_declarator "*ppppwVar9" * identifier)))) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined1 auStackY_68 [16];" type_identifier (array_declarator "auStackY_68 [16]" identifier [ number_literal ]) ;) (declaration "wchar_t *****local_50 [3];" type_identifier (pointer_declarator "*****local_50 [3]" * (pointer_declarator "****local_50 [3]" * (pointer_declarator "***local_50 [3]" * (pointer_declarator "**local_50 [3]" * (pointer_declarator "*local_50 [3]" * (array_declarator "local_50 [3]" identifier [ number_literal ])))))) ;) (declaration "wchar_t *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "wchar_t ******local_40;" type_identifier (pointer_declarator "******local_40" * (pointer_declarator "*****local_40" * (pointer_declarator "****local_40" * (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (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] = (wchar_t *****)(in_t9 + 0x49090);" (assignment_expression "local_50[0] = (wchar_t *****)(in_t9 + 0x49090)" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (cast_expression "(wchar_t *****)(in_t9 + 0x49090)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(in_t9 + 0x49090)" ( (binary_expression "in_t9 + 0x49090" identifier + number_literal) )))) ;) (expression_statement "puVar10 = auStackY_68;" (assignment_expression "puVar10 = auStackY_68" identifier = identifier) ;) (expression_statement "piVar6 = *(int **)(in_t9 + 0x4189c);" (assignment_expression "piVar6 = *(int **)(in_t9 + 0x4189c)" identifier = (pointer_expression "*(int **)(in_t9 + 0x4189c)" * (cast_expression "(int **)(in_t9 + 0x4189c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x4189c)" ( (binary_expression "in_t9 + 0x4189c" identifier + number_literal) ))))) ;) (expression_statement "fp = (FILE *)*piVar6;" (assignment_expression "fp = (FILE *)*piVar6" identifier = (cast_expression "(FILE *)*piVar6" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) ;) (expression_statement "local_40 = (wchar_t ******)string;" (assignment_expression "local_40 = (wchar_t ******)string" identifier = (cast_expression "(wchar_t ******)string" ( (type_descriptor "wchar_t ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) 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 + 0x41a70))();" (assignment_expression "iVar2 = (**(code **)(in_t9 + 0x41a70))()" identifier = (call_expression "(**(code **)(in_t9 + 0x41a70))()" (parenthesized_expression "(**(code **)(in_t9 + 0x41a70))" ( (pointer_expression "**(code **)(in_t9 + 0x41a70)" * (pointer_expression "*(code **)(in_t9 + 0x41a70)" * (cast_expression "(code **)(in_t9 + 0x41a70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x41a70)" ( (binary_expression "in_t9 + 0x41a70" 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][-0x1da2])(0,local_3c,0,&ps);\n    uVar7 = iVar2 + 1;\n    if (uVar7 != 0) {\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\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][-0x1da2])(0,local_3c,0,&ps);\n    uVar7 = iVar2 + 1;\n    if (uVar7 != 0) {\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\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][-0x1da2])(0,local_3c,0,&ps);" (assignment_expression "iVar2 = (*(code *)local_50[0][-0x1da2])(0,local_3c,0,&ps)" identifier = (call_expression "(*(code *)local_50[0][-0x1da2])(0,local_3c,0,&ps)" (parenthesized_expression "(*(code *)local_50[0][-0x1da2])" ( (pointer_expression "*(code *)local_50[0][-0x1da2]" * (cast_expression "(code *)local_50[0][-0x1da2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1da2]" (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 "uVar7 = iVar2 + 1;" (assignment_expression "uVar7 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 != 0) {\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      string_end = (wchar_t *******)0x0;\n      string_00 = &local_40;\n      iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);\n      iVar8 = iVar2 + 1;\n      if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" { (expression_statement "string_end = (wchar_t *******)0x0;" (assignment_expression "string_end = (wchar_t *******)0x0" identifier = (cast_expression "(wchar_t *******)0x0" ( (type_descriptor "wchar_t *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "string_00 = &local_40;" (assignment_expression "string_00 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps);" (assignment_expression "iVar2 = (*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps)" identifier = (call_expression "(*(code *)local_50[0][-0x1da2])(0,&local_40,0,&ps)" (parenthesized_expression "(*(code *)local_50[0][-0x1da2])" ( (pointer_expression "*(code *)local_50[0][-0x1da2]" * (cast_expression "(code *)local_50[0][-0x1da2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1da2]" (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 "iVar8 = iVar2 + 1;" (assignment_expression "iVar8 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 != 0) {\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar5 = uVar7 + iVar8;\n        if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }\n        iVar2 = -1;\n        puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();\n        *puVar3 = 0xc;\n        goto LAB_0006e44c;\n      }" { (expression_statement "uVar5 = uVar7 + iVar8;" (assignment_expression "uVar5 = uVar7 + iVar8" identifier = (binary_expression "uVar7 + iVar8" identifier + identifier)) ;) (if_statement "if ((uVar7 <= uVar5) && (uVar5 < 0x40000000)) {\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }" if (parenthesized_expression "((uVar7 <= uVar5) && (uVar5 < 0x40000000))" ( (binary_expression "(uVar7 <= uVar5) && (uVar5 < 0x40000000)" (parenthesized_expression "(uVar7 <= uVar5)" ( (binary_expression "uVar7 <= uVar5" identifier <= identifier) )) && (parenthesized_expression "(uVar5 < 0x40000000)" ( (binary_expression "uVar5 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }\n          pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();\n          if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }\n        }" { (if_statement "if (uVar5 < 2000) {\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }" if (parenthesized_expression "(uVar5 < 2000)" ( (binary_expression "uVar5 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);\n            pwVar4 = (wchar_t *)((int)local_50 + iVar1);\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            *(int *)((int)local_3c + iVar1 + -0x1c) = flags;\n            iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));\n            puVar10 = auStackY_68 + iVar1;\n            goto LAB_0006e44c;\n          }" { (expression_statement "iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar1 = -(uVar5 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar5 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar5 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar5 * 4 + 7 & 0xfffffff8" (binary_expression "uVar5 * 4 + 7" (binary_expression "uVar5 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pwVar4 = (wchar_t *)((int)local_50 + iVar1);" (assignment_expression "pwVar4 = (wchar_t *)((int)local_50 + iVar1)" identifier = (cast_expression "(wchar_t *)((int)local_50 + iVar1)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + iVar1)" ( (binary_expression "(int)local_50 + iVar1" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "string_00 = (wchar_t *******)(pwVar4 + uVar7);" (assignment_expression "string_00 = (wchar_t *******)(pwVar4 + uVar7)" identifier = (cast_expression "(wchar_t *******)(pwVar4 + uVar7)" ( (type_descriptor "wchar_t *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pwVar4 + uVar7)" ( (binary_expression "pwVar4 + uVar7" identifier + identifier) )))) ;) (expression_statement "(*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);" (call_expression "(*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps)" (parenthesized_expression "(*(code *)local_50[0][-0x1da2])" ( (pointer_expression "*(code *)local_50[0][-0x1da2]" * (cast_expression "(code *)local_50[0][-0x1da2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1da2]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pwVar4,local_3c,uVar7,&ps)" ( identifier , identifier , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "(*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);" (call_expression "(*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps)" (parenthesized_expression "(*(code *)local_50[0][-0x1da2])" ( (pointer_expression "*(code *)local_50[0][-0x1da2]" * (cast_expression "(code *)local_50[0][-0x1da2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1da2]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(string_00,&local_40,iVar8,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "string_end = string_00 + iVar2;" (assignment_expression "string_end = string_00 + iVar2" identifier = (binary_expression "string_00 + iVar2" identifier + identifier)) ;) (expression_statement "*(int *)((int)local_3c + iVar1 + -0x1c) = flags;" (assignment_expression "*(int *)((int)local_3c + iVar1 + -0x1c) = flags" (pointer_expression "*(int *)((int)local_3c + iVar1 + -0x1c)" * (cast_expression "(int *)((int)local_3c + iVar1 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + iVar1 + -0x1c)" ( (binary_expression "(int)local_3c + iVar1 + -0x1c" (binary_expression "(int)local_3c + iVar1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c));" (assignment_expression "iVar2 = internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c))" identifier = (call_expression "internal_fnwmatch(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c))" identifier (argument_list "(pwVar4,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                      *(int *)((int)local_3c + iVar1 + -0x1c))" ( identifier , (cast_expression "(wchar_t *)string_00" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)string_end" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 + iVar1 + -0x1c)" * (cast_expression "(int *)((int)local_3c + iVar1 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + iVar1 + -0x1c)" ( (binary_expression "(int)local_3c + iVar1 + -0x1c" (binary_expression "(int)local_3c + iVar1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "puVar10 = auStackY_68 + iVar1;" (assignment_expression "puVar10 = auStackY_68 + iVar1" identifier = (binary_expression "auStackY_68 + iVar1" identifier + identifier)) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) (expression_statement "pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])();" (assignment_expression "pwVar4 = (wchar_t *)(*(code *)local_50[0][-0x1e12])()" identifier = (cast_expression "(wchar_t *)(*(code *)local_50[0][-0x1e12])()" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)local_50[0][-0x1e12])()" (parenthesized_expression "(*(code *)local_50[0][-0x1e12])" ( (pointer_expression "*(code *)local_50[0][-0x1e12]" * (cast_expression "(code *)local_50[0][-0x1e12]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1e12]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "()" ( ))))) ;) (if_statement "if (pwVar4 != (wchar_t *)0x0) {\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }" if (parenthesized_expression "(pwVar4 != (wchar_t *)0x0)" ( (binary_expression "pwVar4 != (wchar_t *)0x0" identifier != (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            string_00 = (wchar_t *******)(pwVar4 + uVar7);\n            local_44 = pwVar4;\n            (*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);\n            (*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);\n            string_end = string_00 + iVar2;\n            iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n            (*(code *)local_50[0][-0x1dca])(local_44);\n            puVar10 = auStackY_68;\n            goto LAB_0006e44c;\n          }" { (expression_statement "string_00 = (wchar_t *******)(pwVar4 + uVar7);" (assignment_expression "string_00 = (wchar_t *******)(pwVar4 + uVar7)" identifier = (cast_expression "(wchar_t *******)(pwVar4 + uVar7)" ( (type_descriptor "wchar_t *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pwVar4 + uVar7)" ( (binary_expression "pwVar4 + uVar7" identifier + identifier) )))) ;) (expression_statement "local_44 = pwVar4;" (assignment_expression "local_44 = pwVar4" identifier = identifier) ;) (expression_statement "(*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps);" (call_expression "(*(code *)local_50[0][-0x1da2])(pwVar4,local_3c,uVar7,&ps)" (parenthesized_expression "(*(code *)local_50[0][-0x1da2])" ( (pointer_expression "*(code *)local_50[0][-0x1da2]" * (cast_expression "(code *)local_50[0][-0x1da2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1da2]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(pwVar4,local_3c,uVar7,&ps)" ( identifier , identifier , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "(*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps);" (call_expression "(*(code *)local_50[0][-0x1da2])(string_00,&local_40,iVar8,&ps)" (parenthesized_expression "(*(code *)local_50[0][-0x1da2])" ( (pointer_expression "*(code *)local_50[0][-0x1da2]" * (cast_expression "(code *)local_50[0][-0x1da2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1da2]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(string_00,&local_40,iVar8,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "string_end = string_00 + iVar2;" (assignment_expression "string_end = string_00 + iVar2" identifier = (binary_expression "string_00 + iVar2" identifier + identifier)) ;) (expression_statement "iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "iVar2 = internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (call_expression "internal_fnwmatch(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(local_44,(wchar_t *)string_00,(wchar_t *)string_end,\n                                      SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( identifier , (cast_expression "(wchar_t *)string_00" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)string_end" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) 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][-0x1dca])(local_44);" (call_expression "(*(code *)local_50[0][-0x1dca])(local_44)" (parenthesized_expression "(*(code *)local_50[0][-0x1dca])" ( (pointer_expression "*(code *)local_50[0][-0x1dca]" * (cast_expression "(code *)local_50[0][-0x1dca]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1dca]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(local_44)" ( identifier ))) ;) (expression_statement "puVar10 = auStackY_68;" (assignment_expression "puVar10 = auStackY_68" identifier = identifier) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) })) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])();" (assignment_expression "puVar3 = (undefined4 *)(*(code *)local_50[0][-0x1d68])()" identifier = (cast_expression "(undefined4 *)(*(code *)local_50[0][-0x1d68])()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)local_50[0][-0x1d68])()" (parenthesized_expression "(*(code *)local_50[0][-0x1d68])" ( (pointer_expression "*(code *)local_50[0][-0x1d68]" * (cast_expression "(code *)local_50[0][-0x1d68]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1d68]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar3 = 0xc;" (assignment_expression "*puVar3 = 0xc" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) })) })) (expression_statement "string_00 = (wchar_t *******)local_40;" (assignment_expression "string_00 = (wchar_t *******)local_40" identifier = (cast_expression "(wchar_t *******)local_40" ( (type_descriptor "wchar_t *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier)) ;) (expression_statement "iVar2 = (*(code *)local_50[0][-0x1df2])(local_40);" (assignment_expression "iVar2 = (*(code *)local_50[0][-0x1df2])(local_40)" identifier = (call_expression "(*(code *)local_50[0][-0x1df2])(local_40)" (parenthesized_expression "(*(code *)local_50[0][-0x1df2])" ( (pointer_expression "*(code *)local_50[0][-0x1df2]" * (cast_expression "(code *)local_50[0][-0x1df2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_50[0][-0x1df2]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "string_end = (wchar_t *******)((int)string_00 + iVar2);" (assignment_expression "string_end = (wchar_t *******)((int)string_00 + iVar2)" identifier = (cast_expression "(wchar_t *******)((int)string_00 + iVar2)" ( (type_descriptor "wchar_t *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)string_00 + iVar2)" ( (binary_expression "(int)string_00 + iVar2" (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar2 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "iVar2 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (call_expression "internal_fnmatch(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(local_3c[0],(char *)string_00,(char *)string_end,\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , (cast_expression "(char *)string_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)string_end" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) 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 "puVar10 = auStackY_68;" (assignment_expression "puVar10 = auStackY_68" identifier = identifier) ;) (labeled_statement "LAB_0006e44c:\n  ppppwVar9 = local_50[0][-0x1e17];" statement_identifier : (expression_statement "ppppwVar9 = local_50[0][-0x1e17];" (assignment_expression "ppppwVar9 = local_50[0][-0x1e17]" identifier = (subscript_expression "local_50[0][-0x1e17]" (subscript_expression "local_50[0]" identifier [ number_literal ]) [ number_literal ])) ;)) (if_statement "if (fp == (FILE *)*piVar6) {\n    return iVar2;\n  }" if (parenthesized_expression "(fp == (FILE *)*piVar6)" ( (binary_expression "fp == (FILE *)*piVar6" identifier == (cast_expression "(FILE *)*piVar6" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "uVar11 = 0x6e664;" (assignment_expression "uVar11 = 0x6e664" identifier = number_literal) ;) (expression_statement "(*(code *)ppppwVar9)();" (call_expression "(*(code *)ppppwVar9)()" (parenthesized_expression "(*(code *)ppppwVar9)" ( (pointer_expression "*(code *)ppppwVar9" * (cast_expression "(code *)ppppwVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(wchar_t ********)(puVar10 + -0x18) = string_end;" (assignment_expression "*(wchar_t ********)(puVar10 + -0x18) = string_end" (pointer_expression "*(wchar_t ********)(puVar10 + -0x18)" * (cast_expression "(wchar_t ********)(puVar10 + -0x18)" ( (type_descriptor "wchar_t ********" type_identifier (abstract_pointer_declarator "********" * (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))))) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -4) = uVar11;" (assignment_expression "*(undefined4 *)(puVar10 + -4) = uVar11" (pointer_expression "*(undefined4 *)(puVar10 + -4)" * (cast_expression "(undefined4 *)(puVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t *****)(puVar10 + -0x10) = ppppwVar9 + 0x12370;" (assignment_expression "*(wchar_t *****)(puVar10 + -0x10) = ppppwVar9 + 0x12370" (pointer_expression "*(wchar_t *****)(puVar10 + -0x10)" * (cast_expression "(wchar_t *****)(puVar10 + -0x10)" ( (type_descriptor "wchar_t *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(puVar10 + -0x10)" ( (binary_expression "puVar10 + -0x10" identifier + number_literal) )))) = (binary_expression "ppppwVar9 + 0x12370" identifier + number_literal)) ;) (expression_statement "iVar2 = rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00);" (assignment_expression "iVar2 = rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00)" identifier = (call_expression "rpl_fseeko(fp,*(off_t *)(puVar10 + -0x18),(int)string_00)" identifier (argument_list "(fp,*(off_t *)(puVar10 + -0x18),(int)string_00)" ( identifier , (pointer_expression "*(off_t *)(puVar10 + -0x18)" * (cast_expression "(off_t *)(puVar10 + -0x18)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0x18)" ( (binary_expression "puVar10 + -0x18" identifier + number_literal) )))) , (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\n}\n\n" (function_definition "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\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  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * 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 "int local_2c;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar12 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "int *" primitive_type (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 "iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();" (assignment_expression "iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_000afe10)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_000afe10)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_000afe10" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_000afe10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\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 "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);" (assignment_expression "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (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 "uVar10 = iVar1 + 1;" (assignment_expression "uVar10 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" { (expression_statement "puVar7 = (undefined1 *)0x0;" (assignment_expression "puVar7 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);" (assignment_expression "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (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 "iVar2 = iVar1 + 1;" (assignment_expression "iVar2 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (if_statement "if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }" { (expression_statement "uVar6 = uVar10 + iVar2;" (assignment_expression "uVar6 = uVar10 + iVar2" identifier = (binary_expression "uVar10 + iVar2" identifier + identifier)) ;) (if_statement "if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }" if (parenthesized_expression "((uVar10 <= uVar6) && (uVar6 < 0x40000000))" ( (binary_expression "(uVar10 <= uVar6) && (uVar6 < 0x40000000)" (parenthesized_expression "(uVar10 <= uVar6)" ( (binary_expression "uVar10 <= uVar6" identifier <= identifier) )) && (parenthesized_expression "(uVar6 < 0x40000000)" ( (binary_expression "uVar6 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }" { (if_statement "if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }" if (parenthesized_expression "(uVar6 < 2000)" ( (binary_expression "uVar6 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }" { (expression_statement "iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar6 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar6 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar6 * 4 + 7 & 0xfffffff8" (binary_expression "uVar6 * 4 + 7" (binary_expression "uVar6 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar11 = &stack0xffffffb0 + iVar5;" (assignment_expression "puVar11 = &stack0xffffffb0 + iVar5" identifier = (binary_expression "&stack0xffffffb0 + iVar5" (pointer_expression "&stack0xffffffb0" & identifier) + identifier)) ;) (expression_statement "puVar8 = puVar11 + uVar10 * 4;" (assignment_expression "puVar8 = puVar11 + uVar10 * 4" identifier = (binary_expression "puVar11 + uVar10 * 4" identifier + (binary_expression "uVar10 * 4" identifier * number_literal))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar11,local_3c,uVar10,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,&local_40,iVar2,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "puVar7 = puVar8 + iVar1 * 4;" (assignment_expression "puVar7 = puVar8 + iVar1 * 4" identifier = (binary_expression "puVar8 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal))) ;) (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 "uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , 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 "puVar8 = auStack_68 + iVar5;" (assignment_expression "puVar8 = auStack_68 + iVar5" identifier = (binary_expression "auStack_68 + iVar5" identifier + identifier)) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) (expression_statement "iVar5 = (*(code *)PTR_malloc_000afbe8)();" (assignment_expression "iVar5 = (*(code *)PTR_malloc_000afbe8)()" identifier = (call_expression "(*(code *)PTR_malloc_000afbe8)()" (parenthesized_expression "(*(code *)PTR_malloc_000afbe8)" ( (pointer_expression "*(code *)PTR_malloc_000afbe8" * (cast_expression "(code *)PTR_malloc_000afbe8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }" { (expression_statement "iVar9 = iVar5 + uVar10 * 4;" (assignment_expression "iVar9 = iVar5 + uVar10 * 4" identifier = (binary_expression "iVar5 + uVar10 * 4" identifier + (binary_expression "uVar10 * 4" identifier * number_literal))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5,local_3c,uVar10,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" * (cast_expression "(code *)PTR_mbsrtowcs_000afda8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar9,&local_40,iVar2,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);" (assignment_expression "puVar7 = (undefined1 *)(iVar9 + iVar1 * 4)" identifier = (cast_expression "(undefined1 *)(iVar9 + iVar1 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar1 * 4)" ( (binary_expression "iVar9 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) ;) (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 "uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , 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 "(*(code *)PTR_free_000afd08)(iVar5);" (call_expression "(*(code *)PTR_free_000afd08)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" ( (pointer_expression "*(code *)PTR_free_000afd08" * (cast_expression "(code *)PTR_free_000afd08" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (expression_statement "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" identifier = identifier) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000afe90)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000afe90)()" (parenthesized_expression "(*(code *)PTR___errno_location_000afe90)" ( (pointer_expression "*(code *)PTR___errno_location_000afe90" * (cast_expression "(code *)PTR___errno_location_000afe90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_0006e44c;" goto statement_identifier ;) })) })) })) (expression_statement "iVar1 = local_40;" (assignment_expression "iVar1 = local_40" identifier = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000afc68)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_000afc68)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" ( (pointer_expression "*(code *)PTR_strlen_000afc68" * (cast_expression "(code *)PTR_strlen_000afc68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "puVar7 = (undefined1 *)(iVar1 + iVar2);" (assignment_expression "puVar7 = (undefined1 *)(iVar1 + iVar2)" identifier = (cast_expression "(undefined1 *)(iVar1 + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar2)" ( (binary_expression "iVar1 + iVar2" identifier + 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 "uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , 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 "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" identifier = identifier) ;) (labeled_statement "LAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar12)" ( (binary_expression "local_2c == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) (expression_statement "uVar3 = 0x6e664;" (assignment_expression "uVar3 = 0x6e664" identifier = number_literal) ;) (expression_statement "puVar12 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar12 = PTR___stack_chk_fail_000afbd4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 **)(puVar8 + -0x18) = puVar7;" (assignment_expression "*(undefined1 **)(puVar8 + -0x18) = puVar7" (pointer_expression "*(undefined1 **)(puVar8 + -0x18)" * (cast_expression "(undefined1 **)(puVar8 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x18)" ( (binary_expression "puVar8 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + -4) = uVar3;" (assignment_expression "*(undefined4 *)(puVar8 + -4) = uVar3" (pointer_expression "*(undefined4 *)(puVar8 + -4)" * (cast_expression "(undefined4 *)(puVar8 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -4)" ( (binary_expression "puVar8 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;" (assignment_expression "*(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0" (pointer_expression "*(undefined **)(puVar8 + -0x10)" * (cast_expression "(undefined **)(puVar8 + -0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x10)" ( (binary_expression "puVar8 + -0x10" identifier + number_literal) )))) = (binary_expression "puVar12 + 0x48dc0" identifier + number_literal)) ;) (expression_statement "uVar3 = rpl_fseeko();" (assignment_expression "uVar3 = rpl_fseeko()" identifier = (call_expression "rpl_fseeko()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar3;" 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 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 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 *)) ) 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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (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 = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression 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 (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 IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (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 , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (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 = (binary_expression IDENT + (binary_expression 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 (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (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) ;) (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 , 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 *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 rpl_fnmatch(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\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  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  uint uVar6;\n  undefined1 *puVar7;\n  undefined1 *puVar8;\n  int iVar9;\n  uint uVar10;\n  undefined1 *puVar11;\n  undefined *puVar12;\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  int local_2c;\n  \n  puVar12 = PTR___stack_chk_guard_000afc3c;\n  puVar8 = auStack_68;\n  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;\n  local_40 = param_2;\n  local_3c[0] = param_1;\n  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();\n  if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }\n  iVar1 = local_40;\n  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);\n  puVar7 = (undefined1 *)(iVar1 + iVar2);\n  local_58[0] = param_3;\n  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n  puVar8 = auStack_68;\nLAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }\n  uVar3 = 0x6e664;\n  puVar12 = PTR___stack_chk_fail_000afbd4;\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  *(undefined1 **)(puVar8 + -0x18) = puVar7;\n  *(undefined4 *)(puVar8 + -4) = uVar3;\n  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;\n  uVar3 = rpl_fseeko();\n  return uVar3;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (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 "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar12 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar12 = PTR___stack_chk_guard_000afc3c" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_guard_000afc3c")) (; ";")) (expression_statement "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" (identifier "puVar8") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000afc3c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000afc3c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000afc3c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000afc3c")))) (; ";")) (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 "iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();" (assignment_expression "iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)()" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_000afe10)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_000afe10)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_000afe10" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_000afe10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_000afe10"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 1)" (( "(") (binary_expression "iVar1 != 1" (identifier "iVar1") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);\n    uVar10 = iVar1 + 1;\n    if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\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 "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);" (assignment_expression "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000afda8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000afda8"))) () ")")) (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 "uVar10 = iVar1 + 1;" (assignment_expression "uVar10 = iVar1 + 1" (identifier "uVar10") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar10 != 0) {\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar7 = (undefined1 *)0x0;\n      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);\n      iVar2 = iVar1 + 1;\n      if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }\n    }" ({ "{") (expression_statement "puVar7 = (undefined1 *)0x0;" (assignment_expression "puVar7 = (undefined1 *)0x0" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);" (assignment_expression "iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000afda8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000afda8"))) () ")")) (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 "iVar2 = iVar1 + 1;" (assignment_expression "iVar2 = iVar1 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar2 != 0) {\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = uVar10 + iVar2;\n        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();\n        *puVar4 = 0xc;\n        goto LAB_0006e44c;\n      }" ({ "{") (expression_statement "uVar6 = uVar10 + iVar2;" (assignment_expression "uVar6 = uVar10 + iVar2" (identifier "uVar6") (= "=") (binary_expression "uVar10 + iVar2" (identifier "uVar10") (+ "+") (identifier "iVar2"))) (; ";")) (if_statement "if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }" (if "if") (parenthesized_expression "((uVar10 <= uVar6) && (uVar6 < 0x40000000))" (( "(") (binary_expression "(uVar10 <= uVar6) && (uVar6 < 0x40000000)" (parenthesized_expression "(uVar10 <= uVar6)" (( "(") (binary_expression "uVar10 <= uVar6" (identifier "uVar10") (<= "<=") (identifier "uVar6")) () ")")) (&& "&&") (parenthesized_expression "(uVar6 < 0x40000000)" (( "(") (binary_expression "uVar6 < 0x40000000" (identifier "uVar6") (< "<") (number_literal "0x40000000")) () ")"))) () ")")) (compound_statement "{\n          if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }\n          iVar5 = (*(code *)PTR_malloc_000afbe8)();\n          if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }\n        }" ({ "{") (if_statement "if (uVar6 < 2000) {\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }" (if "if") (parenthesized_expression "(uVar6 < 2000)" (( "(") (binary_expression "uVar6 < 2000" (identifier "uVar6") (< "<") (number_literal "2000")) () ")")) (compound_statement "{\n            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);\n            puVar11 = &stack0xffffffb0 + iVar5;\n            puVar8 = puVar11 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);\n            puVar7 = puVar8 + iVar1 * 4;\n            *(int *)((int)local_58 + iVar5) = param_3;\n            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            puVar8 = auStack_68 + iVar5;\n            goto LAB_0006e44c;\n          }" ({ "{") (expression_statement "iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8)" (identifier "iVar5") (= "=") (unary_expression "-(uVar6 * 4 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar6 * 4 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar6 * 4 + 7 & 0xfffffff8" (binary_expression "uVar6 * 4 + 7" (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar11 = &stack0xffffffb0 + iVar5;" (assignment_expression "puVar11 = &stack0xffffffb0 + iVar5" (identifier "puVar11") (= "=") (binary_expression "&stack0xffffffb0 + iVar5" (pointer_expression "&stack0xffffffb0" (& "&") (identifier "stack0xffffffb0")) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "puVar8 = puVar11 + uVar10 * 4;" (assignment_expression "puVar8 = puVar11 + uVar10 * 4" (identifier "puVar8") (= "=") (binary_expression "puVar11 + uVar10 * 4" (identifier "puVar11") (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000afda8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000afda8"))) () ")")) (argument_list "(puVar11,local_3c,uVar10,&local_34)" (( "(") (identifier "puVar11") (, ",") (identifier "local_3c") (, ",") (identifier "uVar10") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000afda8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000afda8"))) () ")")) (argument_list "(puVar8,&local_40,iVar2,&local_34)" (( "(") (identifier "puVar8") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "iVar2") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "puVar7 = puVar8 + iVar1 * 4;" (assignment_expression "puVar7 = puVar8 + iVar1 * 4" (identifier "puVar7") (= "=") (binary_expression "puVar8 + iVar1 * 4" (identifier "puVar8") (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4")))) (; ";")) (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 "uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0006c4bc") (argument_list "(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (identifier "puVar11") (, ",") (identifier "puVar8") (, ",") (identifier "puVar7") (, ",") (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 "puVar8 = auStack_68 + iVar5;" (assignment_expression "puVar8 = auStack_68 + iVar5" (identifier "puVar8") (= "=") (binary_expression "auStack_68 + iVar5" (identifier "auStack_68") (+ "+") (identifier "iVar5"))) (; ";")) (goto_statement "goto LAB_0006e44c;" (goto "goto") (statement_identifier "LAB_0006e44c") (; ";")) (} "}"))) (expression_statement "iVar5 = (*(code *)PTR_malloc_000afbe8)();" (assignment_expression "iVar5 = (*(code *)PTR_malloc_000afbe8)()" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_malloc_000afbe8)()" (parenthesized_expression "(*(code *)PTR_malloc_000afbe8)" (( "(") (pointer_expression "*(code *)PTR_malloc_000afbe8" (* "*") (cast_expression "(code *)PTR_malloc_000afbe8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_000afbe8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar9 = iVar5 + uVar10 * 4;\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);\n            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);\n            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);\n            local_58[0] = param_3;\n            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);\n            (*(code *)PTR_free_000afd08)(iVar5);\n            puVar8 = auStack_68;\n            goto LAB_0006e44c;\n          }" ({ "{") (expression_statement "iVar9 = iVar5 + uVar10 * 4;" (assignment_expression "iVar9 = iVar5 + uVar10 * 4" (identifier "iVar9") (= "=") (binary_expression "iVar5 + uVar10 * 4" (identifier "iVar5") (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000afda8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000afda8"))) () ")")) (argument_list "(iVar5,local_3c,uVar10,&local_34)" (( "(") (identifier "iVar5") (, ",") (identifier "local_3c") (, ",") (identifier "uVar10") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000afda8)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000afda8" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000afda8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000afda8"))) () ")")) (argument_list "(iVar9,&local_40,iVar2,&local_34)" (( "(") (identifier "iVar9") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "iVar2") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);" (assignment_expression "puVar7 = (undefined1 *)(iVar9 + iVar1 * 4)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)(iVar9 + iVar1 * 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar1 * 4)" (( "(") (binary_expression "iVar9 + iVar1 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")")))) (; ";")) (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 "uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0006c4bc") (argument_list "(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (identifier "iVar5") (, ",") (identifier "iVar9") (, ",") (identifier "puVar7") (, ",") (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_000afd08)(iVar5);" (call_expression "(*(code *)PTR_free_000afd08)(iVar5)" (parenthesized_expression "(*(code *)PTR_free_000afd08)" (( "(") (pointer_expression "*(code *)PTR_free_000afd08" (* "*") (cast_expression "(code *)PTR_free_000afd08" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000afd08"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" (identifier "puVar8") (= "=") (identifier "auStack_68")) (; ";")) (goto_statement "goto LAB_0006e44c;" (goto "goto") (statement_identifier "LAB_0006e44c") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();" (assignment_expression "puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000afe90)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000afe90)()" (parenthesized_expression "(*(code *)PTR___errno_location_000afe90)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000afe90" (* "*") (cast_expression "(code *)PTR___errno_location_000afe90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000afe90"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_0006e44c;" (goto "goto") (statement_identifier "LAB_0006e44c") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar1 = local_40;" (assignment_expression "iVar1 = local_40" (identifier "iVar1") (= "=") (identifier "local_40")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_000afc68)(local_40)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000afc68)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_000afc68)" (( "(") (pointer_expression "*(code *)PTR_strlen_000afc68" (* "*") (cast_expression "(code *)PTR_strlen_000afc68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000afc68"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")")))) (; ";")) (expression_statement "puVar7 = (undefined1 *)(iVar1 + iVar2);" (assignment_expression "puVar7 = (undefined1 *)(iVar1 + iVar2)" (identifier "puVar7") (= "=") (cast_expression "(undefined1 *)(iVar1 + iVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar2)" (( "(") (binary_expression "iVar1 + iVar2" (identifier "iVar1") (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (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 "uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_0006d75c") (argument_list "(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "iVar1") (, ",") (identifier "puVar7") (, ",") (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 "puVar8 = auStack_68;" (assignment_expression "puVar8 = auStack_68" (identifier "puVar8") (= "=") (identifier "auStack_68")) (; ";")) (labeled_statement "LAB_0006e44c:\n  if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }" (statement_identifier "LAB_0006e44c") (: ":") (if_statement "if (local_2c == *(int *)puVar12) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar12)" (( "(") (binary_expression "local_2c == *(int *)puVar12" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))) (expression_statement "uVar3 = 0x6e664;" (assignment_expression "uVar3 = 0x6e664" (identifier "uVar3") (= "=") (number_literal "0x6e664")) (; ";")) (expression_statement "puVar12 = PTR___stack_chk_fail_000afbd4;" (assignment_expression "puVar12 = PTR___stack_chk_fail_000afbd4" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_fail_000afbd4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000afbd4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 **)(puVar8 + -0x18) = puVar7;" (assignment_expression "*(undefined1 **)(puVar8 + -0x18) = puVar7" (pointer_expression "*(undefined1 **)(puVar8 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar8 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x18)" (( "(") (binary_expression "puVar8 + -0x18" (identifier "puVar8") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -4) = uVar3;" (assignment_expression "*(undefined4 *)(puVar8 + -4) = uVar3" (pointer_expression "*(undefined4 *)(puVar8 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -4)" (( "(") (binary_expression "puVar8 + -4" (identifier "puVar8") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;" (assignment_expression "*(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0" (pointer_expression "*(undefined **)(puVar8 + -0x10)" (* "*") (cast_expression "(undefined **)(puVar8 + -0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x10)" (( "(") (binary_expression "puVar8 + -0x10" (identifier "puVar8") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "puVar12 + 0x48dc0" (identifier "puVar12") (+ "+") (number_literal "0x48dc0"))) (; ";")) (expression_statement "uVar3 = rpl_fseeko();" (assignment_expression "uVar3 = rpl_fseeko()" (identifier "uVar3") (= "=") (call_expression "rpl_fseeko()" (identifier "rpl_fseeko") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

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

{
  int var_6;
  type_1 *var_14;
  int var_2;
  type_2 *puVar3;
  type_3 *var_7;
  type_4 var_5;
  type_3 *******var_8;
  type_3 *******string_end;
  int *piVar6;
  type_4 var_3;
  int var_4;
  int var_1;
  type_3 ****var_16;
  type_5 *var_15;
  type_2 uVar11;
  type_5 var_12 [16];
  type_3 *****local_50 [3];
  type_3 *local_44;
  type_3 ******local_40;
  char *local_3c [2];
  type_6 ps;
  
  local_50[0] = (type_3 *****)(var_1 + 0x49090);
  var_15 = var_12;
  piVar6 = *(int **)(var_1 + 0x4189c);
  var_14 = (type_1 *)*piVar6;
  local_40 = (type_3 ******)string;
  local_3c[0] = pattern;
  var_2 = (**(type_7 **)(var_1 + 0x41a70))();
  if (var_2 != 1) {
    ps.__count = 0;
    ps.__value.__wch = 0;
    var_2 = (*(type_7 *)local_50[0][-0x1da2])(0,local_3c,0,&ps);
    var_3 = var_2 + 1;
    if (var_3 != 0) {
      string_end = (type_3 *******)0x0;
      var_8 = &local_40;
      var_2 = (*(type_7 *)local_50[0][-0x1da2])(0,&local_40,0,&ps);
      var_4 = var_2 + 1;
      if (var_4 != 0) {
        var_5 = var_3 + var_4;
        if ((var_3 <= var_5) && (var_5 < 0x40000000)) {
          if (var_5 < 2000) {
            var_6 = -(var_5 * 4 + 7 & 0xfffffff8);
            var_7 = (type_3 *)((int)local_50 + var_6);
            var_8 = (type_3 *******)(var_7 + var_3);
            (*(type_7 *)local_50[0][-0x1da2])(var_7,local_3c,var_3,&ps);
            (*(type_7 *)local_50[0][-0x1da2])(var_8,&local_40,var_4,&ps);
            string_end = var_8 + var_2;
            *(int *)((int)local_3c + var_6 + -0x1c) = var_11;
            var_2 = var_9(var_7,(type_3 *)var_8,(type_3 *)string_end,
                                      var_10((type_4)(var_11 << 0x1d) >> 0x1f,0),
                                      *(int *)((int)local_3c + var_6 + -0x1c));
            var_15 = var_12 + var_6;
            goto LAB_0006e44c;
          }
          var_7 = (type_3 *)(*(type_7 *)local_50[0][-0x1e12])();
          if (var_7 != (type_3 *)0x0) {
            var_8 = (type_3 *******)(var_7 + var_3);
            local_44 = var_7;
            (*(type_7 *)local_50[0][-0x1da2])(var_7,local_3c,var_3,&ps);
            (*(type_7 *)local_50[0][-0x1da2])(var_8,&local_40,var_4,&ps);
            string_end = var_8 + var_2;
            var_2 = var_9(local_44,(type_3 *)var_8,(type_3 *)string_end,
                                      var_10((type_4)(var_11 << 0x1d) >> 0x1f,0),var_11);
            (*(type_7 *)local_50[0][-0x1dca])(local_44);
            var_15 = var_12;
            goto LAB_0006e44c;
          }
        }
        var_2 = -1;
        puVar3 = (type_2 *)(*(type_7 *)local_50[0][-0x1d68])();
        *puVar3 = 0xc;
        goto LAB_0006e44c;
      }
    }
  }
  var_8 = (type_3 *******)local_40;
  var_2 = (*(type_7 *)local_50[0][-0x1df2])(local_40);
  string_end = (type_3 *******)((int)var_8 + var_2);
  var_2 = var_13(local_3c[0],(char *)var_8,(char *)string_end,
                           var_10((type_4)(var_11 << 0x1d) >> 0x1f,0),var_11);
  var_15 = var_12;
LAB_0006e44c:
  var_16 = local_50[0][-0x1e17];
  if (var_14 == (type_1 *)*piVar6) {
    return var_2;
  }
  uVar11 = 0x6e664;
  (*(type_7 *)var_16)();
  *(type_3 ********)(var_15 + -0x18) = string_end;
  *(type_2 *)(var_15 + -4) = uVar11;
  *(type_3 *****)(var_15 + -0x10) = var_16 + 0x12370;
  var_2 = var_17(var_14,*(type_8 *)(var_15 + -0x18),(int)var_8);
  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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) 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: (primitive_type) 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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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 (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: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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) (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: (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: (binary_expression left: (identifier) right: (binary_expression left: (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 (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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) (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 (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))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (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) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier)))))

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

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  int iVar5;
  uint uVar6;
  undefined1 *puVar7;
  undefined1 *puVar8;
  int iVar9;
  uint uVar10;
  undefined1 *puVar11;
  undefined *puVar12;
  undefined1 auStack_68 [16];
  int local_58 [2];
  int local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  puVar12 = PTR___stack_chk_guard_000afc3c;
  puVar8 = auStack_68;
  local_2c = *(int *)PTR___stack_chk_guard_000afc3c;
  local_40 = param_2;
  local_3c[0] = param_1;
  iVar1 = (*(code *)PTR___ctype_get_mb_cur_max_000afe10)();
  if (iVar1 != 1) {
    local_34 = 0;
    local_30 = 0;
    iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,local_3c,0,&local_34);
    uVar10 = iVar1 + 1;
    if (uVar10 != 0) {
      puVar7 = (undefined1 *)0x0;
      iVar1 = (*(code *)PTR_mbsrtowcs_000afda8)(0,&local_40,0,&local_34);
      iVar2 = iVar1 + 1;
      if (iVar2 != 0) {
        uVar6 = uVar10 + iVar2;
        if ((uVar10 <= uVar6) && (uVar6 < 0x40000000)) {
          if (uVar6 < 2000) {
            iVar5 = -(uVar6 * 4 + 7 & 0xfffffff8);
            puVar11 = &stack0xffffffb0 + iVar5;
            puVar8 = puVar11 + uVar10 * 4;
            (*(code *)PTR_mbsrtowcs_000afda8)(puVar11,local_3c,uVar10,&local_34);
            (*(code *)PTR_mbsrtowcs_000afda8)(puVar8,&local_40,iVar2,&local_34);
            puVar7 = puVar8 + iVar1 * 4;
            *(int *)((int)local_58 + iVar5) = param_3;
            uVar3 = FUN_0006c4bc(puVar11,puVar8,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);
            puVar8 = auStack_68 + iVar5;
            goto LAB_0006e44c;
          }
          iVar5 = (*(code *)PTR_malloc_000afbe8)();
          if (iVar5 != 0) {
            iVar9 = iVar5 + uVar10 * 4;
            (*(code *)PTR_mbsrtowcs_000afda8)(iVar5,local_3c,uVar10,&local_34);
            (*(code *)PTR_mbsrtowcs_000afda8)(iVar9,&local_40,iVar2,&local_34);
            puVar7 = (undefined1 *)(iVar9 + iVar1 * 4);
            local_58[0] = param_3;
            uVar3 = FUN_0006c4bc(iVar5,iVar9,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);
            (*(code *)PTR_free_000afd08)(iVar5);
            puVar8 = auStack_68;
            goto LAB_0006e44c;
          }
        }
        uVar3 = 0xffffffff;
        puVar4 = (undefined4 *)(*(code *)PTR___errno_location_000afe90)();
        *puVar4 = 0xc;
        goto LAB_0006e44c;
      }
    }
  }
  iVar1 = local_40;
  iVar2 = (*(code *)PTR_strlen_000afc68)(local_40);
  puVar7 = (undefined1 *)(iVar1 + iVar2);
  local_58[0] = param_3;
  uVar3 = FUN_0006d75c(local_3c[0],iVar1,puVar7,(uint)(param_3 << 0x1d) >> 0x1f);
  puVar8 = auStack_68;
LAB_0006e44c:
  if (local_2c == *(int *)puVar12) {
    return uVar3;
  }
  uVar3 = 0x6e664;
  puVar12 = PTR___stack_chk_fail_000afbd4;
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  *(undefined1 **)(puVar8 + -0x18) = puVar7;
  *(undefined4 *)(puVar8 + -4) = uVar3;
  *(undefined **)(puVar8 + -0x10) = puVar12 + 0x48dc0;
  uVar3 = rpl_fseeko();
  return uVar3;
}

