Function at 0x412957
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x74]
mov eax, 0x16a0
call fcn.004196e0
push ebx
push esi
push edi
xor edi, edi
mov esi, 0x7fe
push esi
lea eax, [ebp - 0xe2a]
push edi
push eax
mov dword [ebp + 0x70], edi
mov word [ebp - 0xe2c], di
call sub.MSVCRT.dll_memset
push 0x206
lea eax, [ebp - 0x62a]
push edi
push eax
mov word [ebp - 0x62c], di
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x162a]
push edi
push eax
mov word [ebp - 0x162c], di
call sub.MSVCRT.dll_memset
push dword [ebp + 0x7c]
call fcn.00406343
xor ecx, ecx
add esp, 0x28
cmp word [eax], 0x40
mov dword [ebp + 0x7c], eax
sete cl
cmp ecx, edi
mov dword [ebp + 0x6c], ecx
je 0x4129d9
inc eax
inc eax
mov dword [ebp + 0x7c], eax
mov esi, dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp + 0x64]
push eax
push 0x402f40
mov ebx, 0x401f64
push ebx
mov edi, SysReAllocString
push edi
mov dword [ebp + 0x64], 1
mov dword [ebp + 0x68], 0x104
call esi
test eax, eax
je 0x412a85
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp + 0x64]
push eax
push 0x402f38
push ebx
push edi
call esi
test eax, eax
je 0x412a85
cmp dword [ebp + 0x6c], 0
jne 0x412a7d
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x50
lea eax, [ebp - 0x3c]
push eax
push 0x2715
push dword [0x41d42c]
call esi
push 0x50
lea eax, [ebp - 0xdc]
push eax
push 0x2716
push dword [0x41d42c]
call esi
push 0x10
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [0x41d428]
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
inc eax
jmp 0x412d09
push 0x400
lea eax, [ebp - 0xe2c]
push eax
lea eax, [ebp - 0x62c]
push eax
call fcn.00405386
lea eax, [ebp - 0xe2c]
push eax
call fcn.0040366a
add esp, 0x10
test eax, eax
je 0x412abb
lea eax, [ebp - 0xe2c]
mov dword [0x41c800], eax
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x50
lea eax, [ebp - 0x424]
push eax
push 0x2717
push dword [0x41d42c]
call edi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0xe2c]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x162c]
push eax
call esi
add esp, 0xc
push 0x402f28
push dword [ebp + 0x7c]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x412b97
push 0x50
lea eax, [ebp - 0x3c]
push eax
push 0x2718
push dword [0x41d42c]
call edi
push 0x50
lea eax, [ebp - 0xdc]
push eax
push 0x2719
push dword [0x41d42c]
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x162c]
push eax
call esi
cmp dword [ebp + 0x6c], 0
jne 0x412b74
push 0x24
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x162c]
push eax
push dword [0x41d428]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x412d06
push 0x402dac
lea eax, [ebp - 0xe2c]
push eax
call esi
lea eax, [ebp - 0xe2c]
push eax
call fcn.0040bf6b
pop ecx
mov dword [ebp + 0x70], eax
jmp 0x412d06
push 0x402f18
push dword [ebp + 0x7c]
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x412d06
push 0x50
lea eax, [ebp - 0x3c]
push eax
push 0x271a
push dword [0x41d42c]
call edi
push 0x50
lea eax, [ebp - 0xdc]
push eax
push 0x271b
push dword [0x41d42c]
call edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x162c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push 0x24
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x162c]
push eax
push dword [0x41d428]
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x412d06
push 0x50
lea eax, [ebp - 0x384]
push eax
push 0x271c
push dword [0x41d42c]
call edi
lea eax, [ebp - 0x384]
push eax
lea eax, [ebp - 0xe2c]
push 1
push eax
call fcn.0041258f
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [ebp + 0x7c], edi
je 0x412d06
push edi
call fcn.0040366a
test eax, eax
pop ecx
jne 0x412c59
push edi
call fcn.00403623
pop ecx
push edi
call fcn.0040366a
test eax, eax
pop ecx
je 0x412d06
push edi
push ebx
mov edi, 0x401ed4
push edi
lea eax, [ebp - 0x2e4]
push 0x402efc
push eax
call esi
lea eax, [ebp - 0x2e4]
push eax
call fcn.00406e58
push dword [ebp + 0x7c]
lea eax, [ebp - 0x2e4]
push ebx
push edi
push 0x402ee0
push eax
call esi
lea eax, [ebp - 0x2e4]
push eax
call fcn.00406e58
push dword [ebp + 0x7c]
lea eax, [ebp - 0x2e4]
push 0x402ed0
push eax
call esi
xor edi, edi
push edi
lea eax, [ebp - 0x2e4]
push 1
push eax
call fcn.004072b1
add esp, 0x48
push dword [ebp + 0x7c]
mov dword [ebp + 0x70], eax
lea eax, [ebp - 0x2e4]
push 0x402ec0
push eax
call esi
push edi
lea eax, [ebp - 0x2e4]
push 1
push eax
call fcn.004072b1
add dword [ebp + 0x70], eax
push edi
push edi
push 0x401e80
call fcn.004072b1
add esp, 0x24
add dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x70]
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret