/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400a6d80 FUN_1400a6d80 * Pseudocode, not original source. */ void FUN_1400a6d80(longlong param_1,undefined8 param_2,undefined8 param_3,short *param_4) { uint uVar1; uint uVar2; uint uVar3; uint *puVar4; int *piVar5; longlong *plVar6; uint *puVar7; undefined8 uVar8; uint uVar9; ulonglong uVar10; undefined *puVar11; short *psVar12; undefined4 *puVar13; uint uVar14; undefined4 local_res10 [2]; uint *local_48; undefined8 local_40; int *local_38; undefined1 local_30; local_res10[0] = (undefined4)param_2; local_40 = 0xfffffffffffffffe; if (*(longlong *)(param_1 + 0x58) == 0) { return; } psVar12 = param_4; FUN_14003e7c0(param_1,param_2,param_3,param_4); local_48 = (uint *)PTR_DAT_14016f010; uVar1 = FUN_14003e620(param_4); uVar14 = 0; uVar3 = 0; uVar10 = 0; if ((local_48 != (uint *)0x0) && (uVar10 = 0, local_48 != (uint *)PTR_DAT_14016f010)) { uVar10 = (ulonglong)local_48[-2]; } uVar2 = uVar1; if ((((int)uVar1 <= (int)uVar10) && (uVar2 = uVar3, local_48 != (uint *)0x0)) && (local_48 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_48[-2]; } uVar9 = 1; if (1 < (int)uVar2) { uVar9 = uVar2; } uVar2 = uVar3; if ((local_48 != (uint *)0x0) && (local_48 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_48[-2]; } if ((int)uVar2 < (int)uVar9) { if (local_48 == (uint *)0x0) { local_48 = (uint *)PTR_DAT_14016f010; } if ((int)uVar9 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if (uVar9 == 0) { FUN_140002190((longlong *)&local_48,PTR_DAT_14016f010,uVar10,psVar12); } else { uVar2 = uVar3; if ((local_48 != (uint *)0x0) && (local_48 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_48[-2]; } if (uVar9 != uVar2) { puVar4 = (uint *)FUN_14003e840((longlong)(int)uVar9 * 2 + 10); if (puVar4 != (uint *)0x0) { *puVar4 = 0; puVar4[1] = 1; } *puVar4 = uVar9; uVar2 = uVar3; if ((local_48 != (uint *)0x0) && (local_48 != (uint *)PTR_DAT_14016f010)) { uVar2 = local_48[-2]; } puVar7 = (uint *)PTR_DAT_14016f010; if ((int)uVar9 < (int)uVar2) { LAB_1400a6eb0: if (local_48 != (uint *)0x0) { puVar7 = local_48; } } else { uVar9 = uVar3; if (local_48 != (uint *)0x0) { if (local_48 != (uint *)PTR_DAT_14016f010) { uVar9 = local_48[-2]; } goto LAB_1400a6eb0; } } uVar10 = (ulonglong)uVar9; FUN_14003e650(puVar4 + 2,puVar7,uVar9); FUN_140002190((longlong *)&local_48,puVar7,uVar10,psVar12); local_48 = puVar4 + 2; } } } FUN_140001df0((longlong *)&local_48); puVar4 = local_48; if (local_48 == (uint *)0x0) { puVar4 = (uint *)PTR_DAT_14016f010; } FUN_14003e650(puVar4,param_4,uVar1); puVar4 = local_48; if (local_48 == (uint *)0x0) { puVar4 = (uint *)PTR_DAT_14016f010; } uVar3 = FUN_14003e620((short *)puVar4); uVar1 = uVar14; if (0 < (int)uVar3) { uVar1 = uVar3; } uVar3 = uVar14; if ((local_48 != (uint *)0x0) && (local_48 != (uint *)PTR_DAT_14016f010)) { uVar3 = local_48[-2]; } if (((int)uVar3 <= (int)uVar1) && (uVar1 = uVar14, local_48 != (uint *)0x0)) { if (local_48 == (uint *)PTR_DAT_14016f010) goto LAB_1400a6f67; uVar1 = local_48[-2]; } if (((local_48 != (uint *)PTR_DAT_14016f010) && (local_48 != (uint *)0x0)) && (local_48 + -2 != (uint *)0x0)) { local_48[-2] = uVar1; *(undefined2 *)((longlong)local_48 + (longlong)(int)uVar1 * 2) = 0; } LAB_1400a6f67: plVar6 = (longlong *)(*(longlong *)(param_1 + 0x58) + 0x68); puVar13 = local_res10; puVar11 = &DAT_140177f90; uVar8 = 1; (**(code **)(*plVar6 + 0x50))(); puVar4 = local_48; if (((local_48 != (uint *)0x0) && (local_48 != (uint *)PTR_DAT_14016f010)) && (puVar7 = local_48 + -2, puVar7 != (uint *)0x0)) { piVar5 = (int *)FUN_14003e7c0(plVar6,uVar8,puVar11,puVar13); local_38 = piVar5; FUN_14003d040(piVar5); local_30 = 1; puVar4 = puVar4 + -1; *puVar4 = *puVar4 - 1; if (*puVar4 == 0) { FUN_14003e8b0(puVar7); } FUN_14003d0d0((longlong)piVar5); } return; }