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

65 lines
1.9 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400cce20 FUN_1400cce20
* Pseudocode, not original source. */
void FUN_1400cce20(char *param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
{
int *piVar1;
int iVar2;
bool bVar3;
longlong lVar4;
longlong lVar5;
longlong lVar6;
int iVar7;
longlong lVar8;
undefined8 uVar9;
longlong lVar10;
if (*param_1 == '\0') {
piVar1 = (int *)(param_1 + 0x30);
do {
FUN_14006b350(piVar1);
if (*(int *)(param_1 + 0x80) < 100) {
FUN_14006b3e0((longlong)piVar1);
bVar3 = false;
uVar9 = 6;
lVar4 = Ordinal_23(2);
if (lVar4 != -1) {
bVar3 = true;
FUN_14006b350(piVar1);
iVar2 = *(int *)(param_1 + 0x80);
if (iVar2 < 0) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
iVar7 = *(int *)(param_1 + 0x80);
FUN_1400cc980((longlong)(param_1 + 0x68),iVar7 + 1,uVar9,param_4);
iVar7 = iVar7 - iVar2;
if ((0 < iVar7) && (iVar7 = iVar7 + -1, lVar8 = (longlong)iVar7, -1 < iVar7)) {
lVar10 = (lVar8 + iVar2) * 8 + 8;
do {
lVar5 = FUN_14007a110((longlong)(param_1 + 0x68));
lVar6 = FUN_14007a110((longlong)(param_1 + 0x68));
*(undefined8 *)(lVar6 + lVar10) = *(undefined8 *)(lVar5 + -8 + lVar10);
lVar10 = lVar10 + -8;
lVar8 = lVar8 + -1;
} while (-1 < lVar8);
}
lVar8 = FUN_14007a110((longlong)(param_1 + 0x68));
*(longlong *)(lVar8 + (longlong)iVar2 * 8) = lVar4;
}
}
else {
FUN_14006b3e0((longlong)piVar1);
bVar3 = false;
Sleep(10);
}
if (bVar3) {
FUN_14006b3e0((longlong)piVar1);
}
} while (*param_1 == '\0');
}
return;
}