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

40 lines
1.2 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400ca4c0 FUN_1400ca4c0
* Pseudocode, not original source. */
void FUN_1400ca4c0(undefined8 *param_1,undefined8 param_2,longlong *param_3,undefined8 param_4)
{
undefined8 *puVar1;
longlong *plVar2;
LPVOID pvVar3;
*param_1 = Proud::CDiscoveringNatDevice::vftable;
FUN_140006e80(param_1 + 0x4a7);
param_1[0x4a2] = Proud::CFastArray<unsigned_char,0>::vftable;
pvVar3 = (LPVOID)param_1[0x4a4];
if (pvVar3 != (LPVOID)0x0) {
if ((longlong *)param_1[0x4a3] == (longlong *)0x0) {
FUN_14003e8b0(pvVar3);
}
else {
(**(code **)(*(longlong *)param_1[0x4a3] + 0x18))();
}
}
FUN_140006e80(param_1 + 0x491);
if ((param_1[0x490] != 0) &&
(*(longlong *)(param_1[0x490] + 8) = *(longlong *)(param_1[0x490] + 8) + -1,
*(longlong *)(param_1[0x490] + 8) == 0)) {
puVar1 = (undefined8 *)param_1[0x490];
plVar2 = (longlong *)*puVar1;
if (plVar2 != (longlong *)0x0) {
FUN_140043e60(plVar2,pvVar3,param_3,param_4);
FUN_14003e8b0(plVar2);
}
FUN_14003e8b0(puVar1);
}
FUN_140006e80(param_1 + 1);
*param_1 = Proud::IFastSocketDelegate::vftable;
return;
}