server-re/decomp/DBCServer_Release_x64/full/functions/0x1400a6fe0.c

64 lines
2.1 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1400a6fe0 FUN_1400a6fe0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
undefined8 FUN_1400a6fe0(longlong param_1)
{
PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo;
DWORD DVar1;
BOOL BVar2;
uchar *puVar3;
uchar *puVar4;
HANDLE pvVar5;
undefined1 auStack_168 [32];
undefined8 local_148;
undefined8 local_140;
uchar local_128;
undefined1 local_127 [271];
ulonglong local_18;
local_18 = DAT_1403463c0 ^ (ulonglong)auStack_168;
DVar1 = GetCurrentProcessId();
local_128 = '\0';
*(DWORD *)(param_1 + 0x248) = DVar1;
memset(local_127,0,0x103);
DVar1 = GetModuleFileNameA((HMODULE)0x0,(LPSTR)&local_128,0x104);
if (0 < (int)DVar1) {
puVar3 = _mbsrchr(&local_128,0x5c);
puVar4 = _mbsrchr(&local_128,0x2e);
puVar4 = puVar4 + (-1 - (longlong)puVar3);
if ((uchar *)0x104 < puVar4) {
puVar4 = (uchar *)0x104;
}
memcpy((void *)(param_1 + 0x3c),puVar3 + 1,(size_t)puVar4);
FUN_1400a71d0(param_1,param_1 + 0x3c);
pvVar5 = GetStdHandle(0xfffffff5);
*(HANDLE *)(param_1 + 8) = pvVar5;
if (pvVar5 != (HANDLE)0xffffffffffffffff) {
FUN_1400a7140(param_1);
pvVar5 = *(HANDLE *)(param_1 + 8);
if (pvVar5 != (HANDLE)0xffffffffffffffff) {
lpConsoleScreenBufferInfo = (PCONSOLE_SCREEN_BUFFER_INFO)(param_1 + 0x10);
local_148 = 0;
local_140 = 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(pvVar5,lpConsoleScreenBufferInfo);
if (BVar2 != 0) {
*(undefined2 *)(param_1 + 0x24c) = *(undefined2 *)(param_1 + 0x18);
}
}
return 1;
}
}
return 0;
}