/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400b8ed0 FUN_1400b8ed0 * Pseudocode, not original source. */ /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void FUN_1400b8ed0(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_1401572c0; if (dVar7 * _DAT_1401572c0 <= (double)DAT_1401572c8) { dVar8 = (double)DAT_1401572c8; } if ((double)DAT_1401572cc <= dVar8) { dVar8 = (double)DAT_1401572cc; } dVar8 = dVar8 * param_2; if (DAT_140155058 * 5.0 < param_2) { dVar8 = dVar8 / (param_2 / DAT_140155058); } iVar5 = (int)dVar8; if ((int)dVar8 < 1) { iVar5 = 1; } cVar3 = (**(code **)(**(longlong **)*param_1 + 0x10))(); plVar1 = (longlong *)param_1[0x13]; joined_r0x0001400b8fa9: if ((plVar1 == (longlong *)0x0) || (iVar5 < 1)) { return; } if (plVar1 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_14000b450(0x80004005); } bVar2 = false; plVar4 = plVar1; if ((double)plVar1[10] <= dVar6 - (double)plVar1[9] && dVar6 - (double)plVar1[9] != (double)plVar1[10]) goto code_r0x0001400b8fed; goto LAB_1400b90bf; code_r0x0001400b8fed: 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_140157280 * (double)plVar1[10]; plVar1[10] = (longlong)dVar7; if (DAT_140157270 <= dVar7) { dVar7 = DAT_140157270; } *(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_1400b6690(param_1 + 0x12,plVar1); bVar2 = true; } iVar5 = iVar5 + -1; plVar1 = plVar4; if (!bVar2) { LAB_1400b90bf: if (plVar4 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_14000b450(0x80004005); } plVar1 = (longlong *)*plVar4; } goto joined_r0x0001400b8fa9; }