Function at 0x404e60
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x5f0
mov eax, dword [0x447170]
xor eax, esp
mov dword [esp + 0x5ec], eax
push ebx
push ebp
mov ebp, dword [esp + 0x5fc]
mov ebx, ecx
push ebp
push str.Loading__S
push 3
push 0x135
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
push ebp
lea eax, [ebx + 8]
push 0x104
push eax
call fcn.0040f8b3
xor eax, eax
push 0x1fe
push eax
mov word [esp + 0x320], ax
lea eax, [esp + 0x322]
push eax
call fcn.0040e4b0
push 0
push 0
push 0x100
lea eax, [esp + 0x330]
push eax
push 0
push 0
push 0
push 0
push ebp
call fcn.0040e9a2
add esp, 0x54
cmp word [esp + 0x2f4], 0x5f
setne al
mov byte [ebx + 0x210], al
test al, al
jne 0x404f2c
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
shr eax, 2
test al, 1
je 0x404f2c
push ebp
push str.Safe_mode:_skip_optional_plugin__S
push 2
push 0x140
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x18
xor al, al
jmp 0x405317
push esi
push edi
mov ecx, 0x15
lea edi, [esp + 0x2c]
mov esi, str.SOFTWARENVIDIA_CorporationNvContainer_s
lea eax, [esp + 0x2fc]
rep movsd dword es:[edi], dword [esi]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x504]
movsw word es:[edi], word [esi]
push 0x80
push eax
call fcn.00406bd0
add esp, 0x10
mov dword [esp + 0x20], 0
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 4
push eax
lea eax, [esp + 0x24]
push eax
push 0
push 0x10
push str.DisableLoad
lea eax, [esp + 0x510]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x404fea
cmp dword [esp + 0x20], eax
je 0x404fea
push ebp
push str.Disable_loading_of_plugin__S
push 2
push 0x153
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
lea eax, [esp + 0x314]
mov dword [ebx + 0x280], 3
push eax
push 0x43cc0c
lea eax, [ebx + 0x23c]
push 0xffffffffffffffff
push eax
call fcn.00404780
add esp, 0x28
mov al, 1
jmp 0x405315
mov ecx, 0x1b
lea edi, [esp + 0x84]
mov esi, str.SOFTWARENVIDIA_CorporationNvContainerDllDirectories
xor eax, eax
rep movsd dword es:[edi], dword [esi]
push 0x206
push eax
mov word [esp + 0xfc], ax
lea eax, [esp + 0xfe]
push eax
movsw word es:[edi], word [esi]
call fcn.0040e4b0
add esp, 0xc
mov dword [esp + 0x14], 0x208
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xf8]
push eax
push 0
push 2
lea eax, [esp + 0x30c]
push eax
lea eax, [esp + 0x98]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4050d2
cmp word [esp + 0xf4], 0
je 0x4050d2
lea eax, [esp + 0xf4]
push eax
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
test eax, eax
je 0x405090
lea eax, [esp + 0xf4]
push eax
push str.Add_DLL_directory__S_to_the_search_path
push 3
push 0x16c
jmp 0x4050df
call esi
push eax
lea eax, [esp + 0xf8]
push eax
push str.Failed_to_add_DLL_directory__S_to_the_search_path._Error__lu
push 1
push 0x174
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x1c
call esi
push eax
lea eax, [esp + 0xf8]
push eax
push str.Failed_to_add_DLL_directory__S_to_the_search_path._Error__lu
push 0xd
call fcn.00403680
add esp, 0x10
jmp 0x4050ee
push eax
push str.Use_default_DLL_search_path__result__ld_
push 4
push 0x179
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x18
cmp dword [ebx + 0x294], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
je 0x405118
lea eax, [esp + 0x24]
push eax
call edi
mov ecx, dword [ebx + 0x294]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x48], eax
mov dword [ecx + 0x4c], edx
push ebp
mov ecx, ebx
call fcn.00405610
push 0
mov byte [esp + 0x17], al
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
cmp byte [esp + 0x13], 0
jne 0x40516c
call esi
push eax
push ebp
push str.Failed_to_load_library__S._Error__lu
push 1
push 0x187
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x1c
call esi
push eax
push ebp
push str.Failed_to_load_library__S._Error__lu
push 0x1e
call fcn.00403680
add esp, 0x10
xor al, al
jmp 0x405315
cmp dword [ebx + 0x294], 0
je 0x4051d5
lea eax, [esp + 0x18]
push eax
call edi
mov esi, dword [ebx + 0x294]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push 0
sub ecx, dword [esi + 0x48]
mov edx, dword [esi]
sbb eax, dword [esi + 0x4c]
push 0xa
push eax
push ecx
mov dword [esp + 0x34], edx
call fcn.0040f6c0
cmp dword [esp + 0x24], eax
jbe 0x4051ad
mov eax, dword [esp + 0x24]
jmp 0x4051d3
lea eax, [esp + 0x18]
push eax
call edi
mov esi, dword [ebx + 0x294]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push 0
sub ecx, dword [esi + 0x48]
push 0xa
sbb eax, dword [esi + 0x4c]
push eax
push ecx
call fcn.0040f6c0
mov dword [esi], eax
push ebp
push str.Loaded__S
push 3
push 0x18c
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x18
push str.NvPluginGetInfo
push dword [ebx + 0x214]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
push ebp
test esi, esi
jne 0x405229
push str.NvPluginGetInfo_is_not_exported_by__S
push 2
push 0x192
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x18
jmp 0x405305
push str.Query_plugin_information_for__S
push 4
push 0x197
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
add esp, 0x18
call esi
test eax, eax
je 0x4052dc
cmp dword [eax], 0
je 0x4052dc
movdqu xmm0, xmmword [eax]
lea esi, [ebx + 0x23c]
movdqu xmmword [ebx + 0x218], xmm0
movdqu xmm0, xmmword [eax + 0x10]
movdqu xmmword [ebx + 0x228], xmm0
mov eax, dword [eax + 0x20]
mov dword [ebx + 0x238], eax
push dword [ebx + 0x21c]
push 0x40
push esi
call fcn.0040f7f2
push dword [ebx + 0x218]
cmp byte [ebx + 0x210], 0
mov ecx, str.optional
push esi
mov eax, str.mandatory
cmove eax, ecx
push eax
push str.Loaded__s_plugin__s__version__u
push 3
push 0x1b3
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
mov eax, dword [ebx + 0x280]
add esp, 0x2c
mov dword [ebx + 0x284], eax
mov dword [ebx + 0x280], 1
jmp 0x405311
push ebp
push str.NvPluginGetInfo_for__S_returned_invalid_plugin_descriptor
push 1
push 0x1a1
push str.C:dvsp4_build_swgcompdev_srcNvContainercontainerNvcPluginManager.cpp
push dword [ebx]
call fcn.0040d470
push ebp
push str.NvPluginGetInfo_for__S_returned_invalid_plugin_descriptor
push 0x24
call fcn.00403680
add esp, 0x24
mov ecx, ebx
mov byte [esp + 0x13], 0
call fcn.00406710
mov al, byte [esp + 0x13]
pop edi
pop esi
mov ecx, dword [esp + 0x5f4]
pop ebp
pop ebx
xor ecx, esp
call fcn.0040e49c
add esp, 0x5f0
ret 4