/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400d4bb0 FUN_1400d4bb0 * Pseudocode, not original source. */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_1400d4bb0(undefined8 *param_1,double param_2) { longlong *plVar1; bool bVar2; char cVar3; longlong *plVar4; int iVar5; double dVar6; double dVar7; double dVar8; dVar6 = (double)(**(code **)(**(longlong **)*param_1 + 0x18))(); (**(code **)(**(longlong **)*param_1 + 0x30))(); dVar7 = (double)(longlong)param_1[0x15]; if ((longlong)param_1[0x15] < 0) { dVar7 = dVar7 + 1.8446744073709552e+19; } dVar8 = dVar7 * _DAT_1401712c0; if (dVar7 * _DAT_1401712c0 <= (double)DAT_1401712c8) { dVar8 = (double)DAT_1401712c8; } if ((double)DAT_1401712cc <= dVar8) { dVar8 = (double)DAT_1401712cc; } dVar8 = dVar8 * param_2; if (DAT_14016f058 * 5.0 < param_2) { dVar8 = dVar8 / (param_2 / DAT_14016f058); } iVar5 = (int)dVar8; if ((int)dVar8 < 1) { iVar5 = 1; } cVar3 = (**(code **)(**(longlong **)*param_1 + 0x10))(); plVar1 = (longlong *)param_1[0x13]; joined_r0x0001400d4c89: if ((plVar1 == (longlong *)0x0) || (iVar5 < 1)) { return; } if (plVar1 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } bVar2 = false; plVar4 = plVar1; if ((double)plVar1[10] <= dVar6 - (double)plVar1[9] && dVar6 - (double)plVar1[9] != (double)plVar1[10]) goto code_r0x0001400d4ccd; goto LAB_1400d4d9f; code_r0x0001400d4ccd: if (0.0 < (double)plVar1[0xb]) { dVar8 = dVar6 - (double)plVar1[0xb]; dVar7 = (double)param_1[0x1a]; if ((double)param_1[0x1a] <= dVar8) { dVar7 = dVar8; } param_1[0x1a] = dVar7; } dVar7 = DAT_140171280 * (double)plVar1[10]; plVar1[10] = (longlong)dVar7; if (DAT_140171270 <= dVar7) { dVar7 = DAT_140171270; } *(int *)(plVar1 + 0xc) = (int)plVar1[0xc] + 1; plVar1[10] = (longlong)dVar7; plVar1[9] = (longlong)dVar6; *(int *)((longlong)param_1 + 0xb4) = *(int *)((longlong)param_1 + 0xb4) + 1; (**(code **)(**(longlong **)*param_1 + 8))(*(longlong **)*param_1,plVar1 + 2); if ((int)plVar1[2] == 1) { *(int *)((longlong)param_1 + 0xbc) = *(int *)((longlong)param_1 + 0xbc) + 1; param_1[3] = 0; } if (cVar3 != '\0') { plVar4 = (longlong *)*plVar1; if (plVar1 == (longlong *)param_1[0x13]) { param_1[0x13] = plVar4; } else { *(longlong **)plVar1[1] = plVar4; } if (plVar1 == (longlong *)param_1[0x14]) { param_1[0x14] = plVar1[1]; } else { *(longlong *)(*plVar1 + 8) = plVar1[1]; } FUN_1400d2490(param_1 + 0x12,plVar1); bVar2 = true; } iVar5 = iVar5 + -1; plVar1 = plVar4; if (!bVar2) { LAB_1400d4d9f: if (plVar4 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } plVar1 = (longlong *)*plVar4; } goto joined_r0x0001400d4c89; }