/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400047a0 FUN_1400047a0 * Pseudocode, not original source. */ void FUN_1400047a0(LPCWSTR param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { longlong lVar1; char *pcVar2; undefined8 *puVar3; undefined8 *puVar4; undefined8 *puVar5; wchar_t *pwVar6; undefined8 uVar7; if ((DAT_1401bd4f4 & 1) == 0) { DAT_1401bd4f4 = DAT_1401bd4f4 | 1; FUN_14011b100(); atexit((_func_5014 *)&LAB_14012f3d0); if ((DAT_1401bd4f4 & 1) == 0) { DAT_1401bd4f4 = DAT_1401bd4f4 | 1; FUN_14011b100(); atexit((_func_5014 *)&LAB_14012f3d0); } } if ((DAT_1401bd4a0 != 200) && (DAT_1401bd4a0 != 100)) { if ((DAT_1401bd4f4 & 1) == 0) { DAT_1401bd4f4 = DAT_1401bd4f4 | 1; FUN_14011b100(); atexit((_func_5014 *)&LAB_14012f3d0); } if (DAT_1401bd4a0 != 1000) goto LAB_14000485b; } setlocale(0,"kor"); LAB_14000485b: pcVar2 = setlocale(0,(char *)0x0); printf("Locale is: %s\n"); FUN_14006fc10('\0'); puVar3 = operator_new(0xe8); puVar5 = (undefined8 *)0x0; puVar4 = puVar5; if (puVar3 != (undefined8 *)0x0) { puVar4 = FUN_14011b5d0(puVar3); } DAT_1401ba9e8 = puVar4; FUN_14011b8a0((longlong)puVar4,pcVar2,param_3,param_4); puVar4 = DAT_1401ba9e8; EnterCriticalSection(DAT_1401bd028); uVar7 = 0xc; pwVar6 = L"Protocol_Msg"; FUN_140001830(puVar4 + 3,L"Protocol_Msg",0xc); LeaveCriticalSection(DAT_1401bd028); puVar3 = operator_new(0x98); puVar4 = puVar5; if (puVar3 != (undefined8 *)0x0) { puVar4 = FUN_1401194b0(puVar3,pwVar6,uVar7,param_4); } DAT_1401bd030 = puVar4; puVar4 = operator_new(8); if (puVar4 != (undefined8 *)0x0) { puVar5 = FUN_140063440(puVar4,pwVar6,uVar7,param_4); } lVar1 = DAT_1401bd038; DAT_1401bd040 = puVar5; *(undefined1 *)(DAT_1401bd038 + 0x1e8) = 6; FUN_14005c7b0(lVar1,param_1,uVar7,param_4); return; }