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

55 lines
1.9 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400d3260 FUN_1400d3260
* Pseudocode, not original source. */
void FUN_1400d3260(longlong param_1,undefined4 *param_2,SIZE_T param_3,undefined8 param_4)
{
undefined8 uVar1;
undefined8 *puVar2;
undefined4 local_128 [2];
longlong local_120;
longlong local_118;
int local_10c;
undefined4 local_100 [58];
if ((*(longlong *)(param_1 + 0x238) != 0) &&
(*(longlong *)(*(longlong *)(param_1 + 0x238) + 0x3e0) != 0)) {
FUN_1400bca00(local_128);
FUN_140094eb0(local_100,param_2,param_3,param_4);
uVar1 = *(undefined8 *)(param_1 + 0x278);
if (*(longlong **)(param_1 + 0x268) == (longlong *)0x0) {
puVar2 = (undefined8 *)FUN_14006cbf0(0x128);
}
else {
param_2 = (undefined4 *)0x128;
puVar2 = (undefined8 *)(**(code **)(**(longlong **)(param_1 + 0x268) + 8))();
}
if (puVar2 != (undefined8 *)0x0) {
*(undefined4 *)(puVar2 + 2) = 0;
FUN_1400bca30((undefined4 *)(puVar2 + 3),local_128);
param_2 = local_100;
FUN_140094eb0((undefined4 *)(puVar2 + 8),param_2,param_3,param_4);
}
puVar2[1] = uVar1;
*puVar2 = 0;
*(longlong *)(param_1 + 0x280) = *(longlong *)(param_1 + 0x280) + 1;
if (*(undefined8 **)(param_1 + 0x278) == (undefined8 *)0x0) {
*(undefined8 **)(param_1 + 0x270) = puVar2;
}
else {
**(undefined8 **)(param_1 + 0x278) = puVar2;
}
*(undefined8 **)(param_1 + 0x278) = puVar2;
FUN_1400933c0((longlong)local_100,param_2,param_3,param_4);
FUN_1400d1800(&local_120);
if ((local_118 != 0) && (local_10c < 0)) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
FUN_1400dec90(*(longlong *)(*(longlong *)(param_1 + 0x238) + 0x3e0) + 0x160,param_1 + 8,param_3,
param_4);
}
return;
}