Function at 0x409a50
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 0xc]
sub esp, 8
mov eax, ecx
and eax, 0xffff
push esi
cmp eax, 0x78
push edi
jg 0x409bf3
je 0x409ade
add eax, 0xffffff9c
cmp eax, 4
ja case.default.0x409cfb
jmp dword [eax*4 + 0x409d64]
call fcn.00409180
pop edi
pop esi
add esp, 8
ret
call fcn.00409370
pop edi
pop esi
add esp, 8
ret
mov eax, dword [0x41a138]
push 0
push 0x803
push eax
call dword [0x41b0b4]
pop edi
pop esi
add esp, 8
ret
call fcn.00409560
push 1
push 0
call fcn.00407fd0
add esp, 8
pop edi
pop esi
add esp, 8
ret
mov ecx, dword [0x41a138]
push 0
push 0x805
push ecx
call dword [0x41b0b4]
pop edi
pop esi
add esp, 8
ret
mov edx, dword [esp + 0x14]
mov eax, dword [0x41b418]
mov esi, dword [0x41a820]
push 0
push 0x191
push edx
push eax
call section..text
mov eax, dword [0x41a820]
add esp, 0x10
cmp esi, eax
je 0x409b1b
mov ecx, dword [0x41a138]
push 0
push 0x806
push ecx
call dword [0x41b0b4]
mov eax, dword [0x41b634]
test eax, eax
je 0x409b8b
mov edx, dword [0x41ba10]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
neg eax
sbb eax, eax
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
and al, 0xc0
add eax, 0x80
or al, 0x20
push eax
push 0x37
call esi
push 4
mov edi, eax
call esi
mov ecx, dword [0x41ac68]
add edi, eax
mov eax, dword [0x41b630]
add eax, ecx
mov ecx, dword [0x41b408]
lea edx, [edi + eax - 0x13]
mov eax, dword [0x41ac64]
push edx
mov edx, dword [0x41ba14]
push eax
mov eax, dword [0x41ba10]
push ecx
push edx
push 0xffffffffffffffff
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
add esp, 8
ret
mov ecx, dword [0x41ba10]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
neg eax
sbb eax, eax
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
and al, 0xc0
add eax, 0x80
or al, 0x20
push eax
push 0x37
call esi
push 4
mov edi, eax
call esi
mov edx, dword [0x41b630]
add edi, eax
mov eax, dword [0x41ac68]
add edx, eax
mov eax, dword [0x41b408]
lea ecx, [edi + edx - 0x13]
mov edx, dword [0x41ac64]
push ecx
mov ecx, dword [0x41ba14]
push edx
mov edx, dword [0x41ba10]
push eax
push ecx
push 0xfffffffffffffffe
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
add esp, 8
ret
cmp eax, 0x85
jg 0x409c3f
je 0x409c1e
cmp eax, 0x82
jne case.default.0x409cfb
mov eax, dword [esp + 0x14]
push 0
push 0xb
push eax
call fcn.0040b8b0
add esp, 0xc
pop edi
pop esi
add esp, 8
ret
mov ecx, dword [esp + 0x14]
mov edx, dword [0x41b418]
push 0
push 0x192
push ecx
push edx
call section..text
add esp, 0x10
pop edi
pop esi
add esp, 8
ret
cmp eax, 0x1f6
jg 0x409cf1
je 0x409cd6
cmp eax, 0x86
jne case.default.0x409cfb
lea eax, [esp + 8]
xor esi, esi
push eax
push 0x20019
push esi
push str.SoftwareCanonCAP3MonitorsCAP3_Monitor
push 0x80000002
mov edi, 0x193
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x409cba
lea ecx, [esp + 0x1c]
lea edx, [esp + 0xc]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x18]
push str.UseDMA
push eax
mov dword [esp + 0x34], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x409cba
cmp dword [esp + 0xc], 1
jne 0x409cba
mov esi, 1
mov edi, 0x196
mov ecx, dword [esp + 0x14]
mov edx, dword [0x41b418]
push esi
push edi
push ecx
push edx
call section..text
add esp, 0x10
pop edi
pop esi
add esp, 8
ret
shr ecx, 0x10
cmp ecx, 0x100
jne case.default.0x409cfb
mov dword [0x41b3e8], 0x1f6
pop edi
pop esi
add esp, 8
ret
add eax, 0xffffdcce
cmp eax, 3
ja case.default.0x409cfb
jmp dword [eax*4 + 0x409d78]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x41b418]
push 0
push 0x4046f0
push eax
push 0x194
push ecx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x41a7e4], eax
pop edi
pop esi
add esp, 8
ret
mov edx, dword [esp + 0x14]
mov eax, dword [0x41b418]
push 0
push 0x404b90
push edx
push 0x195
push eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x41a4d0], eax
pop edi
pop esi
add esp, 8
ret
push ecx
call fcn.00409790
add esp, 4
pop edi
pop esi
add esp, 8
ret