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

52 lines
1.7 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400b8ee0 FUN_1400b8ee0
* Pseudocode, not original source. */
ulonglong FUN_1400b8ee0(void *param_1,uint param_2,longlong param_3)
{
int iVar1;
ulonglong uVar2;
ulonglong uVar3;
undefined1 local_res8;
undefined1 local_res9;
if ((param_1 != (void *)0x0) && (param_3 != 0)) {
EnterCriticalSection((LPCRITICAL_SECTION)(param_3 + 0x1030));
if (0x20 < param_2) {
LeaveCriticalSection((LPCRITICAL_SECTION)(param_3 + 0x1030));
return 0x10;
}
local_res8 = 0;
local_res9 = (undefined1)param_2;
uVar2 = FUN_1400da520((longlong *)((ulonglong)*(uint *)(param_3 + 0x1018) * 0x70 + param_3),
&local_res8,2);
uVar3 = uVar2 & 0xffffffff;
if ((int)uVar2 == 0) {
uVar2 = FUN_1400da520((longlong *)((ulonglong)*(uint *)(param_3 + 0x1018) * 0x70 + param_3),
param_1,param_2);
uVar3 = uVar2 & 0xffffffff;
if ((int)uVar2 == 0) {
if (*(int *)(param_3 + 0x1018) == 0) {
*(int *)(param_3 + 0x101c) = *(int *)(param_3 + 0x101c) + param_2;
}
iVar1 = *(int *)(param_3 + 0x1018) + 1;
if (iVar1 == 0x20) {
iVar1 = 0;
}
*(int *)(param_3 + 0x1018) = iVar1;
LeaveCriticalSection((LPCRITICAL_SECTION)(param_3 + 0x1030));
uVar3 = 0;
}
else {
LeaveCriticalSection((LPCRITICAL_SECTION)(param_3 + 0x1030));
}
}
else {
LeaveCriticalSection((LPCRITICAL_SECTION)(param_3 + 0x1030));
}
return uVar3;
}
return 0x10;
}