/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401aaf60 FUN_1401aaf60 * Pseudocode, not original source. */ void FUN_1401aaf60(longlong param_1,int *param_2,byte param_3,longlong param_4,undefined1 param_5) { int iVar1; longlong lVar2; byte bVar3; int iVar4; undefined8 uVar5; longlong *plVar6; longlong lVar7; undefined1 local_68 [8]; undefined1 local_60 [8]; longlong local_58; int local_4c; int local_40; undefined **local_38; int local_30; undefined2 local_2c; byte local_28; iVar1 = *param_2; FUN_1401b1b20(param_4 + 0xc0); uVar5 = (**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))(); FUN_14016db50(uVar5); if (DAT_14034c86f != '\0') { (**(code **)(**(longlong **)(param_1 + 0x148) + 200)) (*(longlong **)(param_1 + 0x148), L"Proud::CNetThreads_S::NetWorkerThread_ProcessMessage_Rmi"); } plVar6 = (longlong *)(*(longlong *)(param_1 + 0x148) + 0x480); bVar3 = (**(code **)(*plVar6 + 0x10))(plVar6,param_2,*(undefined8 *)(param_4 + 0x30)); if ((param_3 | bVar3) == 0) { FUN_14016b040(param_2,(int)((iVar1 >> 0x1f & 7U) + iVar1) >> 3); FUN_14016b440(local_68); local_38 = Proud::AddrPort::vftable; local_40 = 0; local_30 = DAT_140344450; local_2c = DAT_140344454; local_28 = param_3 | bVar3; FUN_14016abe0(local_68); if (*(longlong *)(param_2 + 2) == 0) { if (*(longlong *)(param_2 + 4) == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } iVar1 = param_2[6]; } else { iVar1 = *(int *)(*(longlong *)(param_2 + 2) + 0x18); } iVar4 = (int)(*param_2 + (*param_2 >> 0x1f & 7U)) >> 3; lVar7 = *(longlong *)(param_2 + 4); if (lVar7 == 0) { lVar2 = *(longlong *)(param_2 + 2); if (lVar2 == 0) { /* WARNING: Subroutine does not return */ FUN_14016d1e0(); } if (*(int *)(lVar2 + 0x18) != 0) { lVar7 = *(longlong *)(lVar2 + 0x10); } } FUN_14016b9e0(local_68,iVar4 + lVar7,iVar1 - iVar4); local_28 = (byte)param_2[0x10]; local_30 = param_2[0xe]; local_2c = (undefined2)param_2[0xf]; local_40 = param_2[10]; FUN_1401aae30(param_1,param_4,local_68,1,param_5); FUN_14016d0e0(local_60); if ((local_58 != 0) && (local_4c < 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } } FUN_14016dbe0(uVar5); return; }