/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400ae200 FUN_1400ae200 * Pseudocode, not original source. */ undefined8 FUN_1400ae200(longlong *param_1,uint param_2,longlong *param_3,undefined8 param_4) { longlong lVar1; void *pvVar2; undefined **ppuVar3; longlong *plVar4; longlong lVar5; uint *puVar6; ulonglong uVar7; longlong *local_res8; (**(code **)(param_1[0xf] + 0x10))(); uVar7 = (ulonglong)param_2; FUN_1400ae130(param_1,(longlong *)&local_res8,param_2); if ((local_res8 == (longlong *)0x0) || (lVar1 = *local_res8, lVar1 == 0)) { ppuVar3 = FUN_1400a9e20(param_1,param_2,uVar7,param_4); FUN_14009cf60(param_3,param_3[1],(longlong)ppuVar3); } else { if (*(longlong *)(lVar1 + 0x28) == 0) { puVar6 = (uint *)0x0; } else { puVar6 = *(uint **)(lVar1 + 0x18); } while( true ) { if (local_res8 == (longlong *)0x0) { lVar5 = 0; } else { lVar5 = *local_res8; } if (puVar6 == (uint *)0x0) break; ppuVar3 = FUN_1400a9e20(param_1,*puVar6,uVar7,param_4); lVar5 = param_3[1]; if (lVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } uVar7 = 0xffffffffffffffff; FUN_14009ca00(param_3,lVar5 + 1,-1); if (param_3[1] <= lVar5) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } if ((ulonglong)param_3[2] < 0x65) { plVar4 = param_3 + lVar5 + 4; } else { plVar4 = (longlong *)(*param_3 + lVar5 * 8); } *plVar4 = (longlong)ppuVar3; puVar6 = *(uint **)(puVar6 + 4); } if (lVar1 + 8 != lVar5 + 8) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } } if (local_res8 != (longlong *)0x0) { local_res8[1] = local_res8[1] + -1; if (local_res8[1] == 0) { pvVar2 = (void *)*local_res8; if (pvVar2 != (void *)0x0) { FUN_14004e270((char *)((longlong)pvVar2 + 8)); operator_delete(pvVar2); } local_res8 = (longlong *)FUN_14003e8b0(local_res8); } } return CONCAT71((int7)((ulonglong)local_res8 >> 8),1); }