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

50 lines
1.5 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14007e950 FUN_14007e950
* Pseudocode, not original source. */
ulonglong FUN_14007e950(longlong param_1,longlong param_2,uint *param_3,longlong param_4)
{
uint uVar1;
undefined8 uVar2;
ulonglong uVar3;
uint *puVar4;
longlong lVar5;
uint local_res18 [4];
undefined **local_38;
undefined4 local_30;
undefined2 local_2c;
undefined **local_28;
undefined4 local_20;
undefined2 local_1c;
uVar1 = *param_3;
puVar4 = param_3;
lVar5 = param_4;
uVar2 = FUN_140075810(param_3,local_res18,param_3,param_4);
if ((char)uVar2 == '\0') {
LAB_14007e98c:
uVar3 = FUN_140074bb0((int *)param_3,
(ulonglong)(uint)((int)(((int)uVar1 >> 0x1f & 7U) + uVar1) >> 3),puVar4,
lVar5);
uVar3 = uVar3 & 0xffffffffffffff00;
}
else {
if (local_res18[0] == 0xc) {
local_28 = Proud::AddrPort::vftable;
local_20 = *(undefined4 *)(param_2 + 8);
local_1c = *(undefined2 *)(param_2 + 0xc);
uVar2 = FUN_14007c350(param_1,param_3,(longlong)&local_28,param_4);
}
else {
if (local_res18[0] != 0x10) goto LAB_14007e98c;
local_38 = Proud::AddrPort::vftable;
local_30 = *(undefined4 *)(param_2 + 8);
local_2c = *(undefined2 *)(param_2 + 0xc);
uVar2 = FUN_14007c6f0(param_1,param_3,(longlong)&local_38,param_4);
}
uVar3 = CONCAT71((int7)((ulonglong)uVar2 >> 8),1);
}
return uVar3;
}