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

45 lines
1.3 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400e5830 FUN_1400e5830
* Pseudocode, not original source. */
void FUN_1400e5830(longlong param_1,longlong *param_2)
{
char cVar1;
undefined8 *puVar2;
longlong *plVar3;
longlong *plVar4;
plVar4 = (longlong *)0x0;
plVar3 = plVar4;
if ((undefined8 *)*param_2 != (undefined8 *)0x0) {
plVar3 = *(longlong **)*param_2;
}
cVar1 = (**(code **)(*plVar3 + 0x10))();
if (cVar1 == '\0') {
if ((undefined8 *)*param_2 != (undefined8 *)0x0) {
plVar4 = *(longlong **)*param_2;
}
(**(code **)(*plVar4 + 8))(plVar4);
}
puVar2 = FUN_1400ae480((longlong *)(param_1 + 0x228),param_2,*(undefined8 *)(param_1 + 0x238),0);
if (*(undefined8 **)(param_1 + 0x238) == (undefined8 *)0x0) {
*(undefined8 **)(param_1 + 0x230) = puVar2;
}
else {
**(undefined8 **)(param_1 + 0x238) = puVar2;
}
*(undefined8 **)(param_1 + 0x238) = puVar2;
if ((*param_2 != 0) &&
(*(longlong *)(*param_2 + 8) = *(longlong *)(*param_2 + 8) + -1,
*(longlong *)(*param_2 + 8) == 0)) {
plVar4 = (longlong *)*param_2;
puVar2 = (undefined8 *)*plVar4;
if (puVar2 != (undefined8 *)0x0) {
(**(code **)*puVar2)(puVar2,1);
}
FUN_14006cc60(plVar4);
}
return;
}