Function at 0x407684
Capabilities:
Manipulate boot configuration

Disassembly:
mov eax, 0x480d38
call fcn.0040f970
sub esp, 0xa68
push ebx
push esi
push edi
call fcn.00457b70
xor edi, edi
test al, al
mov ebx, 0x208
mov esi, 0x48ae58
je 0x40774c
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x34], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
mov ecx, 0x4e3118
call fcn.004577f0
cmp dword [ebp - 0x34], edi
mov eax, str.Sysnative
jne 0x4076d7
mov eax, str.System32
push eax
push str.SystemRoot
call dword [sym.imp.MSVCR71.dll__wgetenv]
pop ecx
push eax
push str._s_s_bcdedit.exe
lea eax, [ebp - 0x86c]
push ebx
push eax
call fcn.00403fa3
add esp, 0x14
push edi
push 1
push esi
push edi
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push 1
push edi
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str._deletevalue_BOOTSTATUSPOLICY
mov dword [ebp - 4], edi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
lea eax, [ebp - 0x86c]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
or dword [ebp - 4], 0xffffffff
call fcn.00460ca0
add esp, 0x28
lea ecx, [ebp - 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_5]
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 2
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_5]
push edi
push 1
push 1
mov byte [ebp - 4], 3
call fcn.00463560
pop ecx
pop ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push dword [ebp + 8]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea eax, [ebp - 0x28]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.RestoreEncryptedLevel
mov byte [ebp - 4], 4
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push esi
mov byte [ebp - 4], 5
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [ebp - 4], 3
call fcn.004670a0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x10], esp
push dword [ebp + 8]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea eax, [ebp - 0x2c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.RestoreEncryptedLocation
mov byte [ebp - 4], 6
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push esi
mov byte [ebp - 4], 7
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [ebp - 4], 3
call fcn.004670a0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x10], esp
push dword [ebp + 8]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea eax, [ebp - 0x3c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Location
mov byte [ebp - 4], 8
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push esi
mov byte [ebp - 4], 9
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [ebp - 4], 3
call fcn.004670a0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x10], esp
push dword [ebp + 8]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea eax, [ebp - 0x1c]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.PECommand
mov byte [ebp - 4], 0xa
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push esi
mov byte [ebp - 4], 0xb
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [ebp - 4], 3
call fcn.004670a0
add esp, 0xc
mov ecx, esp
mov dword [ebp - 0x10], esp
push dword [ebp + 8]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea eax, [ebp - 0x38]
push eax
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push str.RemoveSP
mov byte [ebp - 4], 0xc
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push esi
mov byte [ebp - 4], 0xd
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [ebp - 4], 3
call fcn.004670a0
add esp, 0x10
push edi
push edi
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x45c]
call fcn.00460980
push edi
push ebx
lea eax, [ebp - 0xa74]
push eax
lea ecx, [ebp - 0x45c]
mov byte [ebp - 4], 0xe
call fcn.0045feb0
push str.common
lea eax, [ebp - 0xa74]
push eax
push 0x48be08
lea eax, [ebp - 0x244]
push ebx
push eax
call fcn.00403fa3
add esp, 0x14
push str.common
push dword [0x4e3148]
call fcn.00459d50
pop ecx
push eax
push dword [0x4e3148]
lea eax, [ebp - 0x664]
push str._s_s_s
push ebx
push eax
call fcn.00403fa3
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.MSVCR71.dll__wcsicmp]
xor ebx, ebx
add esp, 0x20
inc ebx
test eax, eax
je 0x407994
push edi
push edi
push ebx
push edi
push ecx
lea eax, [ebp - 0x664]
mov ecx, esp
mov dword [ebp + 8], esp
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
lea eax, [ebp - 0x244]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 0xf
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [ebp - 4], 0xe
call fcn.00459a10
add esp, 0x18
lea ecx, [ebp - 0x30]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_5]
cmp dword [ebp - 0x2c], 0xffffffff
mov byte [ebp - 4], 0x10
je 0x407aaa
cmp dword [ebp - 0x28], 0xffffffff
je 0x407aaa
push dword [0x4de850]
lea eax, [ebp - 0x18]
push str._s_br_check.exe
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
push 0xffffffffffffffff
push dword [ebp - 0x1c]
lea eax, [ebp - 0x20]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push str.location_d_level_d_win1_baremetal0_command_d_rejuvlevel_d
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x24
push edi
push ebx
push esi
push edi
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push 0x40
push edi
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 0x11
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x12
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
mov byte [ebp - 4], 0x10
call fcn.00460ca0
add esp, 0x28
cmp dword [ebp - 0x1c], 3
je 0x407a40
cmp eax, 2
je 0x407a9d
cmp eax, edi
jne 0x407a48
push 0x67
jmp 0x407a8f
push eax
lea eax, [ebp - 0x30]
push str.br_check_returned_error_code_0x_X
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
push edi
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push 0x48affc
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
lea eax, [ebp - 0x30]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 0x13
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
mov byte [ebp - 4], 0x10
call fcn.00457810
add esp, 0xc
push 0x76
pop eax
push 0x40
push edi
push eax
push edi
call fcn.00467280
add esp, 0x10
push edi
push ebx
push dword [ebp - 0x2c]
call fcn.00463560
add esp, 0xc
cmp dword [ebp - 0x38], ebx
jne 0x407ab4
call fcn.0045c6e0
cmp dword [ebp - 0x1c], 0x13
je 0x407b68
push dword [ebp - 0x28]
call fcn.00462030
cmp dword [ebp - 0x1c], 3
pop ecx
je 0x407add
cmp dword [ebp - 0x1c], 0x11
je 0x407add
cmp dword [ebp - 0x1c], 0xc
jne 0x407ae5
push 0x40
jmp 0x407adf
push 0x20
call fcn.00460b00
pop ecx
push str.InstallPath
push str.SOFTWARELenovoRescue_and_Recovery
call fcn.00459d90
push eax
lea eax, [ebp - 0x18]
push str._sADMmailman.exe
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
lea eax, [ebp - 0x20]
push str._rru
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x1c
push edi
push ebx
push esi
push edi
push ecx
mov ecx, esp
mov dword [ebp + 8], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push edi
push edi
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x10], esp
push eax
mov byte [ebp - 4], 0x14
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
mov byte [ebp - 4], 0x15
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
mov byte [ebp - 4], 0x10
call fcn.00460ca0
add esp, 0x28
jmp 0x407c1c
push str.InstallPath
push str.SOFTWARELenovoRescue_and_Recovery
call fcn.00459d90
push eax
lea eax, [ebp - 0x18]
push str._sosrestore.exe
push eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x14
push edi
push ebx
push esi
push edi
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push 0x40
push edi
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.postrejuvenate
mov byte [ebp - 4], 0x16
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
mov byte [ebp - 4], 0x17
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
mov byte [ebp - 4], 0x10
call fcn.00460ca0
push dword [ebp - 0x28]
call fcn.00462450
push 0x80
call fcn.00460b00
add esp, 0x30
lea eax, [ebp + 8]
push eax
push 0x72
mov ecx, 0x4e31b8
call fcn.00465800
cmp dword [ebp + 8], edi
jne 0x407c1c
push 0x21
push edi
push 0x138
push edi
call fcn.00467280
add esp, 0x10
cmp eax, ebx
jne 0x407c1c
push edi
call fcn.0045a640
pop ecx
lea ecx, [ebp - 0x30]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x45c]
mov byte [ebp - 4], 3
call fcn.0045d490
lea ecx, [ebp - 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
leave
ret 4