/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400c9e20 FUN_1400c9e20 * Pseudocode, not original source. */ longlong * FUN_1400c9e20(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_14016f008)) { uVar1 = (ulonglong)*(uint *)(puVar2 + -8); } if ((int)uVar1 < (int)(param_3 + param_4)) { uVar5 = uVar3; if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_14016f008)) { uVar5 = *(uint *)(puVar2 + -8); } param_4 = uVar5 - param_3; } uVar5 = uVar3; if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_14016f008)) { uVar5 = *(uint *)(puVar2 + -8); } if ((int)uVar5 < param_3) { param_4 = uVar3; } if (param_3 == 0) { if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_14016f008)) { uVar4 = (ulonglong)*(uint *)(puVar2 + -8); } if (param_4 == (uint)uVar4) { FUN_14003e7c0(uVar1,PTR_DAT_14016f008,puVar2,uVar4); *param_2 = (longlong)PTR_DAT_14016f008; FUN_140006de0(param_2,param_1,puVar2,uVar4); return param_2; } } if (puVar2 == (undefined *)0x0) { puVar2 = PTR_DAT_14016f008; } FUN_14003d800(param_2,puVar2 + param_3,(ulonglong)param_4,uVar4); return param_2; }