server-re/decomp/AgentManager_Release_x64/full/functions/0x1400c8990.c
2026-10-15 09:58:24 -04:00

76 lines
2.1 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400c8990 FUN_1400c8990
* Pseudocode, not original source. */
undefined8 FUN_1400c8990(wchar_t *param_1,wchar_t *param_2)
{
wchar_t wVar1;
int iVar2;
errno_t eVar3;
undefined8 uVar4;
longlong lVar5;
undefined **ppuVar6;
uint uVar7;
wchar_t *pwVar8;
if (param_2 == (wchar_t *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80004005);
}
ppuVar6 = &PTR_DAT_140107160;
uVar7 = 0;
do {
if ((wchar_t *)*ppuVar6 != (wchar_t *)0x0) {
iVar2 = _wcsicmp(param_2,(wchar_t *)*ppuVar6);
if (iVar2 == 0) {
if (uVar7 != 0xffffffff) {
*(uint *)(param_1 + 0x1228) = uVar7;
*(undefined4 *)(param_1 + 0x122a) =
*(undefined4 *)(&DAT_140107168 + (longlong)(int)uVar7 * 0x10);
param_1[0x1226] = *(wchar_t *)(&DAT_14010716c + (longlong)(int)uVar7 * 0x10);
goto LAB_1400c8a24;
}
break;
}
}
uVar7 = uVar7 + 1;
ppuVar6 = ppuVar6 + 2;
} while (uVar7 < 8);
lVar5 = -1;
uVar4 = 0;
param_1[0x1228] = L'\xffff';
param_1[0x1229] = L'\xffff';
pwVar8 = param_2;
do {
if (lVar5 == 0) break;
lVar5 = lVar5 + -1;
wVar1 = *pwVar8;
pwVar8 = pwVar8 + 1;
} while (wVar1 != L'\0');
uVar7 = ~(uint)lVar5 - 1;
*(uint *)(param_1 + 0x122a) = uVar7;
if (uVar7 < 0x21) {
param_1[0x1226] = L'\0';
LAB_1400c8a24:
eVar3 = wcsncpy_s(param_1,0x21,param_2,(ulonglong)*(uint *)(param_1 + 0x122a));
if (eVar3 != 0) {
if (eVar3 == 0xc) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x8007000e);
}
if ((eVar3 == 0x16) || (eVar3 == 0x22)) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80070057);
}
if (eVar3 != 0x50) {
/* WARNING: Subroutine does not return */
FUN_1400050d0(0x80004005);
}
}
param_1[*(uint *)(param_1 + 0x122a)] = L'\0';
uVar4 = 1;
}
return uVar4;
}