Function at 0x40304a
Capabilities:
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
mov esi, 0x6f
mov edi, 0x66
sub esp, 0x2b8
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
mov edx, dword [ecx + 8]
mov ecx, 0x53
mov word [ebp - 0x246], si
mov word [ebp - 0x248], cx
mov esi, 0x77
mov ecx, 0x74
mov word [ebp - 0x244], di
mov word [ebp - 0x242], cx
mov edi, 0x61
mov word [ebp - 0x240], si
mov ecx, 0x72
mov esi, 0x65
mov word [ebp - 0x23e], di
mov word [ebp - 0x23c], cx
mov edi, 0x5c
mov word [ebp - 0x23a], si
mov ecx, 0x4d
mov esi, 0x69
mov word [ebp - 0x238], di
mov word [ebp - 0x236], cx
mov edi, 0x63
mov word [ebp - 0x234], si
mov ecx, 0x72
mov esi, 0x6f
mov word [ebp - 0x232], di
mov word [ebp - 0x230], cx
mov edi, 0x73
mov word [ebp - 0x22e], si
mov ecx, 0x6f
mov esi, 0x66
mov word [ebp - 0x22c], di
mov word [ebp - 0x22a], cx
mov edi, 0x74
mov word [ebp - 0x228], si
mov ecx, 0x5c
mov esi, 0x4f
mov word [ebp - 0x226], di
mov word [ebp - 0x224], cx
mov edi, 0x4c
mov word [ebp - 0x222], si
mov ecx, 0x45
mov esi, 0x5c
mov word [ebp - 0x220], di
mov word [ebp - 0x21e], cx
xor edi, edi
mov word [ebp - 0x21c], si
mov ecx, 0x45
mov esi, 0x6e
mov word [ebp - 0x21a], di
mov word [ebp - 0x286], cx
mov edi, 0x61
mov word [ebp - 0x284], si
mov ecx, 0x62
mov esi, 0x6c
mov word [ebp - 0x282], di
mov word [ebp - 0x280], cx
mov edi, 0x65
mov word [ebp - 0x27e], si
mov ecx, 0x44
mov esi, 0x43
mov word [ebp - 0x27c], di
mov word [ebp - 0x27a], cx
mov edi, 0x4f
mov word [ebp - 0x278], si
mov ecx, 0x4d
xor esi, esi
mov word [ebp - 0x276], di
mov word [ebp - 0x274], cx
mov edi, 0x45
mov word [ebp - 0x272], si
mov ecx, 0x6e
mov esi, 0x61
mov word [ebp - 0x270], di
mov word [ebp - 0x26e], cx
mov edi, 0x62
mov word [ebp - 0x26c], si
mov ecx, 0x6c
mov esi, 0x65
mov word [ebp - 0x26a], di
mov word [ebp - 0x268], cx
mov edi, 0x52
mov word [ebp - 0x266], si
mov ecx, 0x65
mov esi, 0x6d
mov word [ebp - 0x264], di
mov word [ebp - 0x262], cx
mov edi, 0x6f
mov word [ebp - 0x260], si
mov ecx, 0x74
mov esi, 0x65
mov word [ebp - 0x25e], di
mov word [ebp - 0x25c], cx
mov edi, 0x43
mov word [ebp - 0x25a], si
mov ecx, 0x6f
mov esi, 0x6e
mov word [ebp - 0x258], di
mov word [ebp - 0x256], cx
mov edi, 0x6e
mov word [ebp - 0x254], si
mov ecx, 0x65
mov esi, 0x63
mov word [ebp - 0x252], di
mov word [ebp - 0x250], cx
mov edi, 0x74
xor ecx, ecx
mov word [ebp - 0x24e], si
mov esi, 0x59
mov word [ebp - 0x24c], di
mov word [ebp - 0x24a], cx
xor edi, edi
mov word [ebp - 0x28e], si
mov ecx, 0x4e
xor esi, esi
cmp eax, 0x110
mov word [ebp - 0x28c], di
mov word [ebp - 0x28a], cx
mov word [ebp - 0x288], si
je 0x403350
cmp eax, 0x111
jne 0x403337
movzx edx, dx
cmp edx, 1
je 0x403520
cmp edx, 2
je 0x4034f0
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 0x4036b0
mov eax, dword [ebp - 0x298]
lea edx, [ebp - 0x286]
lea edi, [ebp - 0x294]
lea esi, [ebp - 0x218]
mov dword [ebp - 0x294], 0x200
mov dword [esp + 0x10], 0
mov dword [esp + 8], edx
mov dword [ebp - 0x29c], 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 + 0xc], 2
mov dword [esp + 4], 0
mov dword [ebp - 0x2a0], eax
call eax
sub esp, 0x1c
test eax, eax
mov edx, dword [ebp - 0x29c]
jne 0x403660
xor eax, eax
cmp word [ebp - 0x218], 0x59
mov dword [esp + 4], 0x3f3
mov dword [esp], ebx
sete al
mov dword [esp + 8], eax
mov eax, dword [sym.imp.user32.dll_CheckDlgButton]
mov dword [ebp - 0x29c], eax
call eax
mov eax, dword [ebp - 0x298]
sub esp, 0xc
mov dword [ebp - 0x294], 0x200
mov dword [esp + 0x14], esi
lea esi, [ebp - 0x270]
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
mov dword [esp], eax
call dword [ebp - 0x2a0]
sub esp, 0x1c
test eax, eax
je 0x4034a1
lea eax, [ebp - 0x28e]
mov dword [ebp - 0x294], 4
mov dword [esp + 0x14], 4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x298]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
sub esp, 0x18
xor eax, eax
cmp word [ebp - 0x218], 0x59
mov dword [esp], ebx
mov dword [esp + 4], 0x3f4
sete al
mov dword [esp + 8], eax
call dword [ebp - 0x29c]
mov eax, dword [ebp - 0x298]
sub esp, 0xc
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
lea esp, [ebp - 0x10]
mov eax, 1
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]
sub esp, 8
lea esp, [ebp - 0x10]
mov eax, 1
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
lea eax, [ebp - 0x298]
mov dword [ebp - 0x294], 4
mov dword [esp], 0x80000002
lea esi, [ebp - 0x28e]
mov dword [esp + 8], eax
lea eax, [ebp - 0x248]
mov dword [esp + 4], eax
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov ecx, dword [sym.imp.user32.dll_IsDlgButtonChecked]
sub esp, 0xc
mov edi, dword [ebp - 0x294]
mov dword [esp], ebx
mov dword [esp + 4], 0x3f3
mov dword [ebp - 0x2a4], ecx
call ecx
lea edx, [ebp - 0x28a]
sub esp, 8
cmp eax, 1
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], 1
mov eax, edx
mov dword [ebp - 0x2a0], edx
mov edi, dword [sym.imp.advapi32.dll_RegSetValueExW]
cmove eax, esi
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x286]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x298]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x294]
sub esp, 0x18
mov ecx, dword [ebp - 0x2a4]
mov dword [esp], ebx
mov dword [esp + 4], 0x3f4
mov dword [ebp - 0x29c], eax
call ecx
sub esp, 8
cmp eax, 1
mov eax, dword [ebp - 0x29c]
mov edx, dword [ebp - 0x2a0]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x270]
cmovne esi, edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x298]
mov dword [esp + 0x10], esi
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]
sub esp, 8
lea esp, [ebp - 0x10]
mov eax, 1
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
lea eax, [ebp - 0x28e]
mov dword [ebp - 0x294], 4
mov dword [esp + 0x14], 4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x298]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
sub esp, 0x18
jmp 0x4033e9
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 0x40337c