/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140001060 FUN_140001060 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined8 FUN_140001060(longlong param_1) { PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo; DWORD DVar1; BOOL BVar2; wchar_t *pwVar3; wchar_t *pwVar4; ulonglong uVar5; HANDLE pvVar6; undefined1 auStack_268 [32]; undefined8 local_248; undefined8 local_240; WCHAR local_228; undefined1 local_226 [526]; ulonglong local_18; local_18 = DAT_1401ac5a0 ^ (ulonglong)auStack_268; DVar1 = GetCurrentProcessId(); *(DWORD *)(param_1 + 0x450) = DVar1; local_228 = L'\0'; memset(local_226,0,0x206); DVar1 = GetModuleFileNameW((HMODULE)0x0,&local_228,0x104); if (0 < (int)DVar1) { pwVar3 = wcsrchr(&local_228,L'\\'); pwVar4 = wcsrchr(&local_228,L'.'); uVar5 = (longlong)pwVar4 + (-2 - (longlong)pwVar3) >> 1; if (0x104 < uVar5) { uVar5 = 0x104; } memcpy((void *)(param_1 + 0x3c),pwVar3 + 1,uVar5 * 2); FUN_140001260(param_1,param_1 + 0x3c); pvVar6 = GetStdHandle(0xfffffff5); *(HANDLE *)(param_1 + 8) = pvVar6; if (pvVar6 != (HANDLE)0xffffffffffffffff) { FUN_1400011d0(param_1); pvVar6 = *(HANDLE *)(param_1 + 8); if (pvVar6 != (HANDLE)0xffffffffffffffff) { lpConsoleScreenBufferInfo = (PCONSOLE_SCREEN_BUFFER_INFO)(param_1 + 0x10); local_248 = 0; local_240 = 0; (lpConsoleScreenBufferInfo->dwSize).X = 0; (lpConsoleScreenBufferInfo->dwSize).Y = 0; (lpConsoleScreenBufferInfo->dwCursorPosition).X = 0; (lpConsoleScreenBufferInfo->dwCursorPosition).Y = 0; *(undefined8 *)(param_1 + 0x18) = 0; *(undefined4 *)(param_1 + 0x20) = 0; *(undefined2 *)(param_1 + 0x24) = 0; BVar2 = GetConsoleScreenBufferInfo(pvVar6,lpConsoleScreenBufferInfo); if (BVar2 != 0) { *(undefined2 *)(param_1 + 0x454) = *(undefined2 *)(param_1 + 0x18); } } return 1; } } return 0; }