/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401a41a0 FUN_1401a41a0 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001401a44da) */ void FUN_1401a41a0(longlong param_1,longlong param_2) { char cVar1; longlong lVar2; undefined8 uVar3; longlong lVar4; longlong lVar5; int iVar6; longlong *plVar7; longlong lVar8; longlong *plVar9; int iVar10; lVar5 = *(longlong *)(param_1 + 0x148) + 0x798; FUN_14016db50(lVar5); lVar8 = *(longlong *)(param_1 + 0x148) + 2000; FUN_14016db50(lVar8); iVar6 = 0; iVar10 = *(int *)(*(longlong *)(param_1 + 0x148) + 0x818) + *(int *)(*(longlong *)(param_1 + 0x148) + 0x838); FUN_14016add0(param_2,iVar10); if (*(int *)(param_2 + 0x18) == 0) { plVar9 = (longlong *)0x0; } else { plVar9 = *(longlong **)(param_2 + 0x10); } lVar4 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x828); plVar7 = plVar9; while (lVar4 != 0) { FUN_1401baa10(lVar4 + 0x40); if (lVar4 == 0) { lVar2 = 0; } else { lVar2 = lVar4 + 0x88; } *plVar7 = lVar2; if (*(longlong *)(lVar4 + 0xa0) != 0) { FUN_1401721d0(*(longlong *)(lVar4 + 0xa0),lVar4); } iVar6 = iVar6 + 1; plVar7 = plVar7 + 1; lVar4 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x828); } lVar4 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x808); if (lVar4 != 0) { plVar7 = plVar9 + iVar6; do { FUN_1401baa10(lVar4 + 0xc0); if (lVar4 == 0) { lVar2 = 0; } else { lVar2 = lVar4 + 0x108; } *plVar7 = lVar2; if (*(longlong *)(lVar4 + 0x120) != 0) { FUN_140171ed0(*(longlong *)(lVar4 + 0x120),lVar4); } plVar7 = plVar7 + 1; lVar4 = *(longlong *)(*(longlong *)(param_1 + 0x148) + 0x808); } while (lVar4 != 0); } FUN_14016dbe0(lVar8); FUN_14016dbe0(lVar5); lVar5 = (longlong)iVar10; if (0 < iVar10) { do { lVar8 = 0; if (lVar5 < 1) { return; } do { plVar7 = (longlong *)plVar9[lVar8]; uVar3 = (**(code **)(*plVar7 + 0x10))(plVar7); if (lVar8 == 0) { FUN_14016db50(uVar3); iVar6 = (**(code **)(*plVar7 + 8))(plVar7); FUN_14016dbe0(uVar3); if (iVar6 != 0) { uVar3 = (**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))(); FUN_14016db50(uVar3); if (DAT_14034c86f != '\0') { (**(code **)(**(longlong **)(param_1 + 0x148) + 200)) (*(longlong **)(param_1 + 0x148), L"Proud::CNetThreads_S::NetworkerThread_EveryRemote_IssueSendOnNeed"); } (**(code **)(*plVar7 + 0x20)) (plVar7,L"Proud::CNetThreads_S::NetworkerThread_EveryRemote_IssueSendOnNeed", iVar6); FUN_14016dbe0(uVar3); } (**(code **)(*plVar7 + 0x18))(plVar7); *plVar9 = plVar9[lVar5 + -1]; LAB_1401a44d2: lVar5 = lVar5 + -1; } else { cVar1 = FUN_14016dba0(); if (cVar1 != '\0') { iVar6 = (**(code **)(*plVar7 + 8))(plVar7); FUN_14016dbe0(uVar3); if (iVar6 != 0) { uVar3 = (**(code **)(**(longlong **)(param_1 + 0x148) + 0x58))(); FUN_14016db50(uVar3); if (DAT_14034c86f != '\0') { (**(code **)(**(longlong **)(param_1 + 0x148) + 200)) (*(longlong **)(param_1 + 0x148), L"Proud::CNetThreads_S::NetworkerThread_EveryRemote_IssueSendOnNeed"); } (**(code **)(*plVar7 + 0x20)) (plVar7,L"Proud::CNetThreads_S::NetworkerThread_EveryRemote_IssueSendOnNeed" ,iVar6); FUN_14016dbe0(uVar3); } (**(code **)(*plVar7 + 0x18))(plVar7); plVar9[lVar8] = plVar9[lVar5 + -1]; goto LAB_1401a44d2; } } lVar8 = lVar8 + 1; } while (lVar8 < lVar5); } while (0 < lVar5); } return; }