Function at 0x450bb0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d124c
mov eax, dword fs:[0]
push eax
sub esp, 0x374
mov eax, dword [0x4f91a4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
lea eax, [ebp - 0x21c]
push 0x20a
push ebx
push eax
mov dword [ebp - 0x220], ebx
call fcn.004a90e0
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x21c]
push 0x5c
push eax
call fcn.004a8fc4
xor ecx, ecx
push str.Module_security_svc_utils_component.dll
push 0x104
mov word [eax], cx
lea eax, [ebp - 0x21c]
push eax
call fcn.004b1f6a
add esp, 0x14
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.DllGetClassObject
push eax
call edi
test eax, eax
je 0x450c6b
lea ecx, [esi + 0x44]
push ecx
push 0x4d5298
push 0x4d772c
call eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x21c]
push 0x5c
push eax
call fcn.004a8fc4
xor ecx, ecx
push str.Module_securityknbpolicy.dll
push 0x104
mov word [eax], cx
lea eax, [ebp - 0x21c]
push eax
call fcn.004b1f6a
add esp, 0x14
lea eax, [ebp - 0x21c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call eax
mov dword [esi + 4], eax
test eax, eax
je 0x450cdd
push str.DllCanUnloadNow
push eax
call edi
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
test eax, eax
je 0x450cda
push str.DllGetClassObject
push eax
call edi
mov dword [esi + 0xc], eax
mov ecx, esi
call fcn.00450a70
test eax, eax
jns 0x450d8c
push 2
call fcn.00410da0
add esp, 4
test al, al
je 0x450d5d
push 2
push 0x3e
push str.service_base_module_manager.cpp
lea ecx, [ebp - 0x2d0]
call fcn.00410de0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 0
push ecx
push str._LoadInterface_Scan:
push str.ServiceBaseModuleManager::Init
add eax, 8
mov ebx, 1
push str.SAFE_
push eax
mov dword [ebp - 0x220], ebx
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.00411630
add esp, 8
mov dword [ebp - 4], 0xffffffff
test bl, 1
je 0x450d74
lea ecx, [ebp - 0x2d0]
call fcn.00410e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 8
call fcn.0044e6f0
add esp, 8
xor al, al
jmp 0x4512ed
mov ecx, dword [esi]
push dword [esi + 0x54]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x450e2f
push 2
call fcn.00410da0
add esp, 4
test al, al
je 0x450e00
push 2
push 0x44
push str.service_base_module_manager.cpp
lea ecx, [ebp - 0x2d0]
call fcn.00410de0
push str._Initialize_Scan
push str.ServiceBaseModuleManager::Init
add eax, 8
mov dword [ebp - 4], 1
push str.SAFE_
mov ebx, 2
push eax
mov dword [ebp - 0x220], ebx
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
mov dword [ebp - 4], 0xffffffff
test bl, 2
je 0x450e17
lea ecx, [ebp - 0x2d0]
call fcn.00410e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 9
call fcn.0044e6f0
add esp, 8
xor al, al
jmp 0x4512ed
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x21c]
push 0x5c
push eax
call fcn.004a8fc4
xor ecx, ecx
push str.Module_securityknbctrl.dll
push 0x104
mov word [eax], cx
lea eax, [ebp - 0x21c]
push eax
call fcn.004b1f6a
add esp, 0x14
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [esi + 0x20]
call fcn.00451310
test eax, eax
jne 0x450f26
push 2
call fcn.00410da0
add esp, 4
test al, al
je 0x450ef7
push 2
push 0x4b
push str.service_base_module_manager.cpp
lea ecx, [ebp - 0x2d0]
call fcn.00410de0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 2
push ecx
push str._LoadInterface_Driver:
push str.ServiceBaseModuleManager::Init
add eax, 8
mov ebx, 4
push str.SAFE_
push eax
mov dword [ebp - 0x220], ebx
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.00411630
add esp, 8
mov dword [ebp - 4], 0xffffffff
test bl, 4
je 0x450f0e
lea ecx, [ebp - 0x2d0]
call fcn.00410e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xa
call fcn.0044e6f0
add esp, 8
xor al, al
jmp 0x4512ed
mov eax, dword [esi + 0x20]
push dword [esi + 0x54]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jne 0x450fc9
push 2
call fcn.00410da0
add esp, 4
test al, al
je 0x450f9a
push 2
push 0x51
push str.service_base_module_manager.cpp
lea ecx, [ebp - 0x2d0]
call fcn.00410de0
push str._Initialize_Driver
mov ebx, 8
mov dword [ebp - 4], 3
push str.ServiceBaseModuleManager::Init
add eax, ebx
mov dword [ebp - 0x220], ebx
push str.SAFE_
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
mov dword [ebp - 4], 0xffffffff
test bl, 8
je 0x450fb1
lea ecx, [ebp - 0x2d0]
call fcn.00410e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xb
call fcn.0044e6f0
add esp, 8
xor al, al
jmp 0x4512ed
mov eax, dword [esi + 0x20]
lea ecx, [esi + 0x20]
mov dword [0x520460], eax
lea eax, [esi + 0x30]
push eax
call fcn.00450090
lea eax, [ebp - 0x21c]
push str.Module_securityknbpolicy.dll
push eax
call fcn.00450b70
add esp, 8
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [esi + 0x10]
call fcn.00451360
test eax, eax
jne 0x4510a8
push 2
call fcn.00410da0
add esp, 4
test al, al
je 0x451079
push 2
push 0x5b
push str.service_base_module_manager.cpp
lea ecx, [ebp - 0x2d0]
call fcn.00410de0
lea ecx, [ebp - 0x21c]
mov dword [ebp - 4], 4
push ecx
push str._LoadInterface_Host:
push str.ServiceBaseModuleManager::Init
add eax, 8
mov ebx, 0x10
push str.SAFE_
push eax
mov dword [ebp - 0x220], ebx
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.00411630
add esp, 8
mov dword [ebp - 4], 0xffffffff
test bl, 0x10
je 0x451090
lea ecx, [ebp - 0x2d0]
call fcn.00410e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xc
call fcn.0044e6f0
add esp, 8
xor al, al
jmp 0x4512ed
mov eax, dword [esi + 0x10]
push dword [esi + 0x54]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jne 0x45114c
push 2
call fcn.00410da0
add esp, 4
test al, al
je 0x45111d
push 2
push 0x62
push str.service_base_module_manager.cpp
lea ecx, [ebp - 0x380]
call fcn.00410de0
push str._Initialize_Host
push str.ServiceBaseModuleManager::Init
add eax, 8
mov dword [ebp - 4], 5
push str.SAFE_
mov ebx, 0x20
push eax
mov dword [ebp - 0x220], ebx
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
push eax
call fcn.0040be30
add esp, 8
mov dword [ebp - 4], 0xffffffff
test bl, 0x20
je 0x451134
lea ecx, [ebp - 0x380]
call fcn.00410e30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xd
call fcn.0044e6f0
add esp, 8
xor al, al
jmp 0x4512ed
lea eax, [ebp - 0x21c]
push str.kmsgsvc.dll
push eax
call fcn.00450b70
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
lea eax, [ebp - 0x21c]
add esp, 8
push eax
call ebx
push str.DllGetClassObject
push eax
call edi
test eax, eax
je 0x45118b
lea ecx, [esi + 0x48]
push ecx
push 0x4d52a8
push 0x4d772c
call eax
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x451198
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
call fcn.0044faa0
mov ecx, eax
call fcn.0044fa80
call fcn.0044faa0
mov ecx, eax
call fcn.0044fb50
test al, al
jne 0x4512a4
call fcn.0044faa0
mov ecx, eax
call fcn.0044fb10
test al, al
jne 0x4512a4
lea eax, [ebp - 0x21c]
push str.kwhrequestor.dll
push eax
call fcn.00450b70
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x21c]
push eax
call ebx
mov ebx, eax
test ebx, ebx
jne 0x451208
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xe
call fcn.0044e6f0
add esp, 8
push str.GetInterface
push ebx
call edi
test eax, eax
je 0x45121f
lea ecx, [esi + 0x34]
push ecx
push 0x4d52b8
call eax
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x45122e
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esi + 0x38], eax
lea eax, [ebp - 0x21c]
push str.kquickpopctrl.dll
push eax
call fcn.00450b70
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x21c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call eax
mov ebx, eax
test ebx, ebx
jne 0x45126f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xf
call fcn.0044e6f0
add esp, 8
push str.DllGetClassObject
push ebx
call edi
test eax, eax
je 0x4512a4
lea edi, [esi + 0x3c]
push edi
push 0x4d52c8
push 0x4d772c
call eax
test eax, eax
jne 0x4512a4
mov ecx, dword [edi]
test ecx, ecx
je 0x4512a4
mov eax, dword [ecx]
push 4
push ecx
call dword [eax + 0xc]
mov dword [esi + 0x40], 1
call fcn.00447870
test al, al
jne 0x4512e3
call fcn.004479f0
test al, al
jne 0x4512e3
call fcn.00447b70
test al, al
jne 0x4512e3
lea eax, [ebp - 0x21c]
push str.kpprcmd.dll
push eax
call fcn.00450b70
add esp, 8
lea eax, [ebp - 0x21c]
push eax
lea eax, [esi + 0x6c]
push eax
call fcn.0044ead0
lea ecx, [esi + 0x78]
call fcn.0045c5b0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046100d
mov esp, ebp
pop ebp
ret 4