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

74 lines
1.5 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401d1ec0 FUN_1401d1ec0
* Pseudocode, not original source. */
undefined8 * FUN_1401d1ec0(undefined8 *param_1)
{
undefined4 uVar1;
int iVar2;
longlong lVar3;
longlong lVar4;
bool bVar5;
longlong local_res10;
LOCK();
bVar5 = DAT_14034f200 == 0;
if (bVar5) {
DAT_14034f200 = 1;
}
UNLOCK();
if (bVar5) {
lVar3 = FUN_14016d940(0x2c0);
if (lVar3 == 0) {
lVar3 = 0;
}
else {
lVar3 = FUN_1401f3460(lVar3);
}
if (lVar3 == 0) {
local_res10 = 0;
}
else {
lVar4 = FUN_14016d940(0x48);
if (lVar4 != 0) {
local_res10 = lVar4;
uVar1 = FUN_140171510();
FUN_14016da70(lVar4,uVar1,1);
}
local_res10 = lVar4;
FUN_14016db50(lVar4);
*(undefined8 *)(lVar4 + 0x40) = 1;
*(longlong *)(lVar4 + 0x38) = lVar3;
FUN_14016dbe0(lVar4);
}
FUN_1401c84c0(&DAT_14034f208,&local_res10);
FUN_1401c8200(&local_res10);
LOCK();
UNLOCK();
DAT_14034f200 = 2;
}
else {
LOCK();
iVar2 = DAT_14034f200;
if (DAT_14034f200 == 9999) {
DAT_14034f200 = 999;
iVar2 = 9999;
}
UNLOCK();
while (iVar2 != 2) {
Sleep(5);
LOCK();
iVar2 = DAT_14034f200;
if (DAT_14034f200 == 9999) {
DAT_14034f200 = 999;
iVar2 = 9999;
}
UNLOCK();
}
}
*param_1 = 0;
FUN_1401c84c0(param_1,&DAT_14034f208);
return param_1;
}