
/* std::numpunct<wchar_t>::_M_initialize_numpunct(__locale_struct*) */

void __thiscall
std::numpunct<wchar_t>::_M_initialize_numpunct(numpunct<wchar_t> *this,__locale_struct *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int iVar4;
  long lVar5;
  char *__s;
  size_t sVar6;
  undefined8 *puVar7;
  void *pvVar8;
  long lVar9;
  
  if (*(long *)(this + 0x10) == 0) {
    puVar7 = (undefined8 *)operator_new(0x150);
    *(undefined4 *)(puVar7 + 1) = 0;
    puVar7[2] = 0;
    *puVar7 = &PTR____numpunct_cache_00679300;
    puVar7[3] = 0;
    *(undefined1 *)(puVar7 + 4) = 0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
    *(undefined1 *)(puVar7 + 0x29) = 0;
    *(undefined8 **)(this + 0x10) = puVar7;
  }
  if (param_1 == (__locale_struct *)0x0) {
    lVar9 = *(long *)(this + 0x10);
    *(char **)(lVar9 + 0x10) = "";
    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;
    *(undefined8 *)(lVar9 + 0x18) = 0;
    *(undefined1 *)(lVar9 + 0x20) = 0;
    puVar1 = __num_base::_S_atoms_out;
    lVar5 = 0;
    do {
      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];
      puVar2 = __num_base::_S_atoms_in;
      lVar5 = lVar5 + 1;
    } while (lVar5 != 0x24);
    lVar5 = 0;
    do {
      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];
      lVar5 = lVar5 + 1;
    } while (lVar5 != 0x1a);
  }
  else {
    uVar3 = __nl_langinfo_l(0x10003,param_1);
    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;
    iVar4 = __nl_langinfo_l(0x10004,param_1);
    lVar9 = *(long *)(this + 0x10);
    *(int *)(lVar9 + 0x4c) = iVar4;
    if (iVar4 == 0) {
      *(undefined8 *)(lVar9 + 0x18) = 0;
      *(char **)(lVar9 + 0x10) = "";
      *(undefined1 *)(lVar9 + 0x20) = 0;
      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;
    }
    else {
      __s = (char *)__nl_langinfo_l(0x10002,param_1);
      sVar6 = strlen(__s);
      if (sVar6 == 0) {
        lVar9 = *(long *)(this + 0x10);
        *(char **)(lVar9 + 0x10) = "";
        *(undefined1 *)(lVar9 + 0x20) = 0;
      }
      else {
                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */
        pvVar8 = operator_new__(sVar6 + 1);
        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);
        lVar9 = *(long *)(this + 0x10);
        *(void **)(lVar9 + 0x10) = pvVar8;
      }
      *(size_t *)(lVar9 + 0x18) = sVar6;
    }
  }
  *(undefined8 *)(lVar9 + 0x30) = 4;
  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;
  *(wchar_t **)(lVar9 + 0x38) = L"false";
  *(undefined8 *)(lVar9 + 0x40) = 5;
  return;
}



void FUN_004e0e70(long param_1,long param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int iVar4;
  long lVar5;
  char *__s;
  size_t sVar6;
  undefined8 *puVar7;
  void *pvVar8;
  long lVar9;
  
  if (*(long *)(param_1 + 0x10) == 0) {
    puVar7 = (undefined8 *)FUN_0049cb60(0x150);
    *(undefined4 *)(puVar7 + 1) = 0;
    puVar7[2] = 0;
    *puVar7 = &PTR_FUN_00679300;
    puVar7[3] = 0;
    *(undefined1 *)(puVar7 + 4) = 0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
    *(undefined1 *)(puVar7 + 0x29) = 0;
    *(undefined8 **)(param_1 + 0x10) = puVar7;
  }
  if (param_2 == 0) {
    lVar9 = *(long *)(param_1 + 0x10);
    *(char **)(lVar9 + 0x10) = "";
    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;
    *(undefined8 *)(lVar9 + 0x18) = 0;
    *(undefined1 *)(lVar9 + 0x20) = 0;
    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;
    lVar5 = 0;
    do {
      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];
      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;
      lVar5 = lVar5 + 1;
    } while (lVar5 != 0x24);
    lVar5 = 0;
    do {
      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];
      lVar5 = lVar5 + 1;
    } while (lVar5 != 0x1a);
  }
  else {
    uVar3 = __nl_langinfo_l(0x10003,param_2);
    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;
    iVar4 = __nl_langinfo_l(0x10004,param_2);
    lVar9 = *(long *)(param_1 + 0x10);
    *(int *)(lVar9 + 0x4c) = iVar4;
    if (iVar4 == 0) {
      *(undefined8 *)(lVar9 + 0x18) = 0;
      *(char **)(lVar9 + 0x10) = "";
      *(undefined1 *)(lVar9 + 0x20) = 0;
      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;
    }
    else {
      __s = (char *)__nl_langinfo_l(0x10002,param_2);
      sVar6 = strlen(__s);
      if (sVar6 == 0) {
        lVar9 = *(long *)(param_1 + 0x10);
        *(char **)(lVar9 + 0x10) = "";
        *(undefined1 *)(lVar9 + 0x20) = 0;
      }
      else {
                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */
        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);
        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);
        lVar9 = *(long *)(param_1 + 0x10);
        *(void **)(lVar9 + 0x10) = pvVar8;
      }
      *(size_t *)(lVar9 + 0x18) = sVar6;
    }
  }
  *(undefined8 *)(lVar9 + 0x30) = 4;
  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;
  *(wchar_t **)(lVar9 + 0x38) = L"false";
  *(undefined8 *)(lVar9 + 0x40) = 5;
  return;
}


PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RSI
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
CMP qword ptr [RDI + 0x10],0x0
JZ 0x004e0fd0
TEST RBP,RBP
JZ 0x004e0f18
MOV RSI,RBP
MOV EDI,0x10003
CALL 0x001770b0
MOV RDX,qword ptr [RBX + 0x10]
MOV RSI,RBP
MOV EDI,0x10004
MOV dword ptr [RDX + 0x48],EAX
CALL 0x001770b0
MOV RDX,qword ptr [RBX + 0x10]
MOV dword ptr [RDX + 0x4c],EAX
TEST EAX,EAX
JNZ 0x004e0f90
LEA RAX,[0x5861f6]
MOV qword ptr [RDX + 0x18],0x0
MOV qword ptr [RDX + 0x10],RAX
MOV byte ptr [RDX + 0x20],0x0
MOV dword ptr [RDX + 0x4c],0x2c
LEA RAX,[0x58df38]
MOV qword ptr [RDX + 0x30],0x4
MOV qword ptr [RDX + 0x28],RAX
LEA RAX,[0x58df4c]
MOV qword ptr [RDX + 0x38],RAX
MOV qword ptr [RDX + 0x40],0x5
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
RET
MOV RDX,qword ptr [RBX + 0x10]
LEA RAX,[0x5861f6]
MOV qword ptr [RDX + 0x10],RAX
MOV RAX,0x2c0000002e
MOV qword ptr [RDX + 0x48],RAX
LEA RAX,[0x67cb68]
MOV qword ptr [RDX + 0x18],0x0
MOV byte ptr [RDX + 0x20],0x0
MOV RSI,qword ptr [RAX]
XOR EAX,EAX
NOP dword ptr [RAX]
MOVSX ECX,byte ptr [RSI + RAX*0x1]
MOV dword ptr [RDX + RAX*0x4 + 0x50],ECX
ADD RAX,0x1
CMP RAX,0x24
JNZ 0x004e0f50
LEA RAX,[0x67cb70]
MOV RSI,qword ptr [RAX]
XOR EAX,EAX
NOP
MOVSX ECX,byte ptr [RSI + RAX*0x1]
MOV dword ptr [RDX + RAX*0x4 + 0xe0],ECX
ADD RAX,0x1
CMP RAX,0x1a
JNZ 0x004e0f70
JMP 0x004e0ee2
MOV RSI,RBP
MOV EDI,0x10002
CALL 0x001770b0
MOV RDI,RAX
MOV R12,RAX
CALL 0x00177490
MOV RBP,RAX
TEST RAX,RAX
JNZ 0x004e103b
MOV RDX,qword ptr [RBX + 0x10]
LEA RAX,[0x5861f6]
MOV qword ptr [RDX + 0x10],RAX
MOV byte ptr [RDX + 0x20],0x0
MOV qword ptr [RDX + 0x18],RBP
JMP 0x004e0ee2
MOV EDI,0x150
CALL 0x0049cb60
LEA RDX,[0x6792f0]
MOV dword ptr [RAX + 0x8],0x0
ADD RDX,0x10
MOV qword ptr [RAX + 0x10],0x0
MOV qword ptr [RAX],RDX
MOV qword ptr [RAX + 0x18],0x0
MOV byte ptr [RAX + 0x20],0x0
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x38],0x0
MOV qword ptr [RAX + 0x40],0x0
MOV qword ptr [RAX + 0x48],0x0
MOV byte ptr [RAX + 0x148],0x0
MOV qword ptr [RBX + 0x10],RAX
JMP 0x004e0e8b
LEA R13,[RAX + 0x1]
MOV RDI,R13
CALL 0x0049cb00
MOV RDX,R13
MOV RSI,R12
MOV RDI,RAX
CALL 0x00177aa0
MOV RDX,qword ptr [RBX + 0x10]
MOV qword ptr [RDX + 0x10],RAX
JMP 0x004e0fc7
(translation_unit "void FUN_004e0e70(long param_1,long param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}\n\n" (function_definition "void FUN_004e0e70(long param_1,long param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" primitive_type (function_declarator "FUN_004e0e70(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x10) == 0)" ( (binary_expression "*(long *)(param_1 + 0x10) == 0" (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }" { (expression_statement "puVar7 = (undefined8 *)FUN_0049cb60(0x150);" (assignment_expression "puVar7 = (undefined8 *)FUN_0049cb60(0x150)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x150)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x150)" identifier (argument_list "(0x150)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 1)" * (cast_expression "(undefined4 *)(puVar7 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = &PTR_FUN_00679300;" (assignment_expression "*puVar7 = &PTR_FUN_00679300" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00679300" & identifier)) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 0x29) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x29) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x29)" * (cast_expression "(undefined1 *)(puVar7 + 0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x29)" ( (binary_expression "puVar7 + 0x29" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 **)(param_1 + 0x10) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x10) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x10)" * (cast_expression "(undefined8 **)(param_1 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }" { (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;" (assignment_expression "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e" (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;" (assignment_expression "puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68" identifier = identifier) ;) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);" do (compound_statement "{\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    }" { (expression_statement "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];" (assignment_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5]" (pointer_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4)" * (cast_expression "(int *)(lVar9 + 0x50 + lVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x50 + lVar5 * 4)" ( (binary_expression "lVar9 + 0x50 + lVar5 * 4" (binary_expression "lVar9 + 0x50" identifier + number_literal) + (binary_expression "lVar5 * 4" identifier * number_literal)) )))) = (cast_expression "(int)(char)puVar1[lVar5]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar1[lVar5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar1[lVar5]" identifier [ identifier ])))) ;) (expression_statement "puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;" (assignment_expression "puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70" identifier = identifier) ;) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar5 != 0x24)" ( (binary_expression "lVar5 != 0x24" identifier != number_literal) )) ;) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);" do (compound_statement "{\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    }" { (expression_statement "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];" (assignment_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5]" (pointer_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4)" * (cast_expression "(int *)(lVar9 + 0xe0 + lVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0 + lVar5 * 4)" ( (binary_expression "lVar9 + 0xe0 + lVar5 * 4" (binary_expression "lVar9 + 0xe0" identifier + number_literal) + (binary_expression "lVar5 * 4" identifier * number_literal)) )))) = (cast_expression "(int)(char)puVar2[lVar5]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar2[lVar5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar2[lVar5]" identifier [ identifier ])))) ;) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar5 != 0x1a)" ( (binary_expression "lVar5 != 0x1a" identifier != number_literal) )) ;) }) (else_clause "else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" else (compound_statement "{\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" { (expression_statement "uVar3 = __nl_langinfo_l(0x10003,param_2);" (assignment_expression "uVar3 = __nl_langinfo_l(0x10003,param_2)" identifier = (call_expression "__nl_langinfo_l(0x10003,param_2)" identifier (argument_list "(0x10003,param_2)" ( number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;" (assignment_expression "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3" (pointer_expression "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48)" * (cast_expression "(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x10) + 0x48)" ( (binary_expression "*(long *)(param_1 + 0x10) + 0x48" (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = __nl_langinfo_l(0x10004,param_2);" (assignment_expression "iVar4 = __nl_langinfo_l(0x10004,param_2)" identifier = (call_expression "__nl_langinfo_l(0x10004,param_2)" identifier (argument_list "(0x10004,param_2)" ( number_literal , identifier )))) ;) (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(lVar9 + 0x4c) = iVar4;" (assignment_expression "*(int *)(lVar9 + 0x4c) = iVar4" (pointer_expression "*(int *)(lVar9 + 0x4c)" * (cast_expression "(int *)(lVar9 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x4c)" ( (binary_expression "lVar9 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }" { (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar9 + 0x4c) = 0x2c;" (assignment_expression "*(undefined4 *)(lVar9 + 0x4c) = 0x2c" (pointer_expression "*(undefined4 *)(lVar9 + 0x4c)" * (cast_expression "(undefined4 *)(lVar9 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x4c)" ( (binary_expression "lVar9 + 0x4c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" else (compound_statement "{\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" { (expression_statement "__s = (char *)__nl_langinfo_l(0x10002,param_2);" (assignment_expression "__s = (char *)__nl_langinfo_l(0x10002,param_2)" identifier = (cast_expression "(char *)__nl_langinfo_l(0x10002,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__nl_langinfo_l(0x10002,param_2)" identifier (argument_list "(0x10002,param_2)" ( number_literal , identifier ))))) ;) (expression_statement "sVar6 = strlen(__s);" (assignment_expression "sVar6 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" if (parenthesized_expression "(sVar6 == 0)" ( (binary_expression "sVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }" { (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" else (compound_statement "{\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" { comment (expression_statement "pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);" (assignment_expression "pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1)" identifier = (cast_expression "(void *)thunk_FUN_0049cb60(sVar6 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_0049cb60(sVar6 + 1)" identifier (argument_list "(sVar6 + 1)" ( (binary_expression "sVar6 + 1" identifier + number_literal) ))))) ;) (expression_statement "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);" (assignment_expression "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1)" identifier = (call_expression "memcpy(pvVar8,__s,sVar6 + 1)" identifier (argument_list "(pvVar8,__s,sVar6 + 1)" ( identifier , identifier , (binary_expression "sVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(void **)(lVar9 + 0x10) = pvVar8;" (assignment_expression "*(void **)(lVar9 + 0x10) = pvVar8" (pointer_expression "*(void **)(lVar9 + 0x10)" * (cast_expression "(void **)(lVar9 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(size_t *)(lVar9 + 0x18) = sVar6;" (assignment_expression "*(size_t *)(lVar9 + 0x18) = sVar6" (pointer_expression "*(size_t *)(lVar9 + 0x18)" * (cast_expression "(size_t *)(lVar9 + 0x18)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) }))) (expression_statement "*(undefined8 *)(lVar9 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar9 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar9 + 0x30)" * (cast_expression "(undefined8 *)(lVar9 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38;" (assignment_expression "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38" (pointer_expression "*(undefined **)(lVar9 + 0x28)" * (cast_expression "(undefined **)(lVar9 + 0x28)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) )))) = (pointer_expression "&DAT_0058df38" & identifier)) ;) (expression_statement "*(wchar_t **)(lVar9 + 0x38) = L"false";" (assignment_expression "*(wchar_t **)(lVar9 + 0x38) = L"false"" (pointer_expression "*(wchar_t **)(lVar9 + 0x38)" * (cast_expression "(wchar_t **)(lVar9 + 0x38)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) = (string_literal "L"false"" L" string_content ")) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x40) = 5;" (assignment_expression "*(undefined8 *)(lVar9 + 0x40) = 5" (pointer_expression "*(undefined8 *)(lVar9 + 0x40)" * (cast_expression "(undefined8 *)(lVar9 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* std::numpunct<wchar_t>::_M_initialize_numpunct(__locale_struct*) */\n\nvoid __thiscall\nstd::numpunct<wchar_t>::_M_initialize_numpunct(numpunct<wchar_t> *this,__locale_struct *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(this + 0x10) == 0) {\n    puVar7 = (undefined8 *)operator_new(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR____numpunct_cache_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(this + 0x10) = puVar7;\n  }\n  if (param_1 == (__locale_struct *)0x0) {\n    lVar9 = *(long *)(this + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = __num_base::_S_atoms_out;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_1);\n    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_1);\n    lVar9 = *(long *)(this + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}\n\n" comment (function_definition "void __thiscall\nstd::numpunct<wchar_t>::_M_initialize_numpunct(numpunct<wchar_t> *this,__locale_struct *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(this + 0x10) == 0) {\n    puVar7 = (undefined8 *)operator_new(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR____numpunct_cache_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(this + 0x10) = puVar7;\n  }\n  if (param_1 == (__locale_struct *)0x0) {\n    lVar9 = *(long *)(this + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = __num_base::_S_atoms_out;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_1);\n    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_1);\n    lVar9 = *(long *)(this + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::numpunct<wchar_t>::" identifier : : identifier < identifier > : :) (function_declarator "_M_initialize_numpunct(numpunct<wchar_t> *this,__locale_struct *param_1)" identifier (parameter_list "(numpunct<wchar_t> *this,__locale_struct *param_1)" ( (parameter_declaration "numpunct<wchar_t> *this" type_identifier (ERROR "<wchar_t>" < identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "__locale_struct *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(this + 0x10) == 0) {\n    puVar7 = (undefined8 *)operator_new(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR____numpunct_cache_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(this + 0x10) = puVar7;\n  }\n  if (param_1 == (__locale_struct *)0x0) {\n    lVar9 = *(long *)(this + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = __num_base::_S_atoms_out;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_1);\n    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_1);\n    lVar9 = *(long *)(this + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*(long *)(this + 0x10) == 0) {\n    puVar7 = (undefined8 *)operator_new(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR____numpunct_cache_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(this + 0x10) = puVar7;\n  }" if (parenthesized_expression "(*(long *)(this + 0x10) == 0)" ( (binary_expression "*(long *)(this + 0x10) == 0" (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar7 = (undefined8 *)operator_new(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR____numpunct_cache_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(this + 0x10) = puVar7;\n  }" { (expression_statement "puVar7 = (undefined8 *)operator_new(0x150);" (assignment_expression "puVar7 = (undefined8 *)operator_new(0x150)" identifier = (cast_expression "(undefined8 *)operator_new(0x150)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x150)" identifier (argument_list "(0x150)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 1)" * (cast_expression "(undefined4 *)(puVar7 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = &PTR____numpunct_cache_00679300;" (assignment_expression "*puVar7 = &PTR____numpunct_cache_00679300" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR____numpunct_cache_00679300" & identifier)) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 0x29) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x29) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x29)" * (cast_expression "(undefined1 *)(puVar7 + 0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x29)" ( (binary_expression "puVar7 + 0x29" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 **)(this + 0x10) = puVar7;" (assignment_expression "*(undefined8 **)(this + 0x10) = puVar7" (pointer_expression "*(undefined8 **)(this + 0x10)" * (cast_expression "(undefined8 **)(this + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (param_1 == (__locale_struct *)0x0) {\n    lVar9 = *(long *)(this + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = __num_base::_S_atoms_out;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_1);\n    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_1);\n    lVar9 = *(long *)(this + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" if (parenthesized_expression "(param_1 == (__locale_struct *)0x0)" ( (binary_expression "param_1 == (__locale_struct *)0x0" identifier == (cast_expression "(__locale_struct *)0x0" ( (type_descriptor "__locale_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar9 = *(long *)(this + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = __num_base::_S_atoms_out;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }" { (expression_statement "lVar9 = *(long *)(this + 0x10);" (assignment_expression "lVar9 = *(long *)(this + 0x10)" identifier = (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;" (assignment_expression "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e" (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1 = __num_base::_S_atoms_out;" (assignment_expression "puVar1 = __num_base" identifier = identifier) (ERROR "::_S_atoms_out" : : identifier) ;) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);" do (compound_statement "{\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = __num_base::_S_atoms_in;\n      lVar5 = lVar5 + 1;\n    }" { (expression_statement "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];" (assignment_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5]" (pointer_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4)" * (cast_expression "(int *)(lVar9 + 0x50 + lVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x50 + lVar5 * 4)" ( (binary_expression "lVar9 + 0x50 + lVar5 * 4" (binary_expression "lVar9 + 0x50" identifier + number_literal) + (binary_expression "lVar5 * 4" identifier * number_literal)) )))) = (cast_expression "(int)(char)puVar1[lVar5]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar1[lVar5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar1[lVar5]" identifier [ identifier ])))) ;) (expression_statement "puVar2 = __num_base::_S_atoms_in;" (assignment_expression "puVar2 = __num_base" identifier = identifier) (ERROR "::_S_atoms_in" : : identifier) ;) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar5 != 0x24)" ( (binary_expression "lVar5 != 0x24" identifier != number_literal) )) ;) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);" do (compound_statement "{\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    }" { (expression_statement "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];" (assignment_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5]" (pointer_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4)" * (cast_expression "(int *)(lVar9 + 0xe0 + lVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0 + lVar5 * 4)" ( (binary_expression "lVar9 + 0xe0 + lVar5 * 4" (binary_expression "lVar9 + 0xe0" identifier + number_literal) + (binary_expression "lVar5 * 4" identifier * number_literal)) )))) = (cast_expression "(int)(char)puVar2[lVar5]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar2[lVar5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar2[lVar5]" identifier [ identifier ])))) ;) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar5 != 0x1a)" ( (binary_expression "lVar5 != 0x1a" identifier != number_literal) )) ;) }) (else_clause "else {\n    uVar3 = __nl_langinfo_l(0x10003,param_1);\n    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_1);\n    lVar9 = *(long *)(this + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" else (compound_statement "{\n    uVar3 = __nl_langinfo_l(0x10003,param_1);\n    *(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_1);\n    lVar9 = *(long *)(this + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" { (expression_statement "uVar3 = __nl_langinfo_l(0x10003,param_1);" (assignment_expression "uVar3 = __nl_langinfo_l(0x10003,param_1)" identifier = (call_expression "__nl_langinfo_l(0x10003,param_1)" identifier (argument_list "(0x10003,param_1)" ( number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3;" (assignment_expression "*(undefined4 *)(*(long *)(this + 0x10) + 0x48) = uVar3" (pointer_expression "*(undefined4 *)(*(long *)(this + 0x10) + 0x48)" * (cast_expression "(undefined4 *)(*(long *)(this + 0x10) + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(this + 0x10) + 0x48)" ( (binary_expression "*(long *)(this + 0x10) + 0x48" (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = __nl_langinfo_l(0x10004,param_1);" (assignment_expression "iVar4 = __nl_langinfo_l(0x10004,param_1)" identifier = (call_expression "__nl_langinfo_l(0x10004,param_1)" identifier (argument_list "(0x10004,param_1)" ( number_literal , identifier )))) ;) (expression_statement "lVar9 = *(long *)(this + 0x10);" (assignment_expression "lVar9 = *(long *)(this + 0x10)" identifier = (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(lVar9 + 0x4c) = iVar4;" (assignment_expression "*(int *)(lVar9 + 0x4c) = iVar4" (pointer_expression "*(int *)(lVar9 + 0x4c)" * (cast_expression "(int *)(lVar9 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x4c)" ( (binary_expression "lVar9 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }" { (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar9 + 0x4c) = 0x2c;" (assignment_expression "*(undefined4 *)(lVar9 + 0x4c) = 0x2c" (pointer_expression "*(undefined4 *)(lVar9 + 0x4c)" * (cast_expression "(undefined4 *)(lVar9 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x4c)" ( (binary_expression "lVar9 + 0x4c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" else (compound_statement "{\n      __s = (char *)__nl_langinfo_l(0x10002,param_1);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" { (expression_statement "__s = (char *)__nl_langinfo_l(0x10002,param_1);" (assignment_expression "__s = (char *)__nl_langinfo_l(0x10002,param_1)" identifier = (cast_expression "(char *)__nl_langinfo_l(0x10002,param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__nl_langinfo_l(0x10002,param_1)" identifier (argument_list "(0x10002,param_1)" ( number_literal , identifier ))))) ;) (expression_statement "sVar6 = strlen(__s);" (assignment_expression "sVar6 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar6 == 0) {\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" if (parenthesized_expression "(sVar6 == 0)" ( (binary_expression "sVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar9 = *(long *)(this + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }" { (expression_statement "lVar9 = *(long *)(this + 0x10);" (assignment_expression "lVar9 = *(long *)(this + 0x10)" identifier = (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" else (compound_statement "{\n                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */\n        pvVar8 = operator_new__(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(this + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" { comment (expression_statement "pvVar8 = operator_new__(sVar6 + 1);" (assignment_expression "pvVar8 = operator_new__(sVar6 + 1)" identifier = (call_expression "operator_new__(sVar6 + 1)" identifier (argument_list "(sVar6 + 1)" ( (binary_expression "sVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);" (assignment_expression "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1)" identifier = (call_expression "memcpy(pvVar8,__s,sVar6 + 1)" identifier (argument_list "(pvVar8,__s,sVar6 + 1)" ( identifier , identifier , (binary_expression "sVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar9 = *(long *)(this + 0x10);" (assignment_expression "lVar9 = *(long *)(this + 0x10)" identifier = (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(void **)(lVar9 + 0x10) = pvVar8;" (assignment_expression "*(void **)(lVar9 + 0x10) = pvVar8" (pointer_expression "*(void **)(lVar9 + 0x10)" * (cast_expression "(void **)(lVar9 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(size_t *)(lVar9 + 0x18) = sVar6;" (assignment_expression "*(size_t *)(lVar9 + 0x18) = sVar6" (pointer_expression "*(size_t *)(lVar9 + 0x18)" * (cast_expression "(size_t *)(lVar9 + 0x18)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) }))) (expression_statement "*(undefined8 *)(lVar9 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar9 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar9 + 0x30)" * (cast_expression "(undefined8 *)(lVar9 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38;" (assignment_expression "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38" (pointer_expression "*(undefined **)(lVar9 + 0x28)" * (cast_expression "(undefined **)(lVar9 + 0x28)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) )))) = (pointer_expression "&DAT_0058df38" & identifier)) ;) (expression_statement "*(wchar_t **)(lVar9 + 0x38) = L"false";" (assignment_expression "*(wchar_t **)(lVar9 + 0x38) = L"false"" (pointer_expression "*(wchar_t **)(lVar9 + 0x38)" * (cast_expression "(wchar_t **)(lVar9 + 0x38)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) = (string_literal "L"false"" L" string_content ")) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x40) = 5;" (assignment_expression "*(undefined8 *)(lVar9 + 0x40) = 5" (pointer_expression "*(undefined8 *)(lVar9 + 0x40)" * (cast_expression "(undefined8 *)(lVar9 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_004e0e70(long param_1,long param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}\n\n" (function_definition "void FUN_004e0e70(long param_1,long param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" primitive_type (function_declarator "FUN_004e0e70(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *pvVar8;" primitive_type (pointer_declarator "*pvVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x10) == 0)" ( (binary_expression "*(long *)(param_1 + 0x10) == 0" (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }" { (expression_statement "puVar7 = (undefined8 *)FUN_0049cb60(0x150);" (assignment_expression "puVar7 = (undefined8 *)FUN_0049cb60(0x150)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x150)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x150)" identifier (argument_list "(0x150)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(puVar7 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 1)" * (cast_expression "(undefined4 *)(puVar7 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = &PTR_FUN_00679300;" (assignment_expression "*puVar7 = &PTR_FUN_00679300" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_00679300" & identifier)) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" * (cast_expression "(undefined1 *)(puVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 0x29) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x29) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x29)" * (cast_expression "(undefined1 *)(puVar7 + 0x29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x29)" ( (binary_expression "puVar7 + 0x29" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 **)(param_1 + 0x10) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x10) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x10)" * (cast_expression "(undefined8 **)(param_1 + 0x10)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }" { (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;" (assignment_expression "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e" (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" * (cast_expression "(undefined8 *)(lVar9 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;" (assignment_expression "puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68" identifier = identifier) ;) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);" do (compound_statement "{\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    }" { (expression_statement "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];" (assignment_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5]" (pointer_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4)" * (cast_expression "(int *)(lVar9 + 0x50 + lVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x50 + lVar5 * 4)" ( (binary_expression "lVar9 + 0x50 + lVar5 * 4" (binary_expression "lVar9 + 0x50" identifier + number_literal) + (binary_expression "lVar5 * 4" identifier * number_literal)) )))) = (cast_expression "(int)(char)puVar1[lVar5]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar1[lVar5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar1[lVar5]" identifier [ identifier ])))) ;) (expression_statement "puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;" (assignment_expression "puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70" identifier = identifier) ;) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar5 != 0x24)" ( (binary_expression "lVar5 != 0x24" identifier != number_literal) )) ;) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);" do (compound_statement "{\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    }" { (expression_statement "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];" (assignment_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5]" (pointer_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4)" * (cast_expression "(int *)(lVar9 + 0xe0 + lVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0 + lVar5 * 4)" ( (binary_expression "lVar9 + 0xe0 + lVar5 * 4" (binary_expression "lVar9 + 0xe0" identifier + number_literal) + (binary_expression "lVar5 * 4" identifier * number_literal)) )))) = (cast_expression "(int)(char)puVar2[lVar5]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar2[lVar5]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar2[lVar5]" identifier [ identifier ])))) ;) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" identifier = (binary_expression "lVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar5 != 0x1a)" ( (binary_expression "lVar5 != 0x1a" identifier != number_literal) )) ;) }) (else_clause "else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" else (compound_statement "{\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" { (expression_statement "uVar3 = __nl_langinfo_l(0x10003,param_2);" (assignment_expression "uVar3 = __nl_langinfo_l(0x10003,param_2)" identifier = (call_expression "__nl_langinfo_l(0x10003,param_2)" identifier (argument_list "(0x10003,param_2)" ( number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;" (assignment_expression "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3" (pointer_expression "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48)" * (cast_expression "(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x10) + 0x48)" ( (binary_expression "*(long *)(param_1 + 0x10) + 0x48" (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar4 = __nl_langinfo_l(0x10004,param_2);" (assignment_expression "iVar4 = __nl_langinfo_l(0x10004,param_2)" identifier = (call_expression "__nl_langinfo_l(0x10004,param_2)" identifier (argument_list "(0x10004,param_2)" ( number_literal , identifier )))) ;) (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(lVar9 + 0x4c) = iVar4;" (assignment_expression "*(int *)(lVar9 + 0x4c) = iVar4" (pointer_expression "*(int *)(lVar9 + 0x4c)" * (cast_expression "(int *)(lVar9 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x4c)" ( (binary_expression "lVar9 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }" { (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" * (cast_expression "(undefined8 *)(lVar9 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(lVar9 + 0x4c) = 0x2c;" (assignment_expression "*(undefined4 *)(lVar9 + 0x4c) = 0x2c" (pointer_expression "*(undefined4 *)(lVar9 + 0x4c)" * (cast_expression "(undefined4 *)(lVar9 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x4c)" ( (binary_expression "lVar9 + 0x4c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" else (compound_statement "{\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" { (expression_statement "__s = (char *)__nl_langinfo_l(0x10002,param_2);" (assignment_expression "__s = (char *)__nl_langinfo_l(0x10002,param_2)" identifier = (cast_expression "(char *)__nl_langinfo_l(0x10002,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "__nl_langinfo_l(0x10002,param_2)" identifier (argument_list "(0x10002,param_2)" ( number_literal , identifier ))))) ;) (expression_statement "sVar6 = strlen(__s);" (assignment_expression "sVar6 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (if_statement "if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" if (parenthesized_expression "(sVar6 == 0)" ( (binary_expression "sVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }" { (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" * (cast_expression "(char **)(lVar9 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" * (cast_expression "(undefined1 *)(lVar9 + 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" else (compound_statement "{\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" { (expression_statement "pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);" (assignment_expression "pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1)" identifier = (cast_expression "(void *)thunk_FUN_0049cb60(sVar6 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_0049cb60(sVar6 + 1)" identifier (argument_list "(sVar6 + 1)" ( (binary_expression "sVar6 + 1" identifier + number_literal) ))))) ;) (expression_statement "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);" (assignment_expression "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1)" identifier = (call_expression "memcpy(pvVar8,__s,sVar6 + 1)" identifier (argument_list "(pvVar8,__s,sVar6 + 1)" ( identifier , identifier , (binary_expression "sVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(void **)(lVar9 + 0x10) = pvVar8;" (assignment_expression "*(void **)(lVar9 + 0x10) = pvVar8" (pointer_expression "*(void **)(lVar9 + 0x10)" * (cast_expression "(void **)(lVar9 + 0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(size_t *)(lVar9 + 0x18) = sVar6;" (assignment_expression "*(size_t *)(lVar9 + 0x18) = sVar6" (pointer_expression "*(size_t *)(lVar9 + 0x18)" * (cast_expression "(size_t *)(lVar9 + 0x18)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) }))) }))) (expression_statement "*(undefined8 *)(lVar9 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar9 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar9 + 0x30)" * (cast_expression "(undefined8 *)(lVar9 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38;" (assignment_expression "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38" (pointer_expression "*(undefined **)(lVar9 + 0x28)" * (cast_expression "(undefined **)(lVar9 + 0x28)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x28)" ( (binary_expression "lVar9 + 0x28" identifier + number_literal) )))) = (pointer_expression "&DAT_0058df38" & identifier)) ;) (expression_statement "*(wchar_t **)(lVar9 + 0x38) = L"false";" (assignment_expression "*(wchar_t **)(lVar9 + 0x38) = L"false"" (pointer_expression "*(wchar_t **)(lVar9 + 0x38)" * (cast_expression "(wchar_t **)(lVar9 + 0x38)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) )))) = (string_literal "L"false"" L" string_content ")) ;) (expression_statement "*(undefined8 *)(lVar9 + 0x40) = 5;" (assignment_expression "*(undefined8 *)(lVar9 + 0x40) = 5" (pointer_expression "*(undefined8 *)(lVar9 + 0x40)" * (cast_expression "(undefined8 *)(lVar9 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal L" string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_004e0e70(long param_1,long param_2)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_004e0e70(long param_1,long param_2)" (identifier "FUN_004e0e70") (parameter_list "(long param_1,long param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  long lVar5;\n  char *__s;\n  size_t sVar6;\n  undefined8 *puVar7;\n  void *pvVar8;\n  long lVar9;\n  \n  if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }\n  if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }\n  *(undefined8 *)(lVar9 + 0x30) = 4;\n  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;\n  *(wchar_t **)(lVar9 + 0x38) = L"false";\n  *(undefined8 *)(lVar9 + 0x40) = 5;\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "void *pvVar8;" (primitive_type "void") (pointer_declarator "*pvVar8" (* "*") (identifier "pvVar8")) (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (if_statement "if (*(long *)(param_1 + 0x10) == 0) {\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(param_1 + 0x10) == 0" (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar7 = (undefined8 *)FUN_0049cb60(0x150);\n    *(undefined4 *)(puVar7 + 1) = 0;\n    puVar7[2] = 0;\n    *puVar7 = &PTR_FUN_00679300;\n    puVar7[3] = 0;\n    *(undefined1 *)(puVar7 + 4) = 0;\n    puVar7[5] = 0;\n    puVar7[6] = 0;\n    puVar7[7] = 0;\n    puVar7[8] = 0;\n    puVar7[9] = 0;\n    *(undefined1 *)(puVar7 + 0x29) = 0;\n    *(undefined8 **)(param_1 + 0x10) = puVar7;\n  }" ({ "{") (expression_statement "puVar7 = (undefined8 *)FUN_0049cb60(0x150);" (assignment_expression "puVar7 = (undefined8 *)FUN_0049cb60(0x150)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_0049cb60(0x150)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb60(0x150)" (identifier "FUN_0049cb60") (argument_list "(0x150)" (( "(") (number_literal "0x150") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 1) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 1) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 1)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 1)" (( "(") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_00679300;" (assignment_expression "*puVar7 = &PTR_FUN_00679300" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_00679300" (& "&") (identifier "PTR_FUN_00679300"))) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 4)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[8] = 0;" (assignment_expression "puVar7[8] = 0" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 0x29) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 0x29) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 0x29)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 0x29)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x29)" (( "(") (binary_expression "puVar7 + 0x29" (identifier "puVar7") (+ "+") (number_literal "0x29")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x10) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x10) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }\n  else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(char **)(lVar9 + 0x10) = "";\n    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;\n    *(undefined8 *)(lVar9 + 0x18) = 0;\n    *(undefined1 *)(lVar9 + 0x20) = 0;\n    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);\n    lVar5 = 0;\n    do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);\n  }" ({ "{") (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" (* "*") (cast_expression "(char **)(lVar9 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;" (assignment_expression "*(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e" (pointer_expression "*(undefined8 *)(lVar9 + 0x48)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x48)" (( "(") (binary_expression "lVar9 + 0x48" (identifier "lVar9") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0x2c0000002e")) (; ";")) (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" (* "*") (cast_expression "(undefined1 *)(lVar9 + 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x20)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;" (assignment_expression "puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68" (identifier "puVar1") (= "=") (identifier "PTR_s___xX0123456789abcdef0123456789AB_0067cb68")) (; ";")) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" (identifier "lVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x24);" (do "do") (compound_statement "{\n      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];\n      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;\n      lVar5 = lVar5 + 1;\n    }" ({ "{") (expression_statement "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];" (assignment_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5]" (pointer_expression "*(int *)(lVar9 + 0x50 + lVar5 * 4)" (* "*") (cast_expression "(int *)(lVar9 + 0x50 + lVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x50 + lVar5 * 4)" (( "(") (binary_expression "lVar9 + 0x50 + lVar5 * 4" (binary_expression "lVar9 + 0x50" (identifier "lVar9") (+ "+") (number_literal "0x50")) (+ "+") (binary_expression "lVar5 * 4" (identifier "lVar5") (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(int)(char)puVar1[lVar5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)puVar1[lVar5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "puVar1[lVar5]" (identifier "puVar1") ([ "[") (identifier "lVar5") (] "]"))))) (; ";")) (expression_statement "puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;" (assignment_expression "puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70" (identifier "puVar2") (= "=") (identifier "PTR_s___xX0123456789abcdefABCDEF_0067cb70")) (; ";")) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + 1" (identifier "lVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar5 != 0x24)" (( "(") (binary_expression "lVar5 != 0x24" (identifier "lVar5") (!= "!=") (number_literal "0x24")) () ")")) (; ";")) (expression_statement "lVar5 = 0;" (assignment_expression "lVar5 = 0" (identifier "lVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    } while (lVar5 != 0x1a);" (do "do") (compound_statement "{\n      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];\n      lVar5 = lVar5 + 1;\n    }" ({ "{") (expression_statement "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];" (assignment_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5]" (pointer_expression "*(int *)(lVar9 + 0xe0 + lVar5 * 4)" (* "*") (cast_expression "(int *)(lVar9 + 0xe0 + lVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xe0 + lVar5 * 4)" (( "(") (binary_expression "lVar9 + 0xe0 + lVar5 * 4" (binary_expression "lVar9 + 0xe0" (identifier "lVar9") (+ "+") (number_literal "0xe0")) (+ "+") (binary_expression "lVar5 * 4" (identifier "lVar5") (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(int)(char)puVar2[lVar5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)puVar2[lVar5]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "puVar2[lVar5]" (identifier "puVar2") ([ "[") (identifier "lVar5") (] "]"))))) (; ";")) (expression_statement "lVar5 = lVar5 + 1;" (assignment_expression "lVar5 = lVar5 + 1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + 1" (identifier "lVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar5 != 0x1a)" (( "(") (binary_expression "lVar5 != 0x1a" (identifier "lVar5") (!= "!=") (number_literal "0x1a")) () ")")) (; ";")) (} "}")) (else_clause "else {\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" (else "else") (compound_statement "{\n    uVar3 = __nl_langinfo_l(0x10003,param_2);\n    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;\n    iVar4 = __nl_langinfo_l(0x10004,param_2);\n    lVar9 = *(long *)(param_1 + 0x10);\n    *(int *)(lVar9 + 0x4c) = iVar4;\n    if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }\n  }" ({ "{") (expression_statement "uVar3 = __nl_langinfo_l(0x10003,param_2);" (assignment_expression "uVar3 = __nl_langinfo_l(0x10003,param_2)" (identifier "uVar3") (= "=") (call_expression "__nl_langinfo_l(0x10003,param_2)" (identifier "__nl_langinfo_l") (argument_list "(0x10003,param_2)" (( "(") (number_literal "0x10003") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;" (assignment_expression "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3" (pointer_expression "*(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48)" (* "*") (cast_expression "(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x10) + 0x48)" (( "(") (binary_expression "*(long *)(param_1 + 0x10) + 0x48" (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar4 = __nl_langinfo_l(0x10004,param_2);" (assignment_expression "iVar4 = __nl_langinfo_l(0x10004,param_2)" (identifier "iVar4") (= "=") (call_expression "__nl_langinfo_l(0x10004,param_2)" (identifier "__nl_langinfo_l") (argument_list "(0x10004,param_2)" (( "(") (number_literal "0x10004") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(int *)(lVar9 + 0x4c) = iVar4;" (assignment_expression "*(int *)(lVar9 + 0x4c) = iVar4" (pointer_expression "*(int *)(lVar9 + 0x4c)" (* "*") (cast_expression "(int *)(lVar9 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x4c)" (( "(") (binary_expression "lVar9 + 0x4c" (identifier "lVar9") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (iVar4 == 0) {\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }\n    else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined8 *)(lVar9 + 0x18) = 0;\n      *(char **)(lVar9 + 0x10) = "";\n      *(undefined1 *)(lVar9 + 0x20) = 0;\n      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;\n    }" ({ "{") (expression_statement "*(undefined8 *)(lVar9 + 0x18) = 0;" (assignment_expression "*(undefined8 *)(lVar9 + 0x18) = 0" (pointer_expression "*(undefined8 *)(lVar9 + 0x18)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" (* "*") (cast_expression "(char **)(lVar9 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" (* "*") (cast_expression "(undefined1 *)(lVar9 + 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x20)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(lVar9 + 0x4c) = 0x2c;" (assignment_expression "*(undefined4 *)(lVar9 + 0x4c) = 0x2c" (pointer_expression "*(undefined4 *)(lVar9 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(lVar9 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x4c)" (( "(") (binary_expression "lVar9 + 0x4c" (identifier "lVar9") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "0x2c")) (; ";")) (} "}")) (else_clause "else {\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" (else "else") (compound_statement "{\n      __s = (char *)__nl_langinfo_l(0x10002,param_2);\n      sVar6 = strlen(__s);\n      if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }\n      *(size_t *)(lVar9 + 0x18) = sVar6;\n    }" ({ "{") (expression_statement "__s = (char *)__nl_langinfo_l(0x10002,param_2);" (assignment_expression "__s = (char *)__nl_langinfo_l(0x10002,param_2)" (identifier "__s") (= "=") (cast_expression "(char *)__nl_langinfo_l(0x10002,param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__nl_langinfo_l(0x10002,param_2)" (identifier "__nl_langinfo_l") (argument_list "(0x10002,param_2)" (( "(") (number_literal "0x10002") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "sVar6 = strlen(__s);" (assignment_expression "sVar6 = strlen(__s)" (identifier "sVar6") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (if_statement "if (sVar6 == 0) {\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }\n      else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" (if "if") (parenthesized_expression "(sVar6 == 0)" (( "(") (binary_expression "sVar6 == 0" (identifier "sVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(char **)(lVar9 + 0x10) = "";\n        *(undefined1 *)(lVar9 + 0x20) = 0;\n      }" ({ "{") (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(char **)(lVar9 + 0x10) = "";" (assignment_expression "*(char **)(lVar9 + 0x10) = """ (pointer_expression "*(char **)(lVar9 + 0x10)" (* "*") (cast_expression "(char **)(lVar9 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "*(undefined1 *)(lVar9 + 0x20) = 0;" (assignment_expression "*(undefined1 *)(lVar9 + 0x20) = 0" (pointer_expression "*(undefined1 *)(lVar9 + 0x20)" (* "*") (cast_expression "(undefined1 *)(lVar9 + 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x20)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" (else "else") (compound_statement "{\n                    \n        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);\n        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);\n        lVar9 = *(long *)(param_1 + 0x10);\n        *(void **)(lVar9 + 0x10) = pvVar8;\n      }" ({ "{") (expression_statement "pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);" (assignment_expression "pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1)" (identifier "pvVar8") (= "=") (cast_expression "(void *)thunk_FUN_0049cb60(sVar6 + 1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "thunk_FUN_0049cb60(sVar6 + 1)" (identifier "thunk_FUN_0049cb60") (argument_list "(sVar6 + 1)" (( "(") (binary_expression "sVar6 + 1" (identifier "sVar6") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);" (assignment_expression "pvVar8 = memcpy(pvVar8,__s,sVar6 + 1)" (identifier "pvVar8") (= "=") (call_expression "memcpy(pvVar8,__s,sVar6 + 1)" (identifier "memcpy") (argument_list "(pvVar8,__s,sVar6 + 1)" (( "(") (identifier "pvVar8") (, ",") (identifier "__s") (, ",") (binary_expression "sVar6 + 1" (identifier "sVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar9 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x10)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(void **)(lVar9 + 0x10) = pvVar8;" (assignment_expression "*(void **)(lVar9 + 0x10) = pvVar8" (pointer_expression "*(void **)(lVar9 + 0x10)" (* "*") (cast_expression "(void **)(lVar9 + 0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "pvVar8")) (; ";")) (} "}")))) (expression_statement "*(size_t *)(lVar9 + 0x18) = sVar6;" (assignment_expression "*(size_t *)(lVar9 + 0x18) = sVar6" (pointer_expression "*(size_t *)(lVar9 + 0x18)" (* "*") (cast_expression "(size_t *)(lVar9 + 0x18)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "sVar6")) (; ";")) (} "}")))) (} "}")))) (expression_statement "*(undefined8 *)(lVar9 + 0x30) = 4;" (assignment_expression "*(undefined8 *)(lVar9 + 0x30) = 4" (pointer_expression "*(undefined8 *)(lVar9 + 0x30)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38;" (assignment_expression "*(undefined **)(lVar9 + 0x28) = &DAT_0058df38" (pointer_expression "*(undefined **)(lVar9 + 0x28)" (* "*") (cast_expression "(undefined **)(lVar9 + 0x28)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x28)" (( "(") (binary_expression "lVar9 + 0x28" (identifier "lVar9") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "&DAT_0058df38" (& "&") (identifier "DAT_0058df38"))) (; ";")) (expression_statement "*(wchar_t **)(lVar9 + 0x38) = L"false";" (assignment_expression "*(wchar_t **)(lVar9 + 0x38) = L"false"" (pointer_expression "*(wchar_t **)(lVar9 + 0x38)" (* "*") (cast_expression "(wchar_t **)(lVar9 + 0x38)" (( "(") (type_descriptor "wchar_t **" (type_identifier "wchar_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x38)" (( "(") (binary_expression "lVar9 + 0x38" (identifier "lVar9") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (string_literal "L"false"" (L" "L"") (string_content "false") (" """))) (; ";")) (expression_statement "*(undefined8 *)(lVar9 + 0x40) = 5;" (assignment_expression "*(undefined8 *)(lVar9 + 0x40) = 5" (pointer_expression "*(undefined8 *)(lVar9 + 0x40)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x40)" (( "(") (binary_expression "lVar9 + 0x40" (identifier "lVar9") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "5")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* std::numpunct<wchar_t>::_M_initialize_numpunct(__locale_struct*) */

void __thiscall
std::type_1<type_7>::function_1(type_1<type_7> *var_1,type_2 *var_4)

{
  type_3 *puVar1;
  type_3 *puVar2;
  type_4 uVar3;
  int var_8;
  long var_6;
  char *__s;
  size_t var_10;
  type_5 *var_3;
  void *pvVar8;
  long var_5;
  
  if (*(long *)(var_1 + 0x10) == 0) {
    var_3 = (type_5 *)var_2(0x150);
    *(type_4 *)(var_3 + 1) = 0;
    var_3[2] = 0;
    *var_3 = &PTR____numpunct_cache_00679300;
    var_3[3] = 0;
    *(type_6 *)(var_3 + 4) = 0;
    var_3[5] = 0;
    var_3[6] = 0;
    var_3[7] = 0;
    var_3[8] = 0;
    var_3[9] = 0;
    *(type_6 *)(var_3 + 0x29) = 0;
    *(type_5 **)(var_1 + 0x10) = var_3;
  }
  if (var_4 == (type_2 *)0x0) {
    var_5 = *(long *)(var_1 + 0x10);
    *(char **)(var_5 + 0x10) = "";
    *(type_5 *)(var_5 + 0x48) = 0x2c0000002e;
    *(type_5 *)(var_5 + 0x18) = 0;
    *(type_6 *)(var_5 + 0x20) = 0;
    puVar1 = __num_base::_S_atoms_out;
    var_6 = 0;
    do {
      *(int *)(var_5 + 0x50 + var_6 * 4) = (int)(char)puVar1[var_6];
      puVar2 = __num_base::_S_atoms_in;
      var_6 = var_6 + 1;
    } while (var_6 != 0x24);
    var_6 = 0;
    do {
      *(int *)(var_5 + 0xe0 + var_6 * 4) = (int)(char)puVar2[var_6];
      var_6 = var_6 + 1;
    } while (var_6 != 0x1a);
  }
  else {
    uVar3 = var_7(0x10003,var_4);
    *(type_4 *)(*(long *)(var_1 + 0x10) + 0x48) = uVar3;
    var_8 = var_7(0x10004,var_4);
    var_5 = *(long *)(var_1 + 0x10);
    *(int *)(var_5 + 0x4c) = var_8;
    if (var_8 == 0) {
      *(type_5 *)(var_5 + 0x18) = 0;
      *(char **)(var_5 + 0x10) = "";
      *(type_6 *)(var_5 + 0x20) = 0;
      *(type_4 *)(var_5 + 0x4c) = 0x2c;
    }
    else {
      __s = (char *)var_7(0x10002,var_4);
      var_10 = var_9(__s);
      if (var_10 == 0) {
        var_5 = *(long *)(var_1 + 0x10);
        *(char **)(var_5 + 0x10) = "";
        *(type_6 *)(var_5 + 0x20) = 0;
      }
      else {
                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */
        pvVar8 = var_11(var_10 + 1);
        pvVar8 = var_12(pvVar8,__s,var_10 + 1);
        var_5 = *(long *)(var_1 + 0x10);
        *(void **)(var_5 + 0x10) = pvVar8;
      }
      *(size_t *)(var_5 + 0x18) = var_10;
    }
  }
  *(type_5 *)(var_5 + 0x30) = 4;
  *(type_3 **)(var_5 + 0x28) = &DAT_0058df38;
  *(type_7 **)(var_5 + 0x38) = L"false";
  *(type_5 *)(var_5 + 0x40) = 5;
  return;
}


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

void MASKED(long param_1,long param_2)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 uVar3;
  int iVar4;
  long lVar5;
  char *__s;
  size_t sVar6;
  undefined8 *puVar7;
  void *pvVar8;
  long lVar9;
  
  if (*(long *)(param_1 + 0x10) == 0) {
    puVar7 = (undefined8 *)FUN_0049cb60(0x150);
    *(undefined4 *)(puVar7 + 1) = 0;
    puVar7[2] = 0;
    *puVar7 = &PTR_FUN_00679300;
    puVar7[3] = 0;
    *(undefined1 *)(puVar7 + 4) = 0;
    puVar7[5] = 0;
    puVar7[6] = 0;
    puVar7[7] = 0;
    puVar7[8] = 0;
    puVar7[9] = 0;
    *(undefined1 *)(puVar7 + 0x29) = 0;
    *(undefined8 **)(param_1 + 0x10) = puVar7;
  }
  if (param_2 == 0) {
    lVar9 = *(long *)(param_1 + 0x10);
    *(char **)(lVar9 + 0x10) = "";
    *(undefined8 *)(lVar9 + 0x48) = 0x2c0000002e;
    *(undefined8 *)(lVar9 + 0x18) = 0;
    *(undefined1 *)(lVar9 + 0x20) = 0;
    puVar1 = PTR_s___xX0123456789abcdef0123456789AB_0067cb68;
    lVar5 = 0;
    do {
      *(int *)(lVar9 + 0x50 + lVar5 * 4) = (int)(char)puVar1[lVar5];
      puVar2 = PTR_s___xX0123456789abcdefABCDEF_0067cb70;
      lVar5 = lVar5 + 1;
    } while (lVar5 != 0x24);
    lVar5 = 0;
    do {
      *(int *)(lVar9 + 0xe0 + lVar5 * 4) = (int)(char)puVar2[lVar5];
      lVar5 = lVar5 + 1;
    } while (lVar5 != 0x1a);
  }
  else {
    uVar3 = __nl_langinfo_l(0x10003,param_2);
    *(undefined4 *)(*(long *)(param_1 + 0x10) + 0x48) = uVar3;
    iVar4 = __nl_langinfo_l(0x10004,param_2);
    lVar9 = *(long *)(param_1 + 0x10);
    *(int *)(lVar9 + 0x4c) = iVar4;
    if (iVar4 == 0) {
      *(undefined8 *)(lVar9 + 0x18) = 0;
      *(char **)(lVar9 + 0x10) = "";
      *(undefined1 *)(lVar9 + 0x20) = 0;
      *(undefined4 *)(lVar9 + 0x4c) = 0x2c;
    }
    else {
      __s = (char *)__nl_langinfo_l(0x10002,param_2);
      sVar6 = strlen(__s);
      if (sVar6 == 0) {
        lVar9 = *(long *)(param_1 + 0x10);
        *(char **)(lVar9 + 0x10) = "";
        *(undefined1 *)(lVar9 + 0x20) = 0;
      }
      else {
                    /* try { // try from 004e1042 to 004e1046 has its CatchHandler @ 004e1062 */
        pvVar8 = (void *)thunk_FUN_0049cb60(sVar6 + 1);
        pvVar8 = memcpy(pvVar8,__s,sVar6 + 1);
        lVar9 = *(long *)(param_1 + 0x10);
        *(void **)(lVar9 + 0x10) = pvVar8;
      }
      *(size_t *)(lVar9 + 0x18) = sVar6;
    }
  }
  *(undefined8 *)(lVar9 + 0x30) = 4;
  *(undefined **)(lVar9 + 0x28) = &DAT_0058df38;
  *(wchar_t **)(lVar9 + 0x38) = L"false";
  *(undefined8 *)(lVar9 + 0x40) = 5;
  return;
}

