Function at 0x405c40
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov eax, 0x20
mov edx, 0x28
mov ecx, 0x25
mov ebp, esp
push edi
push esi
push ebx
mov ebx, 0x73
mov esi, 0x20
mov edi, 0x25
sub esp, 0xabc
mov word [ebp - 0xa6e], ax
mov eax, 0x73
mov word [ebp - 0xa62], ax
mov eax, 0x29
mov word [ebp - 0xa6c], dx
mov word [ebp - 0xa60], ax
xor eax, eax
mov word [ebp - 0xa6a], cx
mov word [ebp - 0xa5e], ax
mov eax, 0x25
mov word [ebp - 0xa68], bx
mov word [ebp - 0xa7a], ax
mov eax, 0x73
mov edx, 0x25
mov word [ebp - 0xa78], ax
mov eax, 0x5c
mov ecx, 0x73
mov word [ebp - 0xa76], ax
mov eax, dword [0x41a718]
xor ebx, ebx
mov word [ebp - 0xa66], si
mov word [ebp - 0xa64], di
mov word [ebp - 0xa74], dx
mov word [ebp - 0xa72], cx
mov dword [ebp - 0xa5c], eax
lea eax, [ebp - 0xa90]
mov word [ebp - 0xa70], bx
mov dword [ebp - 0xa54], 5
mov dword [ebp - 0xa40], 0x100
mov dword [esp + 8], eax
mov eax, dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov dword [ebp - 0xa58], 0xffff0001
mov dword [esp + 4], str.TypeLib_
mov dword [esp], 0x80000000
mov dword [ebp - 0xa9c], eax
call eax
sub esp, 0xc
test eax, eax
jne 0x40608c
lea edi, [ebp - 0xa88]
mov dword [ebp - 0xaa4], 0xffffffff
add dword [ebp - 0xaa4], 1
lea edx, [ebp - 0x818]
mov dword [esp + 0xc], 0x100
mov eax, dword [ebp - 0xaa4]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa90]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumKeyW]
sub esp, 0x10
test eax, eax
jne 0x406050
lea eax, [ebp - 0xa8c]
mov dword [esp + 8], eax
lea eax, [ebp - 0x818]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa90]
mov dword [esp], eax
call dword [ebp - 0xa9c]
sub esp, 0xc
test eax, eax
jne 0x405d64
lea ebx, [ebp - 0xa18]
mov esi, 0xffffffff
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp - 0xa8c]
add esi, 1
mov dword [esp + 0xc], 0x100
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumKeyW]
sub esp, 0x10
test eax, eax
jne 0x405f35
mov eax, dword [ebp - 0xa8c]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [ebp - 0xa9c]
sub esp, 0xc
test eax, eax
jne 0x405de0
lea eax, [ebp - 0xa80]
mov dword [ebp - 0xa80], 0x200
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x618]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa88]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegQueryValueW]
mov dword [ebp - 0xab0], eax
call eax
sub esp, 0x10
test eax, eax
jne 0x405e7c
cmp word [ebp - 0x618], 0
jne 0x405f50
lea eax, [ebp - 0x418]
mov dword [ebp - 0xa44], ebx
mov dword [ebp - 0xaa0], eax
mov eax, dword [sym.imp.user32.dll_wsprintfW]
mov dword [ebp - 0xaac], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0xaa8], eax
mov eax, dword [ebp - 0xa88]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
lea eax, [ebp - 0x818]
sub esp, 4
mov ecx, dword [ebp - 0xaac]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
lea eax, [ebp - 0xa7a]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xaa0]
mov dword [esp], eax
call ecx
mov ecx, dword [ebp - 0xaa8]
mov edx, dword [ebp - 0xaa0]
mov eax, 2
mov dword [esp], ecx
lea ecx, [ebp - 0x818]
call dbg.CreateITEM_INFO
mov dword [ebp - 0xa30], eax
lea eax, [ebp - 0xa5c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1132
mov dword [esp + 0xc], eax
mov eax, dword [0x41a4d0]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp 0x405de0
mov eax, dword [ebp - 0xa8c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x405d64
lea eax, [ebp - 0x418]
mov dword [esp + 0xc], 0x100
mov dword [esp + 4], 0xdd
mov dword [ebp - 0xaa0], eax
mov dword [esp + 8], eax
mov eax, dword [0x41a4dc]
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
sub esp, 0x10
cmp word [ebp - 0x618], 0
lea eax, [ebp - 0x618]
je 0x405f9a
add eax, 2
cmp word [eax], 0
jne 0x405f91
mov edx, dword [ebp - 0xaa0]
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_wsprintfW]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
lea edx, [ebp - 0xa6e]
mov dword [ebp - 0xaac], eax
mov dword [esp + 4], edx
call eax
lea eax, [ebp - 0x618]
mov dword [ebp - 0xa80], 0x100
mov dword [esp + 4], str.0win32
mov dword [ebp - 0xa44], eax
lea eax, [ebp - 0xa84]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa88]
mov dword [esp], eax
call dword [ebp - 0xa9c]
lea eax, [ebp - 0xa80]
sub esp, 0xc
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0xaa8], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xa84]
mov dword [esp], eax
call dword [ebp - 0xab0]
mov eax, dword [ebp - 0xa84]
sub esp, 0x10
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
jmp 0x405ea5
mov eax, dword [ebp - 0xa90]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, dword [0x41a718]
sub esp, 4
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1113
mov dword [esp + 0xc], eax
mov eax, dword [0x41a4d0]
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret