server-re/decomp/Agent_Release_x64/full/functions/0x1400ae6c0.c
2026-10-14 16:45:19 -04:00

40 lines
1.2 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400ae6c0 FUN_1400ae6c0
* Pseudocode, not original source. */
void FUN_1400ae6c0(undefined8 *param_1,undefined8 param_2,longlong *param_3,undefined8 param_4)
{
undefined8 *puVar1;
longlong *plVar2;
LPVOID pvVar3;
*param_1 = Proud::CDiscoveringNatDevice::vftable;
FUN_14001c020(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_1400302f0(pvVar3);
}
else {
(**(code **)(*(longlong *)param_1[0x4a3] + 0x18))();
}
}
FUN_14001c020(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_1400358a0(plVar2,pvVar3,param_3,param_4);
FUN_1400302f0(plVar2);
}
FUN_1400302f0(puVar1);
}
FUN_14001c020(param_1 + 1);
*param_1 = Proud::IFastSocketDelegate::vftable;
return;
}