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

47 lines
1.5 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140127a40 Catch@140127a40
* Pseudocode, not original source. */
undefined *
Catch_140127a40(undefined8 param_1,longlong param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
longlong lVar2;
undefined *puVar3;
int *piVar4;
longlong *plVar5;
undefined8 uVar6;
undefined8 uVar7;
longlong **pplVar8;
FUN_14006cb70(param_1,param_2,param_3,param_4);
*(undefined **)(param_2 + 0xf0) = PTR_DAT_1401ac010;
lVar2 = *(longlong *)(param_2 + 0x28);
pplVar8 = (longlong **)(param_2 + 0xf0);
uVar6 = 5;
uVar7 = 3;
plVar5 = *(longlong **)(lVar2 + 0x108);
FUN_1400b9fd0(plVar5,5,(undefined *)0x3,pplVar8);
puVar3 = *(undefined **)(param_2 + 0xf0);
if (((puVar3 != (undefined *)0x0) && (puVar3 != PTR_DAT_1401ac010)) &&
(puVar3 + -8 != (undefined *)0x0)) {
piVar4 = (int *)FUN_14006cb70(plVar5,uVar6,uVar7,pplVar8);
*(int **)(param_2 + 0x1f8) = piVar4;
FUN_14006b350(piVar4);
*(undefined1 *)(param_2 + 0x200) = 1;
piVar1 = (int *)(puVar3 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14006cc60(puVar3 + -8);
}
FUN_14006b3e0((longlong)piVar4);
}
if (*(longlong *)(*(longlong *)(lVar2 + 0x108) + 0x1580) != 0) {
plVar5 = *(longlong **)(*(longlong *)(lVar2 + 0x108) + 0x1580);
(**(code **)(*plVar5 + 0x20))(plVar5,*(undefined8 *)(param_2 + 0x1e0));
}
FUN_1400dfd60(lVar2,4);
return &DAT_1400e3c0c;
}