Just an update I got a reply from tech support, they sent me a newer bios that had the same problem.
they forwarded the issue to HQ and now I'm trying to explain the issue to the next tech support group.
I am adding more detail to this thread to help the process along.
this issue is also present in the BIOS for the MSI A55M-P35 motherboard.
the affected module GUID is 5AE3F37E-4EAE-41AE-8240-35465B5E81EB
below is an disassembly of the function that is removing the boot entry's.
It is preforming a string compare between RCX and RDX the result is returned on
RAX, if RAX is 0 then RCX contained a string equal to "Windows Boot Manager"
and the function exits. If RAX is not 0 then RuntimeServices->SetVarable is called
with attributes and size set to 0 for that boot entry, which will cause it to be removed
from NVRAM which means that the boot entry will not be displayed in the UEFI BIOS
built in boot manager.
if MSI tech support is reading this and you don't understand what all that means then just
forward it to the BIOS department it will take less than 30 minutes to fix once the right
individual sees the problem.
sub_180000758 proc near ; CODE XREF: sub_1800007F0+33p
; sub_18000083C+45p
var_38 = qword ptr -38h
var_28 = byte ptr -28h
arg_0 = qword ptr 8
mov [rsp+arg_0], rbx
push rdi
sub rsp, 50h
mov rbx, rdx
mov rdi, rcx
cmp r8d, 1
jnz short loc_1800007D9
mov rcx, [rbx+18h]
lea rdx, aWindowsBootMan ; "Windows Boot Manager"
mov r8d, 14h
call StrCmp
test rax, rax
jz short Exit
mov eax, 0FFFFh
cmp [rbx+40h], ax
jz short loc_1800007CC
movzx r8d, word ptr [rbx+40h]
lea rdx, aBoot04x ; "Boot%04X"
lea rcx, [rsp+58h+var_28]
call sub_180002960
mov rax, cs:RunTimeServices
and [rsp+58h+var_38], 0
lea rdx, unk_180035DF8 ; GUID
lea rcx, [rsp+58h+var_28]
xor r9d, r9d ; Size = 0
xor r8d, r8d ; Attributes = 0
call qword ptr [rax+58h] ; RuntimeServices->SetVariable
loc_1800007CC: ; CODE XREF: sub_180000758+3Aj
mov rdx, rbx
mov rcx, rdi
call sub_18000E7A8
jmp short Exit
; ---------------------------------------------------------------------------
loc_1800007D9: ; CODE XREF: sub_180000758+14j
cmp r8d, 2
jnz short Exit
and dword ptr [rdx+10h], 0FFFFFFFEh
Exit: ; CODE XREF: sub_180000758+2Fj
; sub_180000758+7Fj ...
mov rbx, [rsp+58h+arg_0]
add rsp, 50h
pop rdi
retn
sub_180000758 endp