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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x289c
call fcn.0041a3e0
mov eax, dword [0x41b014]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x2814], 0
and dword [ebp - 0x281c], 0
push ebx
mov ebx, dword [edx]
push esi
push edi
push 0x14
mov esi, ecx
mov dword [ebp - 0x2820], ebx
mov edi, 0x200
call fcn.0040b7bc
mov dword [0x41b0a4], eax
pop ecx
test eax, eax
jne 0x405b59
xor eax, eax
jmp 0x4060d2
push 0x1b
call fcn.0040b7bc
mov dword [0x41b0a8], eax
pop ecx
test eax, eax
je 0x405b52
push 0x16
call fcn.0040b7bc
mov dword [0x41b0ac], eax
pop ecx
test eax, eax
je 0x405b52
push 0x19
call fcn.0040b7bc
mov dword [0x41b0b0], eax
pop ecx
test eax, eax
je 0x405b52
push 0x1a
call fcn.0040b7bc
mov dword [0x41b0b4], eax
pop ecx
test eax, eax
je 0x405b52
push 0x15
call fcn.0040b7bc
mov dword [0x41b0b8], eax
pop ecx
test eax, eax
je 0x405b52
push 0x17
call fcn.0040b7bc
mov dword [0x41b0bc], eax
pop ecx
test eax, eax
je 0x405b52
push 0x18
call fcn.0040b7bc
mov dword [0x41b0c0], eax
pop ecx
test eax, eax
je 0x405b52
push 0x137
call fcn.0040b7bc
mov dword [0x41b0c4], eax
pop ecx
test eax, eax
je 0x405b52
push esi
call dword [sym.imp.USER32.dll_GetDpiForWindow]
mov word [0x41b0ec], ax
lea eax, [ebp - 0x281c]
push eax
call dword [sym.imp.USER32.dll_GetProcessDefaultLayout]
test eax, eax
je 0x405c14
test byte [ebp - 0x281c], 1
je 0x405c14
mov edi, 0x2200
xor eax, eax
push eax
push dword [0x41be1c]
push 1
push esi
push eax
push eax
push eax
push eax
push 0x5001003f
push eax
push 0x401794
push edi
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x41b080], eax
test eax, eax
je 0x405b52
push 0
push 0x4017b0
push eax
call dword [sym.imp.UxTheme.dll_SetWindowTheme]
push 4
push 4
push 0x112c
push dword [0x41b080]
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
push eax
push dword [0x41be1c]
push 2
push esi
push eax
push eax
push eax
push eax
push 0x52018a41
push eax
push 0x4017c4
push edi
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x41b084], eax
test eax, eax
je 0x405b52
mov ecx, 0x4000
push ecx
push ecx
push 0x1036
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
push eax
push dword [0x41be1c]
push eax
push esi
push eax
push eax
push eax
push eax
push 0x50010080
push eax
push 0x4017e0
push edi
call dword [sym.imp.USER32.dll_CreateWindowExW]
xor edi, edi
mov dword [0x41b088], eax
push edi
push edi
push 0x4059b0
push eax
call dword [sym.imp.COMCTL32.dll_SetWindowSubclass]
push 1
push dword [0x41b088]
call dword [sym.imp.COMCTL32.dll_Ordinal_384]
mov ecx, esi
call fcn.0040594f
mov ecx, dword [0x41b088]
test ecx, ecx
je 0x405b52
mov eax, dword [ebx + 0x3c]
and al, 1
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
push eax
push ecx
mov dword [0x41b0a0], eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, esi
call fcn.00407ba9
test eax, eax
je 0x405b52
call fcn.00407caa
push 0x44
lea eax, [ebp - 0x2898]
push edi
push eax
call sub.msvcrt.dll_memset
push 0x13
mov dword [ebp - 0x2898], 0xffff0000
mov dword [ebp - 0x2894], 0xffff0002
mov dword [ebp - 0x2890], 0x67
mov dword [ebp - 0x2878], edi
mov dword [ebp - 0x2874], edi
mov dword [ebp - 0x2870], 1
mov dword [ebp - 0x286c], edi
call fcn.0040b7bc
add esp, 0x10
mov dword [ebp - 0x2880], eax
lea eax, [ebp - 0x2898]
push eax
push edi
push 0x1132
push dword [0x41b080]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x2880]
mov dword [ebp - 0x2898], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x2878], 2
mov ebx, edi
mov dword [ebp - 0x2874], 3
cmp ebx, 5
je 0x405e22
mov eax, dword [edi + 0x401260]
lea ecx, [ebp - 0x808]
push 0x400
push ecx
mov dword [ebp - 0x2880], eax
mov eax, dword [edi + 0x401264]
push 0
push eax
mov dword [ebp - 0x286c], eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x2870], eax
lea eax, [ebp - 0x2898]
push eax
push 0
push 0x1132
push dword [0x41b080]
call dword [sym.imp.USER32.dll_SendMessageW]
add edi, 0xc
inc ebx
cmp edi, 0x3c
jb 0x405dcb
push dword [ebp - 0x2898]
push 2
push 0x1102
push dword [0x41b080]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x2898]
push 9
push 0x110b
push dword [0x41b080]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, dword [ebp - 0x2820]
mov eax, dword [0x41b080]
and dword [0x41b09c], 0
mov dword [0x41b08c], eax
mov eax, dword [ebx + 0x2c]
mov dword [0x41b090], eax
mov dword [ebp - 0x284c], 6
mov ecx, dword [ebx + 0x30]
call fcn.00404e00
push 0x11
mov dword [ebp - 0x2844], eax
call fcn.0040b7bc
pop ecx
mov dword [ebp - 0x2840], eax
mov edi, 0x1061
lea eax, [ebp - 0x284c]
push eax
push 0
push edi
push dword [0x41b084]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x2840]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebx + 0x34]
call fcn.00404e00
push 0x1f
mov dword [ebp - 0x2844], eax
call fcn.0040b7bc
pop ecx
mov dword [ebp - 0x2840], eax
lea eax, [ebp - 0x284c]
push eax
push 1
push edi
push dword [0x41b084]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x2840]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [ebx + 0x38]
call fcn.00404e00
push 0x12
mov dword [ebp - 0x2844], eax
call fcn.0040b7bc
pop ecx
mov dword [ebp - 0x2840], eax
lea eax, [ebp - 0x284c]
push eax
push 2
push edi
push dword [0x41b084]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x2840]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x54
xor ebx, ebx
push ebx
push 0x45ce88
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
call dword [sym.imp.USER32.dll_GetMenu]
push 0x3f
mov dword [0x41b0cc], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
xor esi, esi
inc esi
and eax, esi
mov dword [0x41b0d4], eax
jne 0x405fb0
push ebx
push dword [0x41b0cc]
call dword [sym.imp.USER32.dll_GetSubMenu]
push ebx
mov esi, eax
push 0x291
push esi
call dword [sym.imp.USER32.dll_DeleteMenu]
push ebx
push 0x300
push esi
call dword [sym.imp.USER32.dll_DeleteMenu]
push ebx
push 0x2a1
push esi
call dword [sym.imp.USER32.dll_DeleteMenu]
xor esi, esi
inc esi
push ebx
push 9
push 0x110a
push dword [0x41b080]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [0x41b0dc], eax
lea eax, [ebp - 0x2818]
push eax
push 0x4018d8
push MenuHelp
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4060d0
lea eax, [ebp - 0x280c]
mov dword [ebp - 0x280c], 0x2000
push eax
lea eax, [ebp - 0x2808]
push eax
lea eax, [ebp - 0x2810]
push eax
push ebx
push 0x4018c8
push dword [ebp - 0x2818]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x406056
lea eax, [ebp - 0x280c]
push eax
lea edx, [ebp - 0x2808]
lea ecx, [ebp - 0x2810]
call fcn.0040bd9d
test eax, eax
jne 0x406056
cmp dword [ebp - 0x2810], esi
jne 0x406056
cmp dword [ebp - 0x280c], ebx
jbe 0x406056
mov edx, esi
lea ecx, [ebp - 0x2808]
call fcn.00405209
push 4
pop edi
lea eax, [ebp - 0x280c]
mov dword [ebp - 0x280c], edi
push eax
lea eax, [ebp - 0x2814]
push eax
lea eax, [ebp - 0x2810]
push eax
push ebx
push 0x401960
push dword [ebp - 0x2818]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4060c4
lea eax, [ebp - 0x280c]
push eax
lea edx, [ebp - 0x2814]
lea ecx, [ebp - 0x2810]
call fcn.0040bd9d
test eax, eax
jne 0x4060c4
cmp dword [ebp - 0x2810], edi
jne 0x4060c4
cmp dword [ebp - 0x280c], ebx
jbe 0x4060c4
cmp dword [ebp - 0x2814], ebx
je 0x4060c4
mov dword [0x45da10], esi
push dword [ebp - 0x2818]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00419cc0
mov esp, ebp
pop ebp
ret