Function at 0x406a09
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x428], eax
push 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x42c], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x428]
imul eax, eax, 0xd
cdq
mov ecx, 0xf
idiv ecx
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x3f4], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x42c]
imul eax, eax, 0xc
cdq
mov ecx, 0xe
idiv ecx
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x3f8], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x428]
cdq
mov ecx, 0x64
idiv ecx
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x3fc], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x428]
cdq
mov ecx, 0x64
idiv ecx
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x400], eax
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x430], 6
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebp - 0x24]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push 0x41472c
push Ordinal_4
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406bad
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
lea eax, [ebp - 0x40]
push eax
push 0
push 0
push 0
push 0x414744
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406b6e
lea edx, [ebp - 0x40]
push edx
lea eax, [ebp - 0x3c]
push eax
push 0
push 0
push 0x414754
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x3c]
mov dword [edx + 0x3f0], eax
jmp 0x406ba3
cmp dword [ebp - 0x34], 2
jne 0x406ba3
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x3f0], 0
push 4
mov edx, dword [ebp - 0x54]
add edx, 0x3f0
push edx
push 4
push 0
push 0x414764
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x38]
push edx
lea eax, [ebp - 0x24]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push 0x414774
push Ordinal_4
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406f81
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x48]
push ecx
push 0
push 0
push 0
push 0x41478c
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406c3b
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x44]
push ecx
push 0
push 0
push 0x41479c
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x3f0], ecx
jmp 0x406c63
cmp dword [ebp - 0x34], 2
jne 0x406c63
push 4
mov edx, dword [ebp - 0x54]
add edx, 0x3f0
push edx
push 4
push 0
push 0x4147ac
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0x44]
push edx
push 0
push 0
push 0x4147bc
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406c94
mov dword [ebp - 0x2c], 1
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x10], ecx
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x44]
push eax
push 0
push 0
push 0x4147c8
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406cc5
mov dword [ebp - 0xc], 1
mov edx, dword [ebp - 0x44]
mov dword [ebp - 8], edx
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x44]
push ecx
push 0
push 0
push 0x4147d4
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406cf6
mov dword [ebp - 0x28], 1
mov eax, dword [ebp - 0x44]
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0x44]
push edx
push 0
push 0
push 0x4147e0
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406d27
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], ecx
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x44]
push eax
push 0
push 0
push str.ButtonSize
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x406d75
cmp dword [ebp - 0x44], 0xc
jbe 0x406d60
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x430], 0xc
jmp 0x406d6c
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x430], ecx
mov dword [ebp - 0x30], 1
jmp 0x406d82
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x430], 6
cmp dword [ebp - 0x2c], 0
je 0x406f2a
cmp dword [ebp - 0xc], 0
je 0x406f2a
cmp dword [ebp - 0x28], 0
je 0x406f2a
cmp dword [ebp - 0x14], 0
je 0x406f2a
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x4c], eax
push 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x4c]
jg 0x406ef0
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0x4c]
jg 0x406ef0
mov edx, dword [ebp - 8]
cmp edx, dword [ebp - 0x50]
jg 0x406ef0
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x50]
jg 0x406ef0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x3fc]
imul eax, dword [edx + 0x430]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x428]
sub eax, 0x1e
cmp ecx, eax
jle 0x406e4a
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 0x428]
sub edx, 0x1e
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax + 0x3fc]
imul eax, dword [ecx + 0x430]
sub edx, eax
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x3f4], edx
jmp 0x406e56
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x10]
mov dword [edx + 0x3f4], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x3fc]
imul eax, dword [edx + 0x430]
mov ecx, dword [ebp - 8]
add ecx, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x42c]
sub eax, 0x1e
cmp ecx, eax
jle 0x406eaa
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 0x42c]
sub edx, 0x1e
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov eax, dword [eax + 0x3fc]
imul eax, dword [ecx + 0x430]
sub edx, eax
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x3f8], edx
jmp 0x406eb6
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 8]
mov dword [edx + 0x3f8], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x3fc]
imul eax, dword [edx + 0x430]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x3fc], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov ecx, dword [edx + 0x3fc]
imul ecx, dword [eax + 0x430]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x400], ecx
jmp 0x406f28
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov edx, dword [eax + 0x3fc]
imul edx, dword [ecx + 0x430]
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x3fc], edx
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x3fc]
imul eax, dword [edx + 0x430]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x400], eax
jmp 0x406f75
cmp dword [ebp - 0x30], 0
jne 0x406f3d
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x430], 6
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
mov edx, dword [eax + 0x3fc]
imul edx, dword [ecx + 0x430]
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x3fc], edx
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x3fc]
imul eax, dword [edx + 0x430]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x400], eax
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x406fc6
mov eax, dword [ebp - 0x54]
mov dword [eax + 0x430], 6
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x3fc]
imul eax, dword [edx + 0x430]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x3fc], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
mov ecx, dword [edx + 0x3fc]
imul ecx, dword [eax + 0x430]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x400], ecx
mov esp, ebp
pop ebp
ret