/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14005fd40 FUN_14005fd40 * Pseudocode, not original source. */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_14005fd40(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4) { undefined *puVar1; int *piVar2; int iVar3; undefined *puVar4; uint uVar5; longlong *plVar6; undefined **ppuVar7; undefined ***pppuVar8; ulonglong uVar9; longlong lVar10; double dVar11; undefined *local_res8; longlong local_res10; undefined **local_60; undefined4 local_58; undefined2 local_54; undefined **local_50; undefined8 local_48; undefined8 local_40; undefined8 local_38; undefined8 local_30; iVar3 = *(int *)(param_2[0xe9] + 0x7c); pppuVar8 = (undefined ***)param_2[0xe8]; uVar9 = 0; if (((pppuVar8 != (undefined ***)0x0) && (uVar9 = 0, *pppuVar8 != (undefined **)0x0)) && ((char)param_2[0xe0] != '\0')) { local_60 = Proud::AddrPort::vftable; local_58 = (undefined4)param_2[0xe2]; local_54 = *(undefined2 *)((longlong)param_2 + 0x714); ppuVar7 = *pppuVar8; pppuVar8 = &local_60; uVar5 = FUN_14008caf0((longlong)ppuVar7[0x2d],(longlong)pppuVar8); uVar9 = (ulonglong)uVar5; } *(int *)(param_2 + 0x3d) = (int)uVar9 + iVar3; plVar6 = param_1 + 0x23; dVar11 = (double)(**(code **)(*plVar6 + 8))(); if ((double)param_2[0x44] == 0.0) { if (DAT_14016f194 < (int)param_2[0x3d]) { param_2[0x44] = (longlong)dVar11; } } else if (DAT_14016f194 < (int)param_2[0x3d]) { if (_DAT_14016f1b0 < dVar11 - (double)param_2[0x44]) { FUN_14003e7c0(plVar6,pppuVar8,uVar9,param_4); local_res8 = PTR_DAT_14016f010; FUN_140029b80((longlong *)&local_res8,L"sendQueue %dBytes", (ulonglong)*(uint *)(param_2 + 0x3d),param_4); local_48 = 0; local_40 = 0; local_38 = 0; local_30 = 0; local_50 = Proud::ByteArray::vftable; uVar5 = (**(code **)(*param_2 + 0x10))(param_2); ppuVar7 = &local_res8; plVar6 = FUN_140071c20(&local_res10,0x25,(ulonglong)uVar5,(longlong *)ppuVar7, (longlong)&local_50); lVar10 = *param_1; (**(code **)(lVar10 + 0x88))(param_1); pppuVar8 = &local_50; FUN_140049e40(pppuVar8); puVar4 = local_res8; param_2[0x44] = (longlong)dVar11; if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_14016f010)) && (puVar1 = local_res8 + -8, puVar1 != (undefined *)0x0)) { ppuVar7 = (undefined **)FUN_14003e7c0(pppuVar8,plVar6,lVar10,ppuVar7); local_60 = ppuVar7; FUN_14003d040((int *)ppuVar7); local_58 = CONCAT31(local_58._1_3_,1); piVar2 = (int *)(puVar4 + -4); *piVar2 = *piVar2 + -1; if (*piVar2 == 0) { FUN_14003e8b0(puVar1); } FUN_14003d0d0((longlong)ppuVar7); } } } else { param_2[0x44] = 0; } return; }