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

57 lines
1.9 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400ccd10 FUN_1400ccd10
* Pseudocode, not original source. */
void FUN_1400ccd10(undefined1 *param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
{
int *piVar1;
int *piVar2;
undefined8 uVar3;
LPVOID pvVar4;
ulonglong uVar5;
int iVar6;
ulonglong uVar7;
*param_1 = 1;
FUN_140074120((undefined8 *)(param_1 + 8));
piVar1 = (int *)(param_1 + 0x30);
piVar2 = piVar1;
FUN_14006b350(piVar1);
uVar5 = 0;
uVar7 = uVar5;
if (0 < *(int *)(param_1 + 0x80)) {
do {
if (((longlong)uVar5 < 0) || (iVar6 = (int)uVar7, *(int *)(param_1 + 0x80) <= iVar6)) {
/* WARNING: Subroutine does not return */
FUN_14006be30(piVar2,param_2,param_3,param_4);
}
uVar3 = *(undefined8 *)(*(longlong *)(param_1 + 0x78) + uVar5 * 8);
FUN_140075120(uVar3);
if (*(int *)(param_1 + 0x80) <= iVar6) {
/* WARNING: Subroutine does not return */
FUN_14006be30(uVar3,param_2,param_3,param_4);
}
piVar2 = *(int **)(*(longlong *)(param_1 + 0x78) + uVar5 * 8);
Ordinal_3();
uVar7 = (ulonglong)(iVar6 + 1U);
uVar5 = uVar5 + 1;
} while ((int)(iVar6 + 1U) < *(int *)(param_1 + 0x80));
}
FUN_1400cc980((longlong)(param_1 + 0x68),0,param_3,param_4);
FUN_14006b3e0((longlong)piVar1);
*(undefined ***)(param_1 + 0x68) = Proud::CFastArray<unsigned___int64,0>::vftable;
pvVar4 = *(LPVOID *)(param_1 + 0x78);
if (pvVar4 != (LPVOID)0x0) {
if (*(longlong **)(param_1 + 0x70) == (longlong *)0x0) {
FUN_14006cc60(pvVar4);
}
else {
(**(code **)(**(longlong **)(param_1 + 0x70) + 0x18))();
}
}
FUN_14006b400(piVar1,pvVar4,param_3,param_4);
FUN_1400741a0((undefined8 *)(param_1 + 8));
return;
}