/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400ed450 FUN_1400ed450 * Pseudocode, not original source. */ undefined8 * FUN_1400ed450(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { undefined8 *puVar1; void *_Dst; double *pdVar2; longlong lVar3; double dVar4; double dVar5; *param_1 = Clock::vftable; param_1[1] = Clock::vftable; param_1[2] = 0; param_1[3] = 0; param_1[4] = 0; *(undefined4 *)(param_1 + 5) = 0; param_1[6] = 0; param_1[7] = 0; param_1[10] = 0; param_1[0xb] = 0; param_1[0xc] = 0; param_1[0xe] = 0; param_1[0xf] = 0; param_1[0x10] = 0; param_1[0x12] = 0x3fc999999999999a; puVar1 = (undefined8 *)param_1[2]; if (puVar1 != (undefined8 *)0x0) { (**(code **)*puVar1)(puVar1,1,param_3,param_4,0xfffffffffffffffe); } param_1[2] = 0; param_1[0x12] = 0x3fe0000000000000; *(undefined4 *)(param_1 + 8) = 1; param_1[9] = 0x3f9eb851eb851eb8; _Dst = (void *)param_1[10]; if (_Dst != (void *)param_1[0xb]) { memmove(_Dst,(void *)param_1[0xb],0); param_1[0xb] = _Dst; } FUN_140023580(param_1 + 10,param_1 + 9); dVar5 = 0.0; pdVar2 = (double *)param_1[10]; if (pdVar2 != (double *)param_1[0xb]) { do { dVar5 = dVar5 + *pdVar2; pdVar2 = pdVar2 + 1; } while (pdVar2 != (double *)param_1[0xb]); } lVar3 = (longlong)(param_1[0xb] - param_1[10]) >> 3; dVar4 = (double)lVar3; if (lVar3 < 0) { dVar4 = dVar4 + 1.8446744073709552e+19; } param_1[4] = dVar5 / dVar4; return param_1; }