/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14004ac30 FUN_14004ac30 * Pseudocode, not original source. */ void FUN_14004ac30(longlong *param_1,longlong param_2,undefined8 param_3,undefined8 param_4) { longlong lVar1; longlong lVar2; exception local_58 [88]; if (*(longlong **)(param_2 + 0xa0) != param_1) { FUN_14003db10(local_58,(wchar_t *)PTR_u_CListNode_reports_a_consistency_p_14016f4a0, L"Proud::CListNode::CListOwner::Erase",param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } lVar1 = *(longlong *)(param_2 + 0x98); lVar2 = *(longlong *)(param_2 + 0x90); if (lVar1 != 0) { *(longlong *)(lVar1 + 0x90) = lVar2; } if (lVar2 != 0) { *(longlong *)(lVar2 + 0x98) = lVar1; } if (lVar1 == 0) { if (param_1[1] != param_2) { FUN_14003db10(local_58,(wchar_t *)PTR_u_CListNode_reports_a_consistency_p_14016f4a0, L"Proud::CListNode::CListOwner::Erase",param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } param_1[1] = lVar2; } if (lVar2 == 0) { if (*param_1 != param_2) { FUN_14003db10(local_58,(wchar_t *)PTR_u_CListNode_reports_a_consistency_p_14016f4a0, L"Proud::CListNode::CListOwner::Erase",param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_14016c210); } *param_1 = lVar1; } *(undefined8 *)(param_2 + 0x90) = 0; *(undefined8 *)(param_2 + 0x98) = 0; *(undefined8 *)(param_2 + 0xa0) = 0; *(int *)(param_1 + 2) = (int)param_1[2] + -1; return; }