server-re/decomp/MessageServer_Release_x64/full/functions/0x14005ff50.c

72 lines
1.9 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14005ff50 FUN_14005ff50
* Pseudocode, not original source. */
void FUN_14005ff50(longlong param_1,undefined4 *param_2,byte param_3)
{
longlong *plVar1;
undefined8 *puVar2;
ulonglong *puVar3;
ulonglong *puVar4;
ulonglong *local_b0;
ulonglong *local_a8;
undefined8 local_a0;
ulonglong *local_90;
ulonglong *local_88;
undefined8 local_80;
byte local_70 [8];
ulonglong *local_68;
ulonglong *local_60;
undefined8 local_58;
undefined8 local_48;
longlong local_40 [3];
longlong local_28 [4];
local_48 = 0xfffffffffffffffe;
plVar1 = (longlong *)(param_1 + 0x1a8);
if (*(longlong *)(param_1 + 0x1c8) != 0) {
for (puVar2 = *(undefined8 **)
(*plVar1 + ((ulonglong)param_3 % *(ulonglong *)(param_1 + 0x1b0)) * 8);
puVar2 != (undefined8 *)0x0; puVar2 = (undefined8 *)*puVar2) {
if (param_3 == *(byte *)(puVar2 + 1)) {
if (puVar2 != (undefined8 *)0x0) {
FUN_140060ce0(puVar2 + 2,param_2);
return;
}
break;
}
}
}
local_90 = (ulonglong *)0x0;
local_88 = (ulonglong *)0x0;
local_80 = 0;
FUN_140060ce0((ulonglong *)&local_90,param_2);
FUN_140061c40(&local_b0,(longlong *)&local_90);
puVar4 = local_a8;
puVar3 = local_b0;
local_68 = local_b0;
local_60 = local_a8;
local_58 = local_a0;
local_b0 = (ulonglong *)0x0;
local_a8 = (ulonglong *)0x0;
local_a0 = 0;
local_70[0] = param_3;
if (*(longlong *)(param_1 + 0x1c8) == 0) {
FUN_140061960(plVar1,local_40,local_70);
}
else {
FUN_140061840(plVar1,local_28,local_70,local_70);
}
if (puVar3 != (ulonglong *)0x0) {
FUN_140061ab0(puVar3,puVar4);
operator_delete(puVar3);
}
puVar3 = local_90;
if (local_90 != (ulonglong *)0x0) {
FUN_140061ab0(local_90,local_88);
operator_delete(puVar3);
}
return;
}