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

83 lines
2.2 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14000efc0 FUN_14000efc0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Type propagation algorithm not settling */
int FUN_14000efc0(longlong *param_1,char *param_2)
{
char cVar1;
int iVar2;
char *pcVar3;
longlong *plVar4;
ulonglong uVar5;
char *pcVar6;
longlong *_Str;
undefined1 auStack_68 [32];
undefined8 local_48;
longlong *local_40;
ulonglong local_38 [2];
longlong local_28;
ulonglong local_20;
ulonglong local_10;
local_48 = 0xfffffffffffffffe;
local_10 = DAT_14016f5a0 ^ (ulonglong)auStack_68;
local_20 = 0xf;
local_28 = 0;
local_38[0]._0_1_ = '\0';
uVar5 = 0xffffffffffffffff;
pcVar6 = param_2;
do {
if (uVar5 == 0) break;
uVar5 = uVar5 - 1;
cVar1 = *pcVar6;
pcVar6 = pcVar6 + 1;
} while (cVar1 != '\0');
local_40 = param_1;
FUN_14000c9e0(local_38,param_2,~uVar5 - 1);
if (param_1[4] == 0) {
plVar4 = (longlong *)0x0;
}
else {
pcVar6 = (char *)local_38;
if (0xf < local_20) {
pcVar6 = (char *)CONCAT71(local_38[0]._1_7_,(char)local_38[0]);
}
pcVar3 = (char *)local_38;
if (0xf < local_20) {
pcVar3 = (char *)CONCAT71(local_38[0]._1_7_,(char)local_38[0]);
}
uVar5 = 0;
for (; pcVar3 != pcVar6 + local_28; pcVar3 = pcVar3 + 1) {
uVar5 = uVar5 ^ (uVar5 >> 2) + uVar5 * 0x40 + 0x9e3779b9 + (longlong)*pcVar3;
}
plVar4 = FUN_140010640((longlong *)(*param_1 + (uVar5 % (ulonglong)param_1[1]) * 8),local_38);
}
if (0xf < local_20) {
operator_delete((void *)CONCAT71(local_38[0]._1_7_,(char)local_38[0]));
}
local_20 = 0xf;
local_28 = 0;
local_38[0]._0_1_ = '\0';
if (plVar4 == (longlong *)0x0) {
if (*param_1 != 0) {
FUN_140010570(param_1);
}
iVar2 = 0;
}
else {
_Str = plVar4 + 6;
if (0xf < (ulonglong)plVar4[9]) {
_Str = (longlong *)*_Str;
}
iVar2 = atoi((char *)_Str);
if (*param_1 != 0) {
FUN_140010570(param_1);
}
}
return iVar2;
}