server-re/decomp/MessageServer_Release_x64/full/functions/0x140118aa0.c

49 lines
1.3 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140118aa0 FUN_140118aa0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
ulonglong * FUN_140118aa0(ulonglong *param_1,LPCWSTR param_2)
{
char cVar1;
WCHAR WVar2;
longlong lVar3;
ulonglong uVar4;
LPCWSTR pWVar5;
char *pcVar6;
undefined1 auStackY_478 [32];
CHAR local_428 [1024];
ulonglong local_28;
local_28 = DAT_1401ac5a0 ^ (ulonglong)auStackY_478;
local_428[0] = '\0';
memset(local_428 + 1,0,0x3ff);
if (7 < *(ulonglong *)(param_2 + 0xc)) {
param_2 = *(LPCWSTR *)param_2;
}
lVar3 = -1;
pWVar5 = param_2;
do {
if (lVar3 == 0) break;
lVar3 = lVar3 + -1;
WVar2 = *pWVar5;
pWVar5 = pWVar5 + 1;
} while (WVar2 != L'\0');
WideCharToMultiByte(0,0,param_2,~(uint)lVar3,local_428,0x400,(LPCSTR)0x0,(LPBOOL)0x0);
uVar4 = 0xffffffffffffffff;
param_1[3] = 0xf;
param_1[2] = 0;
*(undefined1 *)param_1 = 0;
pcVar6 = local_428;
do {
if (uVar4 == 0) break;
uVar4 = uVar4 - 1;
cVar1 = *pcVar6;
pcVar6 = pcVar6 + 1;
} while (cVar1 != '\0');
FUN_140003e60(param_1,local_428,~uVar4 - 1);
return param_1;
}