Function at 0x40be50
Capabilities:
Contain obfuscated stackstrings
Query or enumerate registry value
Set registry value

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x2b8
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
mov dword [ebp - 0x248], 0x6f0053
mov dword [ebp - 0x244], 0x740066
mov edx, dword [ecx + 8]
xor ecx, ecx
mov dword [ebp - 0x240], 0x610077
mov dword [ebp - 0x23c], 0x650072
mov dword [ebp - 0x238], 0x4d005c
mov dword [ebp - 0x234], 0x630069
mov dword [ebp - 0x230], 0x6f0072
mov dword [ebp - 0x22c], 0x6f0073
mov dword [ebp - 0x228], 0x740066
mov dword [ebp - 0x224], 0x4f005c
mov dword [ebp - 0x220], 0x45004c
mov dword [ebp - 0x21c], 0x5c
mov dword [ebp - 0x286], 0x6e0045
mov dword [ebp - 0x282], 0x620061
mov dword [ebp - 0x27e], 0x65006c
mov dword [ebp - 0x27a], 0x430044
mov dword [ebp - 0x276], 0x4d004f
mov word [ebp - 0x272], cx
mov dword [ebp - 0x270], 0x6e0045
mov dword [ebp - 0x26c], 0x620061
mov dword [ebp - 0x268], 0x65006c
mov dword [ebp - 0x264], 0x650052
mov dword [ebp - 0x260], 0x6f006d
mov dword [ebp - 0x25c], 0x650074
mov dword [ebp - 0x258], 0x6f0043
mov dword [ebp - 0x254], 0x6e006e
mov dword [ebp - 0x250], 0x630065
mov dword [ebp - 0x24c], 0x74
mov dword [ebp - 0x28e], 0x59
mov dword [ebp - 0x28a], 0x4e
cmp eax, 0x110
je 0x40bfd0
cmp eax, 0x111
jne 0x40bfbe
movzx eax, dx
cmp dx, 1
je 0x40c160
cmp eax, 2
je 0x40c130
lea esp, [ebp - 0x10]
xor eax, eax
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
lea edi, [ebp - 0x298]
lea esi, [ebp - 0x248]
mov dword [esp], 0x80000002
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
test eax, eax
jne 0x40c2a0
mov eax, dword [ebp - 0x298]
lea edx, [ebp - 0x286]
lea edi, [ebp - 0x294]
mov dword [ebp - 0x294], 0x200
lea esi, [ebp - 0x218]
mov dword [esp + 8], edx
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegGetValueW]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 4], 0
mov dword [ebp - 0x29c], eax
call eax
lea edx, [ebp - 0x286]
sub esp, 0x1c
test eax, eax
jne 0x40c318
mov edx, dword [sym.imp.user32.dll_CheckDlgButton]
xor eax, eax
cmp word [ebp - 0x218], 0x59
mov dword [esp], ebx
sete al
mov dword [esp + 4], 0x3f3
mov dword [ebp - 0x2a0], edx
mov dword [esp + 8], eax
call edx
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x294], 0x200
sub esp, 0xc
mov dword [esp + 0x14], esi
lea esi, [ebp - 0x270]
mov dword [esp], eax
mov eax, dword [ebp - 0x29c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], esi
mov dword [esp + 4], 0
call eax
mov edx, dword [ebp - 0x2a0]
sub esp, 0x1c
test eax, eax
jne 0x40c2c0
xor eax, eax
cmp word [ebp - 0x218], 0x59
mov dword [esp], ebx
sete al
mov dword [esp + 4], 0x3f4
mov dword [esp + 8], eax
call edx
mov eax, dword [ebp - 0x298]
sub esp, 0xc
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, 1
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
mov dword [esp], ebx
mov dword [esp + 4], 2
call dword [sym.imp.user32.dll_EndDialog]
mov eax, 1
sub esp, 8
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
lea eax, [ebp - 0x298]
mov dword [esp], 0x80000002
lea esi, [ebp - 0x28e]
mov dword [esp + 8], eax
lea eax, [ebp - 0x248]
mov dword [ebp - 0x294], 4
mov dword [esp + 4], eax
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov ecx, dword [sym.imp.user32.dll_IsDlgButtonChecked]
mov edi, dword [ebp - 0x294]
sub esp, 0xc
mov dword [ebp - 0x2a0], ecx
mov dword [esp], ebx
mov dword [esp + 4], 0x3f3
call ecx
lea edx, [ebp - 0x28a]
sub esp, 8
cmp eax, 1
mov eax, edx
cmove eax, esi
mov dword [esp + 0x14], edi
mov edi, dword [sym.imp.advapi32.dll_RegSetValueExW]
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x286]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x298]
mov dword [esp + 8], 0
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x2a0]
sub esp, 0x18
mov dword [ebp - 0x29c], eax
mov dword [esp], ebx
mov dword [esp + 4], 0x3f4
call ecx
lea edx, [ebp - 0x28a]
sub esp, 8
cmp eax, 1
mov eax, dword [ebp - 0x29c]
cmove edx, esi
mov dword [esp + 0xc], 1
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x270]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x298]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 4], 1
call dword [sym.imp.user32.dll_EndDialog]
mov eax, 1
sub esp, 8
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegCreateKeyW]
sub esp, 0xc
jmp 0x40bffc
lea eax, [ebp - 0x28e]
mov dword [ebp - 0x29c], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x294], 4
mov dword [esp + 0x14], 4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
mov edx, dword [ebp - 0x29c]
sub esp, 0x18
jmp 0x40c0e6
lea eax, [ebp - 0x28e]
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x294], 4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
sub esp, 0x18
jmp 0x40c063