68 lines
2.1 KiB
C
68 lines
2.1 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400ccb80 FUN_1400ccb80
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 * FUN_1400ccb80(char *param_1,undefined8 param_2,undefined8 param_3,longlong param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
DWORD DVar2;
|
|
DWORD DVar3;
|
|
longlong lVar4;
|
|
undefined8 *puVar5;
|
|
uint uVar6;
|
|
undefined8 uVar7;
|
|
exception local_50 [72];
|
|
|
|
if (*param_1 != '\0') {
|
|
FUN_14006ba50(local_50,L"ServerSocketPool is already destructed!",param_3,param_4);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_50,(ThrowInfo *)&DAT_1401a93e8);
|
|
}
|
|
uVar7 = param_2;
|
|
DVar2 = GetTickCount();
|
|
DVar3 = GetTickCount();
|
|
if (DVar3 - DVar2 < 10000) {
|
|
piVar1 = (int *)(param_1 + 0x30);
|
|
do {
|
|
FUN_14006b350(piVar1);
|
|
if (0 < *(int *)(param_1 + 0x80)) {
|
|
puVar5 = (undefined8 *)FUN_14006cbf0(0x400);
|
|
if (puVar5 == (undefined8 *)0x0) {
|
|
puVar5 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
uVar6 = *(int *)(param_1 + 0x80) - 1;
|
|
if (((int)uVar6 < 0) || (*(int *)(param_1 + 0x80) <= (int)uVar6)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be30((ulonglong)uVar6,uVar7,param_3,param_4);
|
|
}
|
|
puVar5 = FUN_1400726e0(puVar5,*(undefined8 *)
|
|
(*(longlong *)(param_1 + 0x78) + (longlong)(int)uVar6 * 8),
|
|
param_2,param_4);
|
|
}
|
|
FUN_1400ccad0((longlong)(param_1 + 0x68),*(int *)(param_1 + 0x80) + -1,1,param_4);
|
|
FUN_14006b3e0((longlong)piVar1);
|
|
return puVar5;
|
|
}
|
|
FUN_14006b3e0((longlong)piVar1);
|
|
Sleep(1);
|
|
DVar3 = GetTickCount();
|
|
} while (DVar3 - DVar2 < 10000);
|
|
}
|
|
lVar4 = Ordinal_23(2,1,6);
|
|
if (lVar4 == -1) {
|
|
puVar5 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
puVar5 = (undefined8 *)FUN_14006cbf0(0x400);
|
|
if (puVar5 == (undefined8 *)0x0) {
|
|
puVar5 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
puVar5 = FUN_1400726e0(puVar5,lVar4,param_2,param_4);
|
|
}
|
|
}
|
|
return puVar5;
|
|
}
|
|
|