/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400034a0 FUN_1400034a0 * Pseudocode, not original source. */ void FUN_1400034a0(LPCWSTR param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { longlong lVar1; char *pcVar2; undefined8 *puVar3; ulonglong uVar4; undefined8 *puVar5; wchar_t *pwVar6; undefined8 uVar7; if ((DAT_14016319c & 1) == 0) { DAT_14016319c = DAT_14016319c | 1; FUN_1400de360(); atexit((_func_5014 *)&LAB_1400f13a0); if ((DAT_14016319c & 1) == 0) { DAT_14016319c = DAT_14016319c | 1; FUN_1400de360(); atexit((_func_5014 *)&LAB_1400f13a0); } } if ((DAT_140162f60 != 200) && (DAT_140162f60 != 100)) { if ((DAT_14016319c & 1) == 0) { DAT_14016319c = DAT_14016319c | 1; FUN_1400de360(); atexit((_func_5014 *)&LAB_1400f13a0); } if (DAT_140162f60 != 1000) goto LAB_140003556; } setlocale(0,"kor"); LAB_140003556: pcVar2 = setlocale(0,(char *)0x0); printf("Locale is: %s\n"); puVar3 = operator_new(0x60); if (puVar3 == (undefined8 *)0x0) { puVar3 = (undefined8 *)0x0; } else { *puVar3 = MagiAgentProcess::vftable; puVar3[1] = 0; puVar3[2] = 0; puVar3[3] = 0; uVar4 = FUN_14002e790(); pcVar2 = (char *)(uVar4 & 0xffffffff); param_3 = CONCAT71((int7)((ulonglong)param_3 >> 8),1); FUN_14002e600((undefined4 *)(puVar3 + 5),(ulonglong)pcVar2,param_3,param_4); } DAT_140162d78 = puVar3; puVar5 = operator_new(8); puVar3 = (undefined8 *)0x0; if (puVar5 != (undefined8 *)0x0) { puVar3 = FUN_14002e1c0(puVar5,pcVar2,param_3,param_4); } lVar1 = DAT_140162d68; DAT_140162d70 = puVar3; *(undefined1 *)(DAT_140162d68 + 0x1e8) = 0xd; FUN_1400227e0(lVar1,param_1,param_3,param_4); _wmkdir(L"Log"); puVar5 = operator_new(0xe8); puVar3 = (undefined8 *)0x0; if (puVar5 != (undefined8 *)0x0) { puVar3 = FUN_1400de890(puVar5); } DAT_1401626e8 = puVar3; FUN_1400deb60((longlong)puVar3,param_1,param_3,param_4); puVar3 = DAT_1401626e8; EnterCriticalSection(DAT_140162d80); uVar7 = 0x12; pwVar6 = L"Log\\Protocol_Agent"; FUN_1400016e0(puVar3 + 3,L"Log\\Protocol_Agent",0x12); LeaveCriticalSection(DAT_140162d80); puVar3 = operator_new(0x98); if (puVar3 == (undefined8 *)0x0) { DAT_140162d50 = (undefined8 *)0x0; } else { DAT_140162d50 = FUN_1400dc730(puVar3,pwVar6,uVar7,param_4); } return; }