/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14004c640 FUN_14004c640 * Pseudocode, not original source. */ undefined8 FUN_14004c640(longlong param_1,uint param_2,char param_3) { void *_Dst; ulonglong uVar1; longlong lVar2; longlong lVar3; SIZE_T _Size; float fVar4; float fVar5; if (*(LPVOID *)(param_1 + 8) != (LPVOID)0x0) { FUN_14003e8b0(*(LPVOID *)(param_1 + 8)); *(undefined8 *)(param_1 + 8) = 0; } if (param_3 != '\0') { _Size = (ulonglong)param_2 << 3; _Dst = (void *)FUN_14003e840(_Size); *(void **)(param_1 + 8) = _Dst; if (_Dst == (void *)0x0) { return 0; } memset(_Dst,0,_Size); } lVar2 = 0; *(uint *)(param_1 + 0x28) = param_2; fVar4 = (float)param_2; fVar5 = fVar4 * *(float *)(param_1 + 0x34); if ((9.223372e+18 < fVar5) && (fVar5 = fVar5 - 9.223372e+18, fVar5 < 9.223372e+18)) { lVar2 = -0x8000000000000000; } fVar4 = fVar4 * *(float *)(param_1 + 0x30); lVar3 = 0; *(longlong *)(param_1 + 0x38) = (longlong)fVar5 + lVar2; if ((9.223372e+18 < fVar4) && (fVar4 = fVar4 - 9.223372e+18, fVar4 < 9.223372e+18)) { lVar3 = -0x8000000000000000; } uVar1 = (longlong)fVar4 + lVar3; if ((ulonglong)((longlong)fVar4 + lVar3) < 0x11) { uVar1 = 0; } *(ulonglong *)(param_1 + 0x40) = uVar1; return CONCAT71((int7)(uVar1 >> 8),1); }