server-re/decomp/DBCServer_Release_x64/full/functions/0x1401af100.c

67 lines
1.9 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401af100 FUN_1401af100
* Pseudocode, not original source. */
void FUN_1401af100(char *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
char *pcVar1;
int iVar2;
bool bVar3;
longlong lVar4;
longlong lVar5;
longlong lVar6;
int iVar7;
longlong lVar8;
longlong lVar9;
undefined8 uVar10;
char *pcVar11;
uVar10 = 0xfffffffffffffffe;
if (*param_1 == '\0') {
pcVar1 = param_1 + 0x30;
do {
pcVar11 = pcVar1;
FUN_14016db50(pcVar1);
if (*(int *)(param_1 + 0x80) < 100) {
FUN_14016dbe0(pcVar1);
bVar3 = false;
lVar4 = Ordinal_23(2,1,6,param_4,uVar10,pcVar11);
if (lVar4 != -1) {
bVar3 = true;
FUN_14016db50(pcVar1);
iVar2 = *(int *)(param_1 + 0x80);
if (iVar2 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
iVar7 = *(int *)(param_1 + 0x80);
FUN_14016add0(param_1 + 0x68,iVar7 + 1);
iVar7 = iVar7 - iVar2;
if ((0 < iVar7) && (iVar7 = iVar7 + -1, lVar8 = (longlong)iVar7, -1 < iVar7)) {
lVar9 = (lVar8 + iVar2) * 8 + 8;
do {
lVar5 = FUN_14016ab80(param_1 + 0x68);
lVar6 = FUN_14016ab80(param_1 + 0x68);
*(undefined8 *)(lVar6 + lVar9) = *(undefined8 *)(lVar5 + -8 + lVar9);
lVar9 = lVar9 + -8;
lVar8 = lVar8 + -1;
} while (-1 < lVar8);
}
lVar8 = FUN_14016ab80(param_1 + 0x68);
*(longlong *)(lVar8 + (longlong)iVar2 * 8) = lVar4;
}
}
else {
FUN_14016dbe0(pcVar1);
bVar3 = false;
Sleep(10);
}
if (bVar3) {
FUN_14016dbe0(pcVar1);
}
} while (*param_1 == '\0');
}
return;
}