48 lines
1.6 KiB
C
48 lines
1.6 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401a33f0 FUN_1401a33f0
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1401a33f0(longlong param_1,undefined8 *param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
longlong lVar2;
|
|
undefined1 local_50 [72];
|
|
|
|
if (param_2[0x5d] == 0) {
|
|
FUN_14016d300(local_50,&DAT_1402815d0,param_3,param_4,0xfffffffffffffffe);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_50,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
if (param_2[0x79] != 0) {
|
|
FUN_14016d300(local_50,&DAT_1402815b0,param_3,param_4,0xfffffffffffffffe);
|
|
/* WARNING: Subroutine does not return */
|
|
_CxxThrowException(local_50,(ThrowInfo *)&DAT_1403417f8);
|
|
}
|
|
if (*(longlong *)(param_1 + 0x28) != 0) {
|
|
puVar1 = (undefined8 *)FUN_14016f040();
|
|
lVar2 = (*(code *)*puVar1)(param_2[0x7a],*(undefined8 *)(param_1 + 0x28),param_2,0);
|
|
if (lVar2 == 0) {
|
|
FUN_1401a32c0(param_1,L"Proud::CompletionPort::AssociateSocket");
|
|
}
|
|
}
|
|
FUN_14016db50(param_1 + 0x50);
|
|
puVar1 = (undefined8 *)(param_1 + 0x38);
|
|
if (param_2[2] != 0) {
|
|
FUN_14019c130(puVar1,param_2);
|
|
}
|
|
if (*(longlong *)(param_1 + 0x40) == 0) {
|
|
*puVar1 = param_2;
|
|
}
|
|
else {
|
|
*(undefined8 **)(*(longlong *)(param_1 + 0x40) + 8) = param_2;
|
|
*param_2 = *(undefined8 *)(param_1 + 0x40);
|
|
}
|
|
*(undefined8 **)(param_1 + 0x40) = param_2;
|
|
param_2[2] = puVar1;
|
|
*(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + 1;
|
|
param_2[0x79] = param_1;
|
|
FUN_14016dbe0(param_1 + 0x50);
|
|
return;
|
|
}
|
|
|