70 lines
1.9 KiB
C
70 lines
1.9 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401aee60 FUN_1401aee60
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_1401aee60(char *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
char *pcVar1;
|
|
DWORD DVar2;
|
|
DWORD DVar3;
|
|
longlong lVar4;
|
|
longlong lVar5;
|
|
int iVar6;
|
|
undefined8 uVar7;
|
|
char *pcVar8;
|
|
undefined1 local_50 [72];
|
|
|
|
uVar7 = 0xfffffffffffffffe;
|
|
if (*param_1 != '\0') {
|
|
FUN_14016d300(local_50,L"ServerSocketPool is already destructed!");
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_50,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
DVar2 = GetTickCount();
|
|
DVar3 = GetTickCount();
|
|
if (DVar3 - DVar2 < 10000) {
|
|
pcVar1 = param_1 + 0x30;
|
|
do {
|
|
pcVar8 = pcVar1;
|
|
FUN_14016db50(pcVar1);
|
|
if (0 < *(int *)(param_1 + 0x80)) {
|
|
lVar4 = FUN_14016d940(0x400);
|
|
if (lVar4 == 0) {
|
|
uVar7 = 0;
|
|
}
|
|
else {
|
|
iVar6 = *(int *)(param_1 + 0x80) + -1;
|
|
if ((iVar6 < 0) || (*(int *)(param_1 + 0x80) <= iVar6)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14016d6e0();
|
|
}
|
|
uVar7 = FUN_14019ccf0(lVar4,*(undefined8 *)
|
|
(*(longlong *)(param_1 + 0x78) + (longlong)iVar6 * 8),param_2
|
|
,param_4,uVar7,pcVar8);
|
|
}
|
|
FUN_1401aedb0(param_1 + 0x68,*(int *)(param_1 + 0x80) + -1,1);
|
|
FUN_14016dbe0(pcVar1);
|
|
return uVar7;
|
|
}
|
|
FUN_14016dbe0(pcVar1);
|
|
Sleep(1);
|
|
DVar3 = GetTickCount();
|
|
} while (DVar3 - DVar2 < 10000);
|
|
}
|
|
lVar4 = Ordinal_23(2,1,6);
|
|
if (lVar4 == -1) {
|
|
uVar7 = 0;
|
|
}
|
|
else {
|
|
lVar5 = FUN_14016d940(0x400);
|
|
if (lVar5 == 0) {
|
|
uVar7 = 0;
|
|
}
|
|
else {
|
|
uVar7 = FUN_14019ccf0(lVar5,lVar4,param_2);
|
|
}
|
|
}
|
|
return uVar7;
|
|
}
|
|
|