/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400ed240 FUN_1400ed240 * Pseudocode, not original source. */ void FUN_1400ed240(longlong param_1) { double dVar1; double *pdVar2; longlong lVar3; undefined8 *puVar4; double dVar5; double dVar6; dVar1 = 0.0; if (*(longlong **)(param_1 + 0x10) == (longlong *)0x0) { dVar5 = 0.0; } else { dVar5 = (double)(**(code **)(**(longlong **)(param_1 + 0x10) + 8))(); } dVar6 = dVar5 - *(double *)(param_1 + 0x38); if (*(double *)(param_1 + 0x90) <= dVar6 && dVar6 != *(double *)(param_1 + 0x90)) { dVar6 = *(double *)(*(longlong *)(param_1 + 0x58) + -8); } *(double *)(param_1 + 0x38) = dVar5; FUN_1400ed0f0(param_1,dVar6); pdVar2 = *(double **)(param_1 + 0x50); if (pdVar2 != *(double **)(param_1 + 0x58)) { dVar1 = 0.0; do { dVar1 = dVar1 + *pdVar2; pdVar2 = pdVar2 + 1; } while (pdVar2 != *(double **)(param_1 + 0x58)); } lVar3 = *(longlong *)(param_1 + 0x58) - *(longlong *)(param_1 + 0x50) >> 3; dVar5 = (double)lVar3; if (lVar3 < 0) { dVar5 = dVar5 + 1.8446744073709552e+19; } puVar4 = *(undefined8 **)(param_1 + 0x70); *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1; *(double *)(param_1 + 0x20) = dVar1 / dVar5; *(double *)(param_1 + 0x18) = dVar1 / dVar5 + *(double *)(param_1 + 0x18); if (puVar4 != *(undefined8 **)(param_1 + 0x78)) { do { (**(code **)(*(longlong *)*puVar4 + 8))(); puVar4 = puVar4 + 1; } while (puVar4 != *(undefined8 **)(param_1 + 0x78)); } return; }