/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14019d910 FUN_14019d910 * Pseudocode, not original source. */ undefined4 FUN_14019d910(longlong param_1,longlong *param_2) { longlong lVar1; undefined4 uVar2; int iVar3; int iVar4; undefined8 uVar5; longlong *plVar6; ulonglong uVar7; uint uVar8; ulonglong uVar9; uint uVar10; ulonglong uVar11; undefined4 local_res8 [2]; undefined *local_res10; if (*(char *)(param_1 + 0x280) != '\0') { FUN_14016d8c0(); local_res10 = PTR_DAT_1403440a0; uVar2 = FUN_14016d740(L"WARNING: IssueSend is duplicated!"); uVar5 = FUN_14004e940(&local_res10,uVar2); FUN_14016d770(uVar5,L"WARNING: IssueSend is duplicated!",uVar2); FUN_14004e560(&local_res10); (**(code **)(**(longlong **)(param_1 + 0x18) + 8)) (*(longlong **)(param_1 + 0x18),param_1,&local_res10); } lVar1 = param_2[1]; uVar7 = 0; uVar9 = uVar7; uVar11 = uVar7; if (0 < lVar1) { do { if (((longlong)uVar7 < 0) || (lVar1 <= (longlong)uVar7)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if ((ulonglong)param_2[2] < 0x65) { plVar6 = param_2 + (uVar7 + 2) * 2; } else { plVar6 = (longlong *)(uVar7 * 0x10 + *param_2); } uVar10 = (int)uVar11 + (int)*plVar6; uVar8 = (int)uVar9 + 1; uVar7 = (ulonglong)(int)uVar8; uVar9 = (ulonglong)uVar8; uVar11 = (ulonglong)uVar10; } while ((longlong)uVar7 < lVar1); if (0 < (int)uVar10) { local_res8[0] = 0; *(undefined1 *)(param_1 + 0x280) = 0; *(undefined1 *)(param_1 + 0x280) = 1; if (0xffffffff < param_2[1] + 0x80000000U) { /* WARNING: Subroutine does not return */ FUN_14016d710(L"Proud::CFastSocket::IssueSend_NoCopy"); } plVar6 = param_2 + 4; if (100 < (ulonglong)param_2[2]) { plVar6 = (longlong *)*param_2; } iVar3 = WSASend(*(undefined8 *)(param_1 + 0x3d0),plVar6,param_2[1] & 0xffffffff,local_res8,0, param_1 + 0x240,0); if ((iVar3 < 0) && (iVar4 = Ordinal_111(), iVar4 != 0x3e5)) { *(undefined1 *)(param_1 + 0x280) = 0; uVar2 = Ordinal_111(); FUN_14019ce80(param_1,uVar2,L"Proud::CFastSocket::IssueSend_NoCopy"); return uVar2; } *(bool *)(param_1 + 0x3c2) = iVar3 == 0; return 0; } } return 0x2726; }