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

{
  undefined *puVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  wchar_t *pwVar7;
  uint uVar8;
  int ****string_00;
  undefined4 uVar9;
  uint uVar10;
  int iVar11;
  int ***local_40;
  char *local_3c [2];
  mbstate_t ps;
  
  puVar1 = PTR___stack_chk_guard_000564b4;
  piVar2 = *(int **)PTR___stack_chk_guard_000564b4;
  local_40 = (int ***)string;
  local_3c[0] = pattern;
  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();
  if (iVar3 != 1) {
    ps.__count = 0;
    ps.__value.__wch = 0;
    iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);
    uVar10 = iVar3 + 1;
    if (uVar10 != 0) {
      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);
      uVar9 = 0x129;
      if (iVar3 == 0) goto LAB_000389f4;
      string_00 = &local_40;
      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);
      iVar11 = iVar3 + 1;
      if (iVar11 != 0) {
        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);
        if (iVar4 == 0) {
          uVar9 = 0x12d;
          goto LAB_000389f4;
        }
        uVar8 = uVar10 + iVar11;
        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {
          if (uVar8 < 2000) {
            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);
            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);
            string_00 = (int ****)(pwVar7 + uVar10);
            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);
            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);
            if (iVar5 != 0) {
              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);
              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;
              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),
                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),
                                        *(int *)((int)local_3c + iVar4 + -0x1c));
              goto LAB_00038784;
            }
          }
          else {
            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();
            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;
            string_00 = (int ****)(pwVar7 + uVar10);
            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);
            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);
            if (iVar4 != 0) {
              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);
              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),
                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
              (*(code *)PTR_free_000564c0)(pwVar7);
              goto LAB_00038784;
            }
          }
          uVar9 = 0x147;
LAB_000389f4:
          iVar3 = (*(code *)PTR___assert_fail_00056330)
                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,
                             PTR_wcrtomb_00056118 + 0x5258);
          return iVar3;
        }
LAB_00038914:
        iVar3 = -1;
        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();
        *puVar6 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  string_00 = (int ****)local_40;
  iVar3 = (*(code *)PTR_strlen_00056424)(local_40);
  iVar3 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),
                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);
LAB_00038784:
  if (piVar2 == *(int **)puVar1) {
    return iVar3;
  }
  (*(code *)PTR___stack_chk_fail_00056494)();
  if (((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3])) {
    return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);
  }
  return 0;
}



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

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  undefined4 uVar8;
  int ****ppppiVar9;
  undefined1 *puVar10;
  int iVar11;
  int local_58 [2];
  int ***local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  int *local_2c;
  
  puVar1 = PTR___stack_chk_guard_000564b4;
  local_2c = *(int **)PTR___stack_chk_guard_000564b4;
  local_40 = (int ***)param_2;
  local_3c[0] = param_1;
  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();
  if (iVar2 != 1) {
    local_34 = 0;
    local_30 = 0;
    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);
    uVar3 = iVar2 + 1;
    if (uVar3 != 0) {
      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
      uVar8 = 0x129;
      if (iVar2 == 0) goto LAB_000389f4;
      ppppiVar9 = &local_40;
      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);
      iVar11 = iVar2 + 1;
      if (iVar11 != 0) {
        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
        if (iVar4 == 0) {
          uVar8 = 0x12d;
          goto LAB_000389f4;
        }
        uVar7 = uVar3 + iVar11;
        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {
          if (uVar7 < 2000) {
            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);
            puVar10 = &stack0xffffffb0 + iVar4;
            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);
            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);
            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
            if (iVar5 != 0) {
              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);
              *(int *)((int)local_58 + iVar4) = param_3;
              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,
                                   (uint)(param_3 << 0x1d) >> 0x1f);
              goto LAB_00038784;
            }
          }
          else {
            iVar4 = (*(code *)PTR_malloc_00056444)();
            if (iVar4 == 0) goto LAB_00038914;
            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);
            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);
            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
            if (iVar5 != 0) {
              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);
              local_58[0] = param_3;
              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f
                                  );
              (*(code *)PTR_free_000564c0)(iVar4);
              goto LAB_00038784;
            }
          }
          uVar8 = 0x147;
LAB_000389f4:
          uVar3 = (*(code *)PTR___assert_fail_00056330)
                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,
                             PTR_wcrtomb_00056118 + 0x5258);
          return uVar3;
        }
LAB_00038914:
        uVar3 = 0xffffffff;
        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();
        *puVar6 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  ppppiVar9 = (int ****)local_40;
  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);
  local_58[0] = param_3;
  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)
  ;
LAB_00038784:
  if (local_2c == *(int **)puVar1) {
    return uVar3;
  }
  (*(code *)PTR___stack_chk_fail_00056494)();
  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {
    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);
  }
  return 0;
}


lui gp,0x2
addiu gp,gp,0x5a08
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x7c70(gp)
sw s1,0x44(sp)
lw s1,-0x7c2c(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,0x000387cc
_lw gp,0x18(s8)
lw s0,0x28(s8)
lw t9,-0x7cbc(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,-0x7e6c(gp)
addiu t9,t9,0x78d8
bal 0x000378d8
_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,0x00038a1c
_lw t9,-0x7c4c(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,-0x7bec(gp)
addiu s5,s8,0x2c
sw zero,0x34(s8)
or a2,zero,zero
or a0,zero,zero
sw zero,0x4(s0)
or a3,s0,zero
jalr t9
_or a1,s5,zero
addiu s3,v0,0x1
beq s3,zero,0x00038748
_lw gp,0x18(s8)
lw t9,-0x7c30(gp)
jalr t9
_or a0,s0,zero
li a2,0x129
beq v0,zero,0x000389f4
_lw gp,0x18(s8)
lw t9,-0x7bec(gp)
addiu s6,s8,0x28
or a2,zero,zero
or a0,zero,zero
or a3,s0,zero
jalr t9
_or a1,s6,zero
addiu s7,v0,0x1
lw gp,0x18(s8)
beq s7,zero,0x00038748
_or s4,v0,zero
lw t9,-0x7c30(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x000389f0
_lw gp,0x18(s8)
addu a0,s3,s7
sltu v0,a0,s3
bne v0,zero,0x00038914
_lui v0,0x4000
sltu v0,a0,v0
beq v0,zero,0x00038914
_sltiu v0,a0,0x7d0
beq v0,zero,0x00038930
_sll a0,a0,0x2
addiu a0,a0,0x7
lw t9,-0x7bec(gp)
or a1,s5,zero
srl v0,a0,0x3
sll v1,s3,0x2
sll v0,v0,0x3
or a2,s3,zero
subu sp,sp,v0
or a3,s0,zero
addiu s5,sp,0x18
or a0,s5,zero
jalr t9
_addu s3,s5,v1
lw gp,0x18(s8)
lw t9,-0x7c30(gp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x00038a14
_lw gp,0x18(s8)
lw t9,-0x7bec(gp)
or a3,s0,zero
or a2,s7,zero
or a1,s6,zero
jalr t9
_or a0,s3,zero
sll a2,s4,0x2
lw gp,0x18(s8)
ext a3,s2,0x2,0x1
addu a2,s3,a2
sw s2,0x10(sp)
or a1,s3,zero
lw t9,-0x7e6c(gp)
addiu t9,t9,0x6404
bal 0x00036404
_or a0,s5,zero
lw gp,0x18(s8)
b 0x00038784
_or s0,v0,zero
lw t9,-0x7cf8(gp)
jalr t9
_li s0,-0x1
li v1,0xc
lw gp,0x18(s8)
b 0x00038784
_sw v1,0x0(v0)
lw t9,-0x7c9c(gp)
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x00038914
_or v1,v0,zero
lw t9,-0x7bec(gp)
sll v0,s3,0x2
or a0,v1,zero
sw v1,0x24(s8)
or a2,s3,zero
or a3,s0,zero
or a1,s5,zero
jalr t9
_addu s3,v1,v0
lw gp,0x18(s8)
lw t9,-0x7c30(gp)
jalr t9
_or a0,s0,zero
lw gp,0x18(s8)
beq v0,zero,0x00038a14
_lw v1,0x24(s8)
lw t9,-0x7bec(gp)
or a3,s0,zero
sw v1,0x24(s8)
or a2,s7,zero
or a1,s6,zero
jalr t9
_or a0,s3,zero
sll a2,s4,0x2
lw gp,0x18(s8)
ext a3,s2,0x2,0x1
lw v1,0x24(s8)
addu a2,s3,a2
or a1,s3,zero
sw s2,0x10(sp)
lw t9,-0x7e6c(gp)
addiu t9,t9,0x6404
bal 0x00036404
_or a0,v1,zero
lw gp,0x18(s8)
or s0,v0,zero
lw v1,0x24(s8)
lw t9,-0x7c20(gp)
jalr t9
_or a0,v1,zero
b 0x00038784
_lw gp,0x18(s8)
li a2,0x12d
lw a3,-0x7fc8(gp)
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7db0(gp)
addiu a3,a3,0x5258
addiu a1,a1,0x4f3c
jalr t9
_addiu a0,a0,0x4f48
b 0x000389f4
_li a2,0x147
jalr t9
_nop
nop
nop
nop
lw v1,0x8(a0)
lw v0,0x8(a1)
beq v1,v0,0x00038a48
_nop
jr ra
_or v0,zero,zero
lw v1,0xc(a0)
lw v0,0xc(a1)
bne v1,v0,0x00038a40
_nop
lw v1,0x0(a0)
lw v0,0x0(a1)
lw a0,0x4(a0)
lw a1,0x4(a1)
xor v0,v1,v0
xor a0,a0,a1
or v0,v0,a0
jr ra
_sltiu v0,v0,0x1
(translation_unit "uint rpl_fnmatch(undefined4 param_1,int ****param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\n}\n\n" (function_definition "uint rpl_fnmatch(undefined4 param_1,int ****param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\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 (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))))) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int ****ppppiVar9;" primitive_type (pointer_declarator "****ppppiVar9" * (pointer_declarator "***ppppiVar9" * (pointer_declarator "**ppppiVar9" * (pointer_declarator "*ppppiVar9" * identifier)))) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int local_58 [2];" primitive_type (array_declarator "local_58 [2]" identifier [ number_literal ]) ;) (declaration "int ***local_40;" primitive_type (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * 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 (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000564b4" identifier = identifier) ;) (expression_statement "local_2c = *(int **)PTR___stack_chk_guard_000564b4;" (assignment_expression "local_2c = *(int **)PTR___stack_chk_guard_000564b4" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_000564b4" * (cast_expression "(int **)PTR___stack_chk_guard_000564b4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_40 = (int ***)param_2;" (assignment_expression "local_40 = (int ***)param_2" identifier = (cast_expression "(int ***)param_2" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00056470" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00056470" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (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 "uVar3 = iVar2 + 1;" (assignment_expression "uVar3 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar8 = 0x129;" (assignment_expression "uVar8 = 0x129" identifier = number_literal) ;) (if_statement "if (iVar2 == 0) goto LAB_000389f4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;)) (expression_statement "ppppiVar9 = &local_40;" (assignment_expression "ppppiVar9 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (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 "iVar11 = iVar2 + 1;" (assignment_expression "iVar11 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }" { (expression_statement "uVar8 = 0x12d;" (assignment_expression "uVar8 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;) })) (expression_statement "uVar7 = uVar3 + iVar11;" (assignment_expression "uVar7 = uVar3 + iVar11" identifier = (binary_expression "uVar3 + iVar11" identifier + identifier)) ;) (if_statement "if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }" if (parenthesized_expression "((uVar3 <= uVar7) && (uVar7 < 0x40000000))" ( (binary_expression "(uVar3 <= uVar7) && (uVar7 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar7)" ( (binary_expression "uVar3 <= uVar7" identifier <= identifier) )) && (parenthesized_expression "(uVar7 < 0x40000000)" ( (binary_expression "uVar7 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }" { (if_statement "if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" if (parenthesized_expression "(uVar7 < 2000)" ( (binary_expression "uVar7 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar7 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar7 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar7 * 4 + 7 & 0xfffffff8" (binary_expression "uVar7 * 4 + 7" (binary_expression "uVar7 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = &stack0xffffffb0 + iVar4;" (assignment_expression "puVar10 = &stack0xffffffb0 + iVar4" identifier = (binary_expression "&stack0xffffffb0 + iVar4" (pointer_expression "&stack0xffffffb0" & identifier) + identifier)) ;) (expression_statement "ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);" (assignment_expression "ppppiVar9 = (int ****)(puVar10 + uVar3 * 4)" identifier = (cast_expression "(int ****)(puVar10 + uVar3 * 4)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar10 + uVar3 * 4)" ( (binary_expression "puVar10 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,local_3c,uVar3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }" { (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppiVar9,&local_40,iVar11,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "*(int *)((int)local_58 + iVar4) = param_3;" (assignment_expression "*(int *)((int)local_58 + iVar4) = param_3" (pointer_expression "*(int *)((int)local_58 + iVar4)" * (cast_expression "(int *)((int)local_58 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + iVar4)" ( (binary_expression "(int)local_58 + iVar4" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "ppppiVar9 + iVar2" 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) )))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" else (compound_statement "{\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar4 = (*(code *)PTR_malloc_00056444)();" (assignment_expression "iVar4 = (*(code *)PTR_malloc_00056444)()" identifier = (call_expression "(*(code *)PTR_malloc_00056444)()" (parenthesized_expression "(*(code *)PTR_malloc_00056444)" ( (pointer_expression "*(code *)PTR_malloc_00056444" * (cast_expression "(code *)PTR_malloc_00056444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00038914;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00038914;" goto statement_identifier ;)) (expression_statement "ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);" (assignment_expression "ppppiVar9 = (int ****)(iVar4 + uVar3 * 4)" identifier = (cast_expression "(int ****)(iVar4 + uVar3 * 4)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar4 + uVar3 * 4)" ( (binary_expression "iVar4 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,local_3c,uVar3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }" { (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppiVar9,&local_40,iVar11,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );" (assignment_expression "uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" identifier = (call_expression "FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" identifier (argument_list "(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" ( identifier , identifier , (binary_expression "ppppiVar9 + iVar2" 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_000564c0)(iVar4);" (call_expression "(*(code *)PTR_free_000564c0)(iVar4)" (parenthesized_expression "(*(code *)PTR_free_000564c0)" ( (pointer_expression "*(code *)PTR_free_000564c0" * (cast_expression "(code *)PTR_free_000564c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier ))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }))) (expression_statement "uVar8 = 0x147;" (assignment_expression "uVar8 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);" statement_identifier : (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f48" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4f3c" identifier + number_literal) , identifier , (binary_expression "PTR_wcrtomb_00056118 + 0x5258" identifier + number_literal) )))) ;)) (return_statement "return uVar3;" return identifier ;) })) (labeled_statement "LAB_00038914:\n        uVar3 = 0xffffffff;" statement_identifier : (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000563e8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000563e8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000563e8)" ( (pointer_expression "*(code *)PTR___errno_location_000563e8" * (cast_expression "(code *)PTR___errno_location_000563e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) })) })) (expression_statement "ppppiVar9 = (int ****)local_40;" (assignment_expression "ppppiVar9 = (int ****)local_40" identifier = (cast_expression "(int ****)local_40" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_00056424)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00056424)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_00056424)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" ( (pointer_expression "*(code *)PTR_strlen_00056424" * (cast_expression "(code *)PTR_strlen_00056424" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;" (assignment_expression "uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "(int)ppppiVar9 + iVar2" (cast_expression "(int)ppppiVar9" ( (type_descriptor "int" primitive_type) ) 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) )))) ;) (labeled_statement "LAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_2c == *(int **)puVar1)" ( (binary_expression "local_2c == *(int **)puVar1" identifier == (pointer_expression "*(int **)puVar1" * (cast_expression "(int **)puVar1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" * (cast_expression "(code *)PTR___stack_chk_fail_00056494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }" if (parenthesized_expression "(((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3]))" ( (binary_expression "((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])" (parenthesized_expression "((int ***)local_2c[2] == ppppiVar9[2])" ( (binary_expression "(int ***)local_2c[2] == ppppiVar9[2]" (cast_expression "(int ***)local_2c[2]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_2c[2]" identifier [ number_literal ])) == (subscript_expression "ppppiVar9[2]" identifier [ number_literal ])) )) && (parenthesized_expression "((int ***)local_2c[3] == ppppiVar9[3])" ( (binary_expression "(int ***)local_2c[3] == ppppiVar9[3]" (cast_expression "(int ***)local_2c[3]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_2c[3]" identifier [ number_literal ])) == (subscript_expression "ppppiVar9[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }" { (return_statement "return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);" return (call_expression "(uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1])" ( (binary_expression "(int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]" (binary_expression "(int ***)*local_2c == *ppppiVar9" (cast_expression "(int ***)*local_2c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*local_2c" * identifier)) == (pointer_expression "*ppppiVar9" * identifier)) && (binary_expression "(int ***)local_2c[1] == ppppiVar9[1]" (cast_expression "(int ***)local_2c[1]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_2c[1]" identifier [ number_literal ])) == (subscript_expression "ppppiVar9[1]" identifier [ number_literal ]))) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int rpl_fnmatch(char *pattern,char *string,int flags)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  wchar_t *pwVar7;\n  uint uVar8;\n  int ****string_00;\n  undefined4 uVar9;\n  uint uVar10;\n  int iVar11;\n  int ***local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  puVar1 = PTR___stack_chk_guard_000564b4;\n  piVar2 = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)string;\n  local_3c[0] = pattern;\n  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar3 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);\n    uVar10 = iVar3 + 1;\n    if (uVar10 != 0) {\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  string_00 = (int ****)local_40;\n  iVar3 = (*(code *)PTR_strlen_00056424)(local_40);\n  iVar3 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\nLAB_00038784:\n  if (piVar2 == *(int **)puVar1) {\n    return iVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3])) {\n    return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);\n  }\n  return 0;\n}\n\n" (function_definition "int rpl_fnmatch(char *pattern,char *string,int flags)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  wchar_t *pwVar7;\n  uint uVar8;\n  int ****string_00;\n  undefined4 uVar9;\n  uint uVar10;\n  int iVar11;\n  int ***local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  puVar1 = PTR___stack_chk_guard_000564b4;\n  piVar2 = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)string;\n  local_3c[0] = pattern;\n  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar3 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);\n    uVar10 = iVar3 + 1;\n    if (uVar10 != 0) {\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  string_00 = (int ****)local_40;\n  iVar3 = (*(code *)PTR_strlen_00056424)(local_40);\n  iVar3 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\nLAB_00038784:\n  if (piVar2 == *(int **)puVar1) {\n    return iVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3])) {\n    return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);\n  }\n  return 0;\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  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  wchar_t *pwVar7;\n  uint uVar8;\n  int ****string_00;\n  undefined4 uVar9;\n  uint uVar10;\n  int iVar11;\n  int ***local_40;\n  char *local_3c [2];\n  mbstate_t ps;\n  \n  puVar1 = PTR___stack_chk_guard_000564b4;\n  piVar2 = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)string;\n  local_3c[0] = pattern;\n  iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar3 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);\n    uVar10 = iVar3 + 1;\n    if (uVar10 != 0) {\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  string_00 = (int ****)local_40;\n  iVar3 = (*(code *)PTR_strlen_00056424)(local_40);\n  iVar3 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\nLAB_00038784:\n  if (piVar2 == *(int **)puVar1) {\n    return iVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3])) {\n    return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);\n  }\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "wchar_t *pwVar7;" type_identifier (pointer_declarator "*pwVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int ****string_00;" primitive_type (pointer_declarator "****string_00" * (pointer_declarator "***string_00" * (pointer_declarator "**string_00" * (pointer_declarator "*string_00" * identifier)))) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int ***local_40;" primitive_type (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 "puVar1 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000564b4" identifier = identifier) ;) (expression_statement "piVar2 = *(int **)PTR___stack_chk_guard_000564b4;" (assignment_expression "piVar2 = *(int **)PTR___stack_chk_guard_000564b4" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_000564b4" * (cast_expression "(int **)PTR___stack_chk_guard_000564b4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_40 = (int ***)string;" (assignment_expression "local_40 = (int ***)string" identifier = (cast_expression "(int ***)string" ( (type_descriptor "int ***" primitive_type (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 "iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();" (assignment_expression "iVar3 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00056470" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00056470" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 1) {\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);\n    uVar10 = iVar3 + 1;\n    if (uVar10 != 0) {\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n    ps.__count = 0;\n    ps.__value.__wch = 0;\n    iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);\n    uVar10 = iVar3 + 1;\n    if (uVar10 != 0) {\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\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 "iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);" (assignment_expression "iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_3c,0,&ps)" ( number_literal , identifier , number_literal , (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "uVar10 = iVar3 + 1;" (assignment_expression "uVar10 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 != 0) {\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n      uVar9 = 0x129;\n      if (iVar3 == 0) goto LAB_000389f4;\n      string_00 = &local_40;\n      iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);\n      iVar11 = iVar3 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" { (expression_statement "iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps);" (assignment_expression "iVar3 = (*(code *)PTR_mbsinit_000564b0)(&ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "uVar9 = 0x129;" (assignment_expression "uVar9 = 0x129" identifier = number_literal) ;) (if_statement "if (iVar3 == 0) goto LAB_000389f4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;)) (expression_statement "string_00 = &local_40;" (assignment_expression "string_00 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);" (assignment_expression "iVar3 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,&local_40,0,&ps)" ( number_literal , (pointer_expression "&local_40" & identifier) , number_literal , (pointer_expression "&ps" & identifier) )))) ;) (expression_statement "iVar11 = iVar3 + 1;" (assignment_expression "iVar11 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n        if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar8 = uVar10 + iVar11;\n        if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }\nLAB_00038914:\n        iVar3 = -1;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (if_statement "if (iVar4 == 0) {\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar9 = 0x12d;\n          goto LAB_000389f4;\n        }" { (expression_statement "uVar9 = 0x12d;" (assignment_expression "uVar9 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;) })) (expression_statement "uVar8 = uVar10 + iVar11;" (assignment_expression "uVar8 = uVar10 + iVar11" identifier = (binary_expression "uVar10 + iVar11" identifier + identifier)) ;) (if_statement "if ((uVar10 <= uVar8) && (uVar8 < 0x40000000)) {\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }" if (parenthesized_expression "((uVar10 <= uVar8) && (uVar8 < 0x40000000))" ( (binary_expression "(uVar10 <= uVar8) && (uVar8 < 0x40000000)" (parenthesized_expression "(uVar10 <= uVar8)" ( (binary_expression "uVar10 <= uVar8" identifier <= identifier) )) && (parenthesized_expression "(uVar8 < 0x40000000)" ( (binary_expression "uVar8 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }\n          uVar9 = 0x147;\nLAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return iVar3;\n        }" { (if_statement "if (uVar8 < 2000) {\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }\n          else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }" if (parenthesized_expression "(uVar8 < 2000)" ( (binary_expression "uVar8 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);\n            pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar8 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar8 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar8 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar8 * 4 + 7 & 0xfffffff8" (binary_expression "uVar8 * 4 + 7" (binary_expression "uVar8 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4);" (assignment_expression "pwVar7 = (wchar_t *)(&stack0xffffffb0 + iVar4)" identifier = (cast_expression "(wchar_t *)(&stack0xffffffb0 + iVar4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&stack0xffffffb0 + iVar4)" ( (binary_expression "&stack0xffffffb0 + iVar4" (pointer_expression "&stack0xffffffb0" & identifier) + identifier) )))) ;) (expression_statement "string_00 = (int ****)(pwVar7 + uVar10);" (assignment_expression "string_00 = (int ****)(pwVar7 + uVar10)" identifier = (cast_expression "(int ****)(pwVar7 + uVar10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pwVar7 + uVar10)" ( (binary_expression "pwVar7 + uVar10" identifier + identifier) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pwVar7,local_3c,uVar10,&ps)" ( identifier , identifier , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              *(int *)((int)local_3c + iVar4 + -0x1c) = flags;\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));\n              goto LAB_00038784;\n            }" { (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(string_00,&local_40,iVar11,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "*(int *)((int)local_3c + iVar4 + -0x1c) = flags;" (assignment_expression "*(int *)((int)local_3c + iVar4 + -0x1c) = flags" (pointer_expression "*(int *)((int)local_3c + iVar4 + -0x1c)" * (cast_expression "(int *)((int)local_3c + iVar4 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + iVar4 + -0x1c)" ( (binary_expression "(int)local_3c + iVar4 + -0x1c" (binary_expression "(int)local_3c + iVar4" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c));" (assignment_expression "iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c))" identifier = (call_expression "internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c))" identifier (argument_list "(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),\n                                        *(int *)((int)local_3c + iVar4 + -0x1c))" ( identifier , (cast_expression "(wchar_t *)string_00" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(string_00 + iVar3)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(string_00 + iVar3)" ( (binary_expression "string_00 + iVar3" identifier + identifier) ))) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)((int)local_3c + iVar4 + -0x1c)" * (cast_expression "(int *)((int)local_3c + iVar4 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + iVar4 + -0x1c)" ( (binary_expression "(int)local_3c + iVar4 + -0x1c" (binary_expression "(int)local_3c + iVar4" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }) (else_clause "else {\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }" else (compound_statement "{\n            pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();\n            if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;\n            string_00 = (int ****)(pwVar7 + uVar10);\n            (*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);\n            iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);\n            if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)();" (assignment_expression "pwVar7 = (wchar_t *)(*(code *)PTR_malloc_00056444)()" identifier = (cast_expression "(wchar_t *)(*(code *)PTR_malloc_00056444)()" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00056444)()" (parenthesized_expression "(*(code *)PTR_malloc_00056444)" ( (pointer_expression "*(code *)PTR_malloc_00056444" * (cast_expression "(code *)PTR_malloc_00056444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if (pwVar7 == (wchar_t *)0x0) goto LAB_00038914;" if (parenthesized_expression "(pwVar7 == (wchar_t *)0x0)" ( (binary_expression "pwVar7 == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00038914;" goto statement_identifier ;)) (expression_statement "string_00 = (int ****)(pwVar7 + uVar10);" (assignment_expression "string_00 = (int ****)(pwVar7 + uVar10)" identifier = (cast_expression "(int ****)(pwVar7 + uVar10)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(pwVar7 + uVar10)" ( (binary_expression "pwVar7 + uVar10" identifier + identifier) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(pwVar7,local_3c,uVar10,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pwVar7,local_3c,uVar10,&ps)" ( identifier , identifier , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&ps)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&ps)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&ps)" ( (pointer_expression "&ps" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);\n              iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);\n              (*(code *)PTR_free_000564c0)(pwVar7);\n              goto LAB_00038784;\n            }" { (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(string_00,&local_40,iVar11,&ps)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(string_00,&local_40,iVar11,&ps)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&ps" & identifier) ))) ;) (expression_statement "iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "iVar3 = internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (call_expression "internal_fnwmatch(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\n                                        SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(pwVar7,(wchar_t *)string_00,(wchar_t *)(string_00 + iVar3),\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_00 + iVar3)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(string_00 + iVar3)" ( (binary_expression "string_00 + iVar3" identifier + identifier) ))) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , identifier )))) ;) (expression_statement "(*(code *)PTR_free_000564c0)(pwVar7);" (call_expression "(*(code *)PTR_free_000564c0)(pwVar7)" (parenthesized_expression "(*(code *)PTR_free_000564c0)" ( (pointer_expression "*(code *)PTR_free_000564c0" * (cast_expression "(code *)PTR_free_000564c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pwVar7)" ( identifier ))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }))) (expression_statement "uVar9 = 0x147;" (assignment_expression "uVar9 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_000389f4:\n          iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258);" (assignment_expression "iVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar9,\n                             PTR_wcrtomb_00056118 + 0x5258)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f48" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4f3c" identifier + number_literal) , identifier , (binary_expression "PTR_wcrtomb_00056118 + 0x5258" identifier + number_literal) )))) ;)) (return_statement "return iVar3;" return identifier ;) })) (labeled_statement "LAB_00038914:\n        iVar3 = -1;" statement_identifier : (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000563e8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000563e8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000563e8)" ( (pointer_expression "*(code *)PTR___errno_location_000563e8" * (cast_expression "(code *)PTR___errno_location_000563e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) })) })) (expression_statement "string_00 = (int ****)local_40;" (assignment_expression "string_00 = (int ****)local_40" identifier = (cast_expression "(int ****)local_40" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_strlen_00056424)(local_40);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_00056424)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_00056424)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" ( (pointer_expression "*(code *)PTR_strlen_00056424" * (cast_expression "(code *)PTR_strlen_00056424" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "iVar3 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags);" (assignment_expression "iVar3 = internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier = (call_expression "internal_fnmatch(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\n                           SUB41((uint)(flags << 0x1d) >> 0x1f,0),flags)" identifier (argument_list "(local_3c[0],(char *)string_00,(char *)((int)string_00 + iVar3),\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 *)((int)string_00 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string_00 + iVar3)" ( (binary_expression "(int)string_00 + iVar3" (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) , (call_expression "SUB41((uint)(flags << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)(flags << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)(flags << 0x1d) >> 0x1f" (call_expression "(uint)(flags << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(flags << 0x1d)" ( (binary_expression "flags << 0x1d" identifier << number_literal) ))) >> number_literal) , number_literal ))) , identifier )))) ;) (labeled_statement "LAB_00038784:\n  if (piVar2 == *(int **)puVar1) {\n    return iVar3;\n  }" statement_identifier : (if_statement "if (piVar2 == *(int **)puVar1) {\n    return iVar3;\n  }" if (parenthesized_expression "(piVar2 == *(int **)puVar1)" ( (binary_expression "piVar2 == *(int **)puVar1" identifier == (pointer_expression "*(int **)puVar1" * (cast_expression "(int **)puVar1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" * (cast_expression "(code *)PTR___stack_chk_fail_00056494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3])) {\n    return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);\n  }" if (parenthesized_expression "(((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3]))" ( (binary_expression "((int ***)piVar2[2] == string_00[2]) && ((int ***)piVar2[3] == string_00[3])" (parenthesized_expression "((int ***)piVar2[2] == string_00[2])" ( (binary_expression "(int ***)piVar2[2] == string_00[2]" (cast_expression "(int ***)piVar2[2]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "piVar2[2]" identifier [ number_literal ])) == (subscript_expression "string_00[2]" identifier [ number_literal ])) )) && (parenthesized_expression "((int ***)piVar2[3] == string_00[3])" ( (binary_expression "(int ***)piVar2[3] == string_00[3]" (cast_expression "(int ***)piVar2[3]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "piVar2[3]" identifier [ number_literal ])) == (subscript_expression "string_00[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);\n  }" { (return_statement "return (uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]);" return (call_expression "(uint)((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1])" ( (binary_expression "(int ***)*piVar2 == *string_00 && (int ***)piVar2[1] == string_00[1]" (binary_expression "(int ***)*piVar2 == *string_00" (cast_expression "(int ***)*piVar2" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*piVar2" * identifier)) == (pointer_expression "*string_00" * identifier)) && (binary_expression "(int ***)piVar2[1] == string_00[1]" (cast_expression "(int ***)piVar2[1]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "piVar2[1]" identifier [ number_literal ])) == (subscript_expression "string_00[1]" identifier [ number_literal ]))) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "uint rpl_fnmatch(undefined4 param_1,int ****param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\n}\n\n" (function_definition "uint rpl_fnmatch(undefined4 param_1,int ****param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\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 (pointer_declarator "****param_2" * (pointer_declarator "***param_2" * (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))))) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int ****ppppiVar9;" primitive_type (pointer_declarator "****ppppiVar9" * (pointer_declarator "***ppppiVar9" * (pointer_declarator "**ppppiVar9" * (pointer_declarator "*ppppiVar9" * identifier)))) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int local_58 [2];" primitive_type (array_declarator "local_58 [2]" identifier [ number_literal ]) ;) (declaration "int ***local_40;" primitive_type (pointer_declarator "***local_40" * (pointer_declarator "**local_40" * (pointer_declarator "*local_40" * 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 (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000564b4" identifier = identifier) ;) (expression_statement "local_2c = *(int **)PTR___stack_chk_guard_000564b4;" (assignment_expression "local_2c = *(int **)PTR___stack_chk_guard_000564b4" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_000564b4" * (cast_expression "(int **)PTR___stack_chk_guard_000564b4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_40 = (int ***)param_2;" (assignment_expression "local_40 = (int ***)param_2" identifier = (cast_expression "(int ***)param_2" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)()" identifier = (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)" ( (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00056470" * (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00056470" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (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 "uVar3 = iVar2 + 1;" (assignment_expression "uVar3 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" { (expression_statement "iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (expression_statement "uVar8 = 0x129;" (assignment_expression "uVar8 = 0x129" identifier = number_literal) ;) (if_statement "if (iVar2 == 0) goto LAB_000389f4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;)) (expression_statement "ppppiVar9 = &local_40;" (assignment_expression "ppppiVar9 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34)" identifier = (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (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 "iVar11 = iVar2 + 1;" (assignment_expression "iVar11 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" { (expression_statement "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }" { (expression_statement "uVar8 = 0x12d;" (assignment_expression "uVar8 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;) })) (expression_statement "uVar7 = uVar3 + iVar11;" (assignment_expression "uVar7 = uVar3 + iVar11" identifier = (binary_expression "uVar3 + iVar11" identifier + identifier)) ;) (if_statement "if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }" if (parenthesized_expression "((uVar3 <= uVar7) && (uVar7 < 0x40000000))" ( (binary_expression "(uVar3 <= uVar7) && (uVar7 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar7)" ( (binary_expression "uVar3 <= uVar7" identifier <= identifier) )) && (parenthesized_expression "(uVar7 < 0x40000000)" ( (binary_expression "uVar7 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }" { (if_statement "if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" if (parenthesized_expression "(uVar7 < 2000)" ( (binary_expression "uVar7 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar7 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar7 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar7 * 4 + 7 & 0xfffffff8" (binary_expression "uVar7 * 4 + 7" (binary_expression "uVar7 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar10 = &stack0xffffffb0 + iVar4;" (assignment_expression "puVar10 = &stack0xffffffb0 + iVar4" identifier = (binary_expression "&stack0xffffffb0 + iVar4" (pointer_expression "&stack0xffffffb0" & identifier) + identifier)) ;) (expression_statement "ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);" (assignment_expression "ppppiVar9 = (int ****)(puVar10 + uVar3 * 4)" identifier = (cast_expression "(int ****)(puVar10 + uVar3 * 4)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(puVar10 + uVar3 * 4)" ( (binary_expression "puVar10 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,local_3c,uVar3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }" { (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppiVar9,&local_40,iVar11,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "*(int *)((int)local_58 + iVar4) = param_3;" (assignment_expression "*(int *)((int)local_58 + iVar4) = param_3" (pointer_expression "*(int *)((int)local_58 + iVar4)" * (cast_expression "(int *)((int)local_58 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_58 + iVar4)" ( (binary_expression "(int)local_58 + iVar4" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "ppppiVar9 + iVar2" 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) )))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" else (compound_statement "{\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar4 = (*(code *)PTR_malloc_00056444)();" (assignment_expression "iVar4 = (*(code *)PTR_malloc_00056444)()" identifier = (call_expression "(*(code *)PTR_malloc_00056444)()" (parenthesized_expression "(*(code *)PTR_malloc_00056444)" ( (pointer_expression "*(code *)PTR_malloc_00056444" * (cast_expression "(code *)PTR_malloc_00056444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00038914;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00038914;" goto statement_identifier ;)) (expression_statement "ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);" (assignment_expression "ppppiVar9 = (int ****)(iVar4 + uVar3 * 4)" identifier = (cast_expression "(int ****)(iVar4 + uVar3 * 4)" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(iVar4 + uVar3 * 4)" ( (binary_expression "iVar4 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4,local_3c,uVar3,&local_34)" ( identifier , identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" identifier = (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" ( (pointer_expression "*(code *)PTR_mbsinit_000564b0" * (cast_expression "(code *)PTR_mbsinit_000564b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_34)" ( (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }" { (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" ( (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" * (cast_expression "(code *)PTR_mbsrtowcs_000564f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppiVar9,&local_40,iVar11,&local_34)" ( identifier , (pointer_expression "&local_40" & identifier) , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );" (assignment_expression "uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" identifier = (call_expression "FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" identifier (argument_list "(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" ( identifier , identifier , (binary_expression "ppppiVar9 + iVar2" 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_000564c0)(iVar4);" (call_expression "(*(code *)PTR_free_000564c0)(iVar4)" (parenthesized_expression "(*(code *)PTR_free_000564c0)" ( (pointer_expression "*(code *)PTR_free_000564c0" * (cast_expression "(code *)PTR_free_000564c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier ))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }))) (expression_statement "uVar8 = 0x147;" (assignment_expression "uVar8 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);" statement_identifier : (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f48" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4f3c" identifier + number_literal) , identifier , (binary_expression "PTR_wcrtomb_00056118 + 0x5258" identifier + number_literal) )))) ;)) (return_statement "return uVar3;" return identifier ;) })) (labeled_statement "LAB_00038914:\n        uVar3 = 0xffffffff;" statement_identifier : (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)()" identifier = (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000563e8)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___errno_location_000563e8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000563e8)" ( (pointer_expression "*(code *)PTR___errno_location_000563e8" * (cast_expression "(code *)PTR___errno_location_000563e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) })) })) (expression_statement "ppppiVar9 = (int ****)local_40;" (assignment_expression "ppppiVar9 = (int ****)local_40" identifier = (cast_expression "(int ****)local_40" ( (type_descriptor "int ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar2 = (*(code *)PTR_strlen_00056424)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00056424)(local_40)" identifier = (call_expression "(*(code *)PTR_strlen_00056424)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" ( (pointer_expression "*(code *)PTR_strlen_00056424" * (cast_expression "(code *)PTR_strlen_00056424" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40)" ( identifier )))) ;) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;" (assignment_expression "uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" identifier (argument_list "(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" ( (subscript_expression "local_3c[0]" identifier [ number_literal ]) , identifier , (binary_expression "(int)ppppiVar9 + iVar2" (cast_expression "(int)ppppiVar9" ( (type_descriptor "int" primitive_type) ) 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) )))) ;) (labeled_statement "LAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }" statement_identifier : (if_statement "if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_2c == *(int **)puVar1)" ( (binary_expression "local_2c == *(int **)puVar1" identifier == (pointer_expression "*(int **)puVar1" * (cast_expression "(int **)puVar1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" * (cast_expression "(code *)PTR___stack_chk_fail_00056494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }" if (parenthesized_expression "(((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3]))" ( (binary_expression "((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])" (parenthesized_expression "((int ***)local_2c[2] == ppppiVar9[2])" ( (binary_expression "(int ***)local_2c[2] == ppppiVar9[2]" (cast_expression "(int ***)local_2c[2]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_2c[2]" identifier [ number_literal ])) == (subscript_expression "ppppiVar9[2]" identifier [ number_literal ])) )) && (parenthesized_expression "((int ***)local_2c[3] == ppppiVar9[3])" ( (binary_expression "(int ***)local_2c[3] == ppppiVar9[3]" (cast_expression "(int ***)local_2c[3]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_2c[3]" identifier [ number_literal ])) == (subscript_expression "ppppiVar9[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }" { (return_statement "return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);" return (call_expression "(uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1])" ( (binary_expression "(int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]" (binary_expression "(int ***)*local_2c == *ppppiVar9" (cast_expression "(int ***)*local_2c" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*local_2c" * identifier)) == (pointer_expression "*ppppiVar9" * identifier)) && (binary_expression "(int ***)local_2c[1] == ppppiVar9[1]" (cast_expression "(int ***)local_2c[1]" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (subscript_expression "local_2c[1]" identifier [ number_literal ])) == (subscript_expression "ppppiVar9[1]" identifier [ number_literal ]))) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) 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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + 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 ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) )))) ;)) (return_statement return IDENT ;) })) (labeled_statement 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ])) == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ])) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT)) == (pointer_expression * IDENT)) && (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (subscript_expression IDENT [ LIT ])) == (subscript_expression IDENT [ LIT ]))) ))) ;) })) (return_statement return LIT ;) })))
(function_definition "uint rpl_fnmatch(undefined4 param_1,int ****param_2,int param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\n}" (type_identifier "uint") (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") (pointer_declarator "****param_2" (* "*") (pointer_declarator "***param_2" (* "*") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2")))))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  int ****ppppiVar9;\n  undefined1 *puVar10;\n  int iVar11;\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  puVar1 = PTR___stack_chk_guard_000564b4;\n  local_2c = *(int **)PTR___stack_chk_guard_000564b4;\n  local_40 = (int ***)param_2;\n  local_3c[0] = param_1;\n  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();\n  if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  ppppiVar9 = (int ****)local_40;\n  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);\n  local_58[0] = param_3;\n  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;\nLAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }\n  return 0;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int ****ppppiVar9;" (primitive_type "int") (pointer_declarator "****ppppiVar9" (* "*") (pointer_declarator "***ppppiVar9" (* "*") (pointer_declarator "**ppppiVar9" (* "*") (pointer_declarator "*ppppiVar9" (* "*") (identifier "ppppiVar9"))))) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (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") (pointer_declarator "***local_40" (* "*") (pointer_declarator "**local_40" (* "*") (pointer_declarator "*local_40" (* "*") (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") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000564b4" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000564b4")) (; ";")) (expression_statement "local_2c = *(int **)PTR___stack_chk_guard_000564b4;" (assignment_expression "local_2c = *(int **)PTR___stack_chk_guard_000564b4" (identifier "local_2c") (= "=") (pointer_expression "*(int **)PTR___stack_chk_guard_000564b4" (* "*") (cast_expression "(int **)PTR___stack_chk_guard_000564b4" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000564b4")))) (; ";")) (expression_statement "local_40 = (int ***)param_2;" (assignment_expression "local_40 = (int ***)param_2" (identifier "local_40") (= "=") (cast_expression "(int ***)param_2" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "local_3c[0] = param_1;" (assignment_expression "local_3c[0] = param_1" (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();" (assignment_expression "iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)()" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)()" (parenthesized_expression "(*(code *)PTR___ctype_get_mb_cur_max_00056470)" (( "(") (pointer_expression "*(code *)PTR___ctype_get_mb_cur_max_00056470" (* "*") (cast_expression "(code *)PTR___ctype_get_mb_cur_max_00056470" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_get_mb_cur_max_00056470"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 != 1) {\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    local_34 = 0;\n    local_30 = 0;\n    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);\n    uVar3 = iVar2 + 1;\n    if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000564f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000564f4"))) () ")")) (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 "uVar3 = iVar2 + 1;" (assignment_expression "uVar3 = iVar2 + 1" (identifier "uVar3") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar3 != 0) {\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n      uVar8 = 0x129;\n      if (iVar2 == 0) goto LAB_000389f4;\n      ppppiVar9 = &local_40;\n      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }\n    }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000564b0" (* "*") (cast_expression "(code *)PTR_mbsinit_000564b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000564b0"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "uVar8 = 0x129;" (assignment_expression "uVar8 = 0x129" (identifier "uVar8") (= "=") (number_literal "0x129")) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_000389f4;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000389f4;" (goto "goto") (statement_identifier "LAB_000389f4") (; ";"))) (expression_statement "ppppiVar9 = &local_40;" (assignment_expression "ppppiVar9 = &local_40" (identifier "ppppiVar9") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);" (assignment_expression "iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000564f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000564f4"))) () ")")) (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 "iVar11 = iVar2 + 1;" (assignment_expression "iVar11 = iVar2 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar11 != 0) {\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n        if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar7 = uVar3 + iVar11;\n        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();\n        *puVar6 = 0xc;\n        goto LAB_00038784;\n      }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000564b0" (* "*") (cast_expression "(code *)PTR_mbsinit_000564b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000564b0"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar8 = 0x12d;\n          goto LAB_000389f4;\n        }" ({ "{") (expression_statement "uVar8 = 0x12d;" (assignment_expression "uVar8 = 0x12d" (identifier "uVar8") (= "=") (number_literal "0x12d")) (; ";")) (goto_statement "goto LAB_000389f4;" (goto "goto") (statement_identifier "LAB_000389f4") (; ";")) (} "}"))) (expression_statement "uVar7 = uVar3 + iVar11;" (assignment_expression "uVar7 = uVar3 + iVar11" (identifier "uVar7") (= "=") (binary_expression "uVar3 + iVar11" (identifier "uVar3") (+ "+") (identifier "iVar11"))) (; ";")) (if_statement "if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }" (if "if") (parenthesized_expression "((uVar3 <= uVar7) && (uVar7 < 0x40000000))" (( "(") (binary_expression "(uVar3 <= uVar7) && (uVar7 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar7)" (( "(") (binary_expression "uVar3 <= uVar7" (identifier "uVar3") (<= "<=") (identifier "uVar7")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 < 0x40000000)" (( "(") (binary_expression "uVar7 < 0x40000000" (identifier "uVar7") (< "<") (number_literal "0x40000000")) () ")"))) () ")")) (compound_statement "{\n          if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }\n          uVar8 = 0x147;\nLAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);\n          return uVar3;\n        }" ({ "{") (if_statement "if (uVar7 < 2000) {\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" (if "if") (parenthesized_expression "(uVar7 < 2000)" (( "(") (binary_expression "uVar7 < 2000" (identifier "uVar7") (< "<") (number_literal "2000")) () ")")) (compound_statement "{\n            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);\n            puVar10 = &stack0xffffffb0 + iVar4;\n            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }\n          }" ({ "{") (expression_statement "iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8)" (identifier "iVar4") (= "=") (unary_expression "-(uVar7 * 4 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar7 * 4 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar7 * 4 + 7 & 0xfffffff8" (binary_expression "uVar7 * 4 + 7" (binary_expression "uVar7 * 4" (identifier "uVar7") (* "*") (number_literal "4")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar10 = &stack0xffffffb0 + iVar4;" (assignment_expression "puVar10 = &stack0xffffffb0 + iVar4" (identifier "puVar10") (= "=") (binary_expression "&stack0xffffffb0 + iVar4" (pointer_expression "&stack0xffffffb0" (& "&") (identifier "stack0xffffffb0")) (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);" (assignment_expression "ppppiVar9 = (int ****)(puVar10 + uVar3 * 4)" (identifier "ppppiVar9") (= "=") (cast_expression "(int ****)(puVar10 + uVar3 * 4)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(puVar10 + uVar3 * 4)" (( "(") (binary_expression "puVar10 + uVar3 * 4" (identifier "puVar10") (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000564f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000564f4"))) () ")")) (argument_list "(puVar10,local_3c,uVar3,&local_34)" (( "(") (identifier "puVar10") (, ",") (identifier "local_3c") (, ",") (identifier "uVar3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000564b0" (* "*") (cast_expression "(code *)PTR_mbsinit_000564b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000564b0"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              *(int *)((int)local_58 + iVar4) = param_3;\n              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);\n              goto LAB_00038784;\n            }" ({ "{") (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000564f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000564f4"))) () ")")) (argument_list "(ppppiVar9,&local_40,iVar11,&local_34)" (( "(") (identifier "ppppiVar9") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "iVar11") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "*(int *)((int)local_58 + iVar4) = param_3;" (assignment_expression "*(int *)((int)local_58 + iVar4) = param_3" (pointer_expression "*(int *)((int)local_58 + iVar4)" (* "*") (cast_expression "(int *)((int)local_58 + iVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_58 + iVar4)" (( "(") (binary_expression "(int)local_58 + iVar4" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (+ "+") (identifier "iVar4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_00036404") (argument_list "(puVar10,ppppiVar9,ppppiVar9 + iVar2,\n                                   (uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (identifier "puVar10") (, ",") (identifier "ppppiVar9") (, ",") (binary_expression "ppppiVar9 + iVar2" (identifier "ppppiVar9") (+ "+") (identifier "iVar2")) (, ",") (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")) () ")")))) (; ";")) (goto_statement "goto LAB_00038784;" (goto "goto") (statement_identifier "LAB_00038784") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" (else "else") (compound_statement "{\n            iVar4 = (*(code *)PTR_malloc_00056444)();\n            if (iVar4 == 0) goto LAB_00038914;\n            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);\n            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);\n            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);\n            if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }\n          }" ({ "{") (expression_statement "iVar4 = (*(code *)PTR_malloc_00056444)();" (assignment_expression "iVar4 = (*(code *)PTR_malloc_00056444)()" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_malloc_00056444)()" (parenthesized_expression "(*(code *)PTR_malloc_00056444)" (( "(") (pointer_expression "*(code *)PTR_malloc_00056444" (* "*") (cast_expression "(code *)PTR_malloc_00056444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00056444"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_00038914;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00038914;" (goto "goto") (statement_identifier "LAB_00038914") (; ";"))) (expression_statement "ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);" (assignment_expression "ppppiVar9 = (int ****)(iVar4 + uVar3 * 4)" (identifier "ppppiVar9") (= "=") (cast_expression "(int ****)(iVar4 + uVar3 * 4)" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(iVar4 + uVar3 * 4)" (( "(") (binary_expression "iVar4 + uVar3 * 4" (identifier "iVar4") (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000564f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000564f4"))) () ")")) (argument_list "(iVar4,local_3c,uVar3,&local_34)" (( "(") (identifier "iVar4") (, ",") (identifier "local_3c") (, ",") (identifier "uVar3") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);" (assignment_expression "iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_mbsinit_000564b0)(&local_34)" (parenthesized_expression "(*(code *)PTR_mbsinit_000564b0)" (( "(") (pointer_expression "*(code *)PTR_mbsinit_000564b0" (* "*") (cast_expression "(code *)PTR_mbsinit_000564b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsinit_000564b0"))) () ")")) (argument_list "(&local_34)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);\n              local_58[0] = param_3;\n              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );\n              (*(code *)PTR_free_000564c0)(iVar4);\n              goto LAB_00038784;\n            }" ({ "{") (expression_statement "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);" (call_expression "(*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34)" (parenthesized_expression "(*(code *)PTR_mbsrtowcs_000564f4)" (( "(") (pointer_expression "*(code *)PTR_mbsrtowcs_000564f4" (* "*") (cast_expression "(code *)PTR_mbsrtowcs_000564f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbsrtowcs_000564f4"))) () ")")) (argument_list "(ppppiVar9,&local_40,iVar11,&local_34)" (( "(") (identifier "ppppiVar9") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (identifier "iVar11") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  );" (assignment_expression "uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" (identifier "uVar3") (= "=") (call_expression "FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" (identifier "FUN_00036404") (argument_list "(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f\n                                  )" (( "(") (identifier "iVar4") (, ",") (identifier "ppppiVar9") (, ",") (binary_expression "ppppiVar9 + iVar2" (identifier "ppppiVar9") (+ "+") (identifier "iVar2")) (, ",") (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_000564c0)(iVar4);" (call_expression "(*(code *)PTR_free_000564c0)(iVar4)" (parenthesized_expression "(*(code *)PTR_free_000564c0)" (( "(") (pointer_expression "*(code *)PTR_free_000564c0" (* "*") (cast_expression "(code *)PTR_free_000564c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000564c0"))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (goto_statement "goto LAB_00038784;" (goto "goto") (statement_identifier "LAB_00038784") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = 0x147;" (assignment_expression "uVar8 = 0x147" (identifier "uVar8") (= "=") (number_literal "0x147")) (; ";")) (labeled_statement "LAB_000389f4:\n          uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);" (statement_identifier "LAB_000389f4") (: ":") (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_00056330)\n                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00056330" (* "*") (cast_expression "(code *)PTR___assert_fail_00056330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00056330"))) () ")")) (argument_list "(PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,\n                             PTR_wcrtomb_00056118 + 0x5258)" (( "(") (binary_expression "PTR_wcrtomb_00056118 + 0x4f48" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4f48")) (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x4f3c" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4f3c")) (, ",") (identifier "uVar8") (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x5258" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x5258")) () ")")))) (; ";"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (labeled_statement "LAB_00038914:\n        uVar3 = 0xffffffff;" (statement_identifier "LAB_00038914") (: ":") (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();" (assignment_expression "puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR___errno_location_000563e8)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___errno_location_000563e8)()" (parenthesized_expression "(*(code *)PTR___errno_location_000563e8)" (( "(") (pointer_expression "*(code *)PTR___errno_location_000563e8" (* "*") (cast_expression "(code *)PTR___errno_location_000563e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___errno_location_000563e8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00038784;" (goto "goto") (statement_identifier "LAB_00038784") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "ppppiVar9 = (int ****)local_40;" (assignment_expression "ppppiVar9 = (int ****)local_40" (identifier "ppppiVar9") (= "=") (cast_expression "(int ****)local_40" (( "(") (type_descriptor "int ****" (primitive_type "int") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_40"))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strlen_00056424)(local_40);" (assignment_expression "iVar2 = (*(code *)PTR_strlen_00056424)(local_40)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strlen_00056424)(local_40)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" (( "(") (pointer_expression "*(code *)PTR_strlen_00056424" (* "*") (cast_expression "(code *)PTR_strlen_00056424" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00056424"))) () ")")) (argument_list "(local_40)" (( "(") (identifier "local_40") () ")")))) (; ";")) (expression_statement "local_58[0] = param_3;" (assignment_expression "local_58[0] = param_3" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)\n  ;" (assignment_expression "uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" (identifier "FUN_000378d8") (argument_list "(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)" (( "(") (subscript_expression "local_3c[0]" (identifier "local_3c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "ppppiVar9") (, ",") (binary_expression "(int)ppppiVar9 + iVar2" (cast_expression "(int)ppppiVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppiVar9")) (+ "+") (identifier "iVar2")) (, ",") (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")) () ")")))) (; ";")) (labeled_statement "LAB_00038784:\n  if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }" (statement_identifier "LAB_00038784") (: ":") (if_statement "if (local_2c == *(int **)puVar1) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int **)puVar1)" (( "(") (binary_expression "local_2c == *(int **)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int **)puVar1" (* "*") (cast_expression "(int **)puVar1" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00056494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00056494"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }" (if "if") (parenthesized_expression "(((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3]))" (( "(") (binary_expression "((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])" (parenthesized_expression "((int ***)local_2c[2] == ppppiVar9[2])" (( "(") (binary_expression "(int ***)local_2c[2] == ppppiVar9[2]" (cast_expression "(int ***)local_2c[2]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_2c[2]" (identifier "local_2c") ([ "[") (number_literal "2") (] "]"))) (== "==") (subscript_expression "ppppiVar9[2]" (identifier "ppppiVar9") ([ "[") (number_literal "2") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "((int ***)local_2c[3] == ppppiVar9[3])" (( "(") (binary_expression "(int ***)local_2c[3] == ppppiVar9[3]" (cast_expression "(int ***)local_2c[3]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_2c[3]" (identifier "local_2c") ([ "[") (number_literal "3") (] "]"))) (== "==") (subscript_expression "ppppiVar9[3]" (identifier "ppppiVar9") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) (compound_statement "{\n    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);\n  }" ({ "{") (return_statement "return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);" (return "return") (call_expression "(uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1])" (( "(") (binary_expression "(int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]" (binary_expression "(int ***)*local_2c == *ppppiVar9" (cast_expression "(int ***)*local_2c" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*local_2c" (* "*") (identifier "local_2c"))) (== "==") (pointer_expression "*ppppiVar9" (* "*") (identifier "ppppiVar9"))) (&& "&&") (binary_expression "(int ***)local_2c[1] == ppppiVar9[1]" (cast_expression "(int ***)local_2c[1]" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]"))) (== "==") (subscript_expression "ppppiVar9[1]" (identifier "ppppiVar9") ([ "[") (number_literal "1") (] "]")))) () ")"))) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

{
  type_1 *puVar1;
  int *var_14;
  int var_1;
  int var_4;
  int var_7;
  type_2 *puVar6;
  type_3 *var_6;
  type_4 var_5;
  int ****var_9;
  type_2 uVar9;
  type_4 var_2;
  int var_3;
  int ***local_40;
  char *local_3c [2];
  type_5 ps;
  
  puVar1 = PTR___stack_chk_guard_000564b4;
  var_14 = *(int **)PTR___stack_chk_guard_000564b4;
  local_40 = (int ***)string;
  local_3c[0] = pattern;
  var_1 = (*(type_6 *)PTR___ctype_get_mb_cur_max_00056470)();
  if (var_1 != 1) {
    ps.__count = 0;
    ps.__value.__wch = 0;
    var_1 = (*(type_6 *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&ps);
    var_2 = var_1 + 1;
    if (var_2 != 0) {
      var_1 = (*(type_6 *)PTR_mbsinit_000564b0)(&ps);
      uVar9 = 0x129;
      if (var_1 == 0) goto LAB_000389f4;
      var_9 = &local_40;
      var_1 = (*(type_6 *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&ps);
      var_3 = var_1 + 1;
      if (var_3 != 0) {
        var_4 = (*(type_6 *)PTR_mbsinit_000564b0)(&ps);
        if (var_4 == 0) {
          uVar9 = 0x12d;
          goto LAB_000389f4;
        }
        var_5 = var_2 + var_3;
        if ((var_2 <= var_5) && (var_5 < 0x40000000)) {
          if (var_5 < 2000) {
            var_4 = -(var_5 * 4 + 7 & 0xfffffff8);
            var_6 = (type_3 *)(&stack0xffffffb0 + var_4);
            var_9 = (int ****)(var_6 + var_2);
            (*(type_6 *)PTR_mbsrtowcs_000564f4)(var_6,local_3c,var_2,&ps);
            var_7 = (*(type_6 *)PTR_mbsinit_000564b0)(&ps);
            if (var_7 != 0) {
              (*(type_6 *)PTR_mbsrtowcs_000564f4)(var_9,&local_40,var_3,&ps);
              *(int *)((int)local_3c + var_4 + -0x1c) = var_11;
              var_1 = var_8(var_6,(type_3 *)var_9,(type_3 *)(var_9 + var_1),
                                        var_10((type_4)(var_11 << 0x1d) >> 0x1f,0),
                                        *(int *)((int)local_3c + var_4 + -0x1c));
              goto LAB_00038784;
            }
          }
          else {
            var_6 = (type_3 *)(*(type_6 *)PTR_malloc_00056444)();
            if (var_6 == (type_3 *)0x0) goto LAB_00038914;
            var_9 = (int ****)(var_6 + var_2);
            (*(type_6 *)PTR_mbsrtowcs_000564f4)(var_6,local_3c,var_2,&ps);
            var_4 = (*(type_6 *)PTR_mbsinit_000564b0)(&ps);
            if (var_4 != 0) {
              (*(type_6 *)PTR_mbsrtowcs_000564f4)(var_9,&local_40,var_3,&ps);
              var_1 = var_8(var_6,(type_3 *)var_9,(type_3 *)(var_9 + var_1),
                                        var_10((type_4)(var_11 << 0x1d) >> 0x1f,0),var_11);
              (*(type_6 *)PTR_free_000564c0)(var_6);
              goto LAB_00038784;
            }
          }
          uVar9 = 0x147;
LAB_000389f4:
          var_1 = (*(type_6 *)PTR___assert_fail_00056330)
                            (var_12 + 0x4f48,var_12 + 0x4f3c,uVar9,
                             var_12 + 0x5258);
          return var_1;
        }
LAB_00038914:
        var_1 = -1;
        puVar6 = (type_2 *)(*(type_6 *)PTR___errno_location_000563e8)();
        *puVar6 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  var_9 = (int ****)local_40;
  var_1 = (*(type_6 *)PTR_strlen_00056424)(local_40);
  var_1 = var_13(local_3c[0],(char *)var_9,(char *)((int)var_9 + var_1),
                           var_10((type_4)(var_11 << 0x1d) >> 0x1f,0),var_11);
LAB_00038784:
  if (var_14 == *(int **)puVar1) {
    return var_1;
  }
  (*(type_6 *)PTR___stack_chk_fail_00056494)();
  if (((int ***)var_14[2] == var_9[2]) && ((int ***)var_14[3] == var_9[3])) {
    return (type_4)((int ***)*var_14 == *var_9 && (int ***)var_14[1] == var_9[1]);
  }
  return 0;
}


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

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

{
  undefined *puVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  uint uVar7;
  undefined4 uVar8;
  int ****ppppiVar9;
  undefined1 *puVar10;
  int iVar11;
  int local_58 [2];
  int ***local_40;
  undefined4 local_3c [2];
  undefined4 local_34;
  undefined4 local_30;
  int *local_2c;
  
  puVar1 = PTR___stack_chk_guard_000564b4;
  local_2c = *(int **)PTR___stack_chk_guard_000564b4;
  local_40 = (int ***)param_2;
  local_3c[0] = param_1;
  iVar2 = (*(code *)PTR___ctype_get_mb_cur_max_00056470)();
  if (iVar2 != 1) {
    local_34 = 0;
    local_30 = 0;
    iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,local_3c,0,&local_34);
    uVar3 = iVar2 + 1;
    if (uVar3 != 0) {
      iVar2 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
      uVar8 = 0x129;
      if (iVar2 == 0) goto LAB_000389f4;
      ppppiVar9 = &local_40;
      iVar2 = (*(code *)PTR_mbsrtowcs_000564f4)(0,&local_40,0,&local_34);
      iVar11 = iVar2 + 1;
      if (iVar11 != 0) {
        iVar4 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
        if (iVar4 == 0) {
          uVar8 = 0x12d;
          goto LAB_000389f4;
        }
        uVar7 = uVar3 + iVar11;
        if ((uVar3 <= uVar7) && (uVar7 < 0x40000000)) {
          if (uVar7 < 2000) {
            iVar4 = -(uVar7 * 4 + 7 & 0xfffffff8);
            puVar10 = &stack0xffffffb0 + iVar4;
            ppppiVar9 = (int ****)(puVar10 + uVar3 * 4);
            (*(code *)PTR_mbsrtowcs_000564f4)(puVar10,local_3c,uVar3,&local_34);
            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
            if (iVar5 != 0) {
              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);
              *(int *)((int)local_58 + iVar4) = param_3;
              uVar3 = FUN_00036404(puVar10,ppppiVar9,ppppiVar9 + iVar2,
                                   (uint)(param_3 << 0x1d) >> 0x1f);
              goto LAB_00038784;
            }
          }
          else {
            iVar4 = (*(code *)PTR_malloc_00056444)();
            if (iVar4 == 0) goto LAB_00038914;
            ppppiVar9 = (int ****)(iVar4 + uVar3 * 4);
            (*(code *)PTR_mbsrtowcs_000564f4)(iVar4,local_3c,uVar3,&local_34);
            iVar5 = (*(code *)PTR_mbsinit_000564b0)(&local_34);
            if (iVar5 != 0) {
              (*(code *)PTR_mbsrtowcs_000564f4)(ppppiVar9,&local_40,iVar11,&local_34);
              local_58[0] = param_3;
              uVar3 = FUN_00036404(iVar4,ppppiVar9,ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f
                                  );
              (*(code *)PTR_free_000564c0)(iVar4);
              goto LAB_00038784;
            }
          }
          uVar8 = 0x147;
LAB_000389f4:
          uVar3 = (*(code *)PTR___assert_fail_00056330)
                            (PTR_wcrtomb_00056118 + 0x4f48,PTR_wcrtomb_00056118 + 0x4f3c,uVar8,
                             PTR_wcrtomb_00056118 + 0x5258);
          return uVar3;
        }
LAB_00038914:
        uVar3 = 0xffffffff;
        puVar6 = (undefined4 *)(*(code *)PTR___errno_location_000563e8)();
        *puVar6 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  ppppiVar9 = (int ****)local_40;
  iVar2 = (*(code *)PTR_strlen_00056424)(local_40);
  local_58[0] = param_3;
  uVar3 = FUN_000378d8(local_3c[0],ppppiVar9,(int)ppppiVar9 + iVar2,(uint)(param_3 << 0x1d) >> 0x1f)
  ;
LAB_00038784:
  if (local_2c == *(int **)puVar1) {
    return uVar3;
  }
  (*(code *)PTR___stack_chk_fail_00056494)();
  if (((int ***)local_2c[2] == ppppiVar9[2]) && ((int ***)local_2c[3] == ppppiVar9[3])) {
    return (uint)((int ***)*local_2c == *ppppiVar9 && (int ***)local_2c[1] == ppppiVar9[1]);
  }
  return 0;
}

