/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400adf90 FUN_1400adf90 * Pseudocode, not original source. */ longlong * FUN_1400adf90(longlong *param_1,longlong *param_2,int param_3,uint param_4) { ulonglong uVar1; undefined *puVar2; uint uVar3; uint uVar5; ulonglong uVar4; uVar3 = 0; uVar4 = 0; puVar2 = (undefined *)*param_1; if (param_3 < 0) { param_3 = uVar3; } if ((int)param_4 < 0) { param_4 = uVar3; } uVar1 = 0; if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_140155008)) { uVar1 = (ulonglong)*(uint *)(puVar2 + -8); } if ((int)uVar1 < (int)(param_3 + param_4)) { uVar5 = uVar3; if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_140155008)) { uVar5 = *(uint *)(puVar2 + -8); } param_4 = uVar5 - param_3; } uVar5 = uVar3; if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_140155008)) { uVar5 = *(uint *)(puVar2 + -8); } if ((int)uVar5 < param_3) { param_4 = uVar3; } if (param_3 == 0) { if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_140155008)) { uVar4 = (ulonglong)*(uint *)(puVar2 + -8); } if (param_4 == (uint)uVar4) { FUN_140030200(uVar1,PTR_DAT_140155008,puVar2,uVar4); *param_2 = (longlong)PTR_DAT_140155008; FUN_14001bf80(param_2,param_1,puVar2,uVar4); return param_2; } } if (puVar2 == (undefined *)0x0) { puVar2 = PTR_DAT_140155008; } FUN_14002ee70(param_2,puVar2 + param_3,(ulonglong)param_4,uVar4); return param_2; }