Function at 0x4080e0
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov ebx, ecx
mov dword [esp + 0x34], 1
call fcn.00418f10
mov dword [esp + 0x30], eax
call fcn.00418e30
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [esp + 0xc], eax
mov eax, dword [0x4362fc]
mov esi, 4
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], esi
test eax, eax
jne 0x40814b
push 0x4362fc
push 0x20219
push 0
push 0x4034a0
push reloc.OLEAUT32.dll_SysReAllocString
call edi
mov eax, dword [0x4362fc]
test eax, eax
je 0x408169
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x14]
push edx
push 0
push 0
push 0x403908
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40817a
cmp dword [esp + 0x10], 0xffffffff
je 0x40817a
mov dword [0x43630c], 1
call fcn.0041b000
test eax, eax
jne 0x408187
mov dword [esp + 0x34], eax
mov eax, dword [0x4362f8]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], esi
test eax, eax
jne 0x4081bc
push 0x4362f8
push 0xf023f
push eax
push 0x4034a0
push SysReAllocStringLen
call edi
mov eax, dword [0x4362f8]
test eax, eax
je 0x4081df
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x14]
push edx
push 0
push 0
push 0x403908
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x4081df
or edi, 0xffffffff
jmp 0x4081e3
mov edi, dword [esp + 0x10]
mov edx, dword [0x4362f4]
push 0x77
push 0x98
mov ecx, ebx
mov dword [esp + 0x1c], edi
call fcn.00419a20
test eax, eax
js 0x408455
push 0x77
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x408352
mov esi, eax
call fcn.00419800
xor esi, esi
cmp eax, esi
jl 0x408455
mov edx, dword [0x4362f4]
push 0x78
push 0x99
mov ecx, ebx
call fcn.00419a20
cmp eax, esi
jl 0x408455
mov edx, dword [0x4362f4]
push 0x7e
push 0x9f
mov ecx, ebx
call fcn.00419c00
cmp eax, esi
jl 0x408455
mov edx, dword [0x4362f4]
push 0x7c
push 0x9d
mov ecx, ebx
call fcn.00419a20
cmp eax, esi
jl 0x408455
call fcn.00418ff0
test eax, eax
je 0x40835e
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
push 0x7d
cmp dword [esp + 0x10], esi
je 0x4082f3
mov edx, dword [0x4362f4]
mov edi, 1
push 0x9e
mov ecx, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
call fcn.00419c00
cmp eax, esi
jl 0x408455
push ebx
call dword [sym.imp.USER32.dll_GetParent]
cmp eax, esi
je 0x408402
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, esi
je 0x408402
push edi
push esi
push 0x160c
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x408402
cmp dword [esp + 0x34], esi
je 0x408321
mov edi, 1
push ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, esi
jne 0x408504
mov eax, 0x80070006
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x4362f4]
push 0x9e
mov ecx, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
xor edi, edi
call fcn.00419c00
cmp eax, esi
jl 0x408455
push 0x7c
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, esi
jne 0x4083bc
mov eax, 0x80070006
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x43630c], esi
je 0x4083c7
xor eax, eax
cmp edi, esi
sete al
xor ecx, ecx
cmp edi, 1
sete cl
xor edx, edx
cmp edi, 2
sete dl
push 0x7d
push 0x9e
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov ecx, ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], edx
mov edx, dword [0x4362f4]
mov dword [esp + 0x24], esi
xor edi, edi
call fcn.00419c00
cmp eax, esi
jl 0x408455
push 0x7c
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, esi
je 0x408352
mov esi, eax
call fcn.00419760
xor esi, esi
jmp 0x408402
cmp dword [esp + 0x34], esi
jne 0x40845c
mov edi, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], edi
mov edx, dword [0x4362f4]
push 0x7d
push 0x9e
mov ecx, ebx
call fcn.00419c00
cmp eax, esi
jl 0x408455
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push 1
push eax
push ecx
push 0x9a
mov ecx, 0x79
call fcn.00408520
cmp eax, esi
jl 0x408455
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push esi
push edx
push eax
push 0x9b
mov ecx, 0x7a
call fcn.00408520
cmp eax, esi
jl 0x408455
mov ecx, dword [esp + 0x2c]
push esi
push edi
push ecx
push 0x9c
mov ecx, 0x7b
call fcn.00408520
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0xffffffff
jne 0x408465
xor eax, eax
jmp 0x408469
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
cmp ecx, esi
jne 0x40847e
cmp dword [esp + 0xc], esi
jne 0x408484
mov eax, 2
jmp 0x40848d
cmp dword [esp + 0xc], esi
je 0x40848d
cmp eax, esi
jne 0x40848d
mov eax, 1
xor edx, edx
cmp eax, esi
sete dl
mov dword [esp + 0x24], edx
cmp dword [esp + 0xc], esi
jne 0x4084aa
mov dword [esp + 0x18], 1
cmp ecx, esi
jne 0x4084ae
mov dword [esp + 0x18], esi
xor edx, edx
cmp eax, 1
sete dl
mov dword [esp + 0x28], edx
cmp dword [esp + 0xc], esi
jne 0x4084c8
mov dword [esp + 0x1c], esi
cmp ecx, esi
je 0x4084d0
mov dword [esp + 0x1c], 1
xor edx, edx
cmp eax, 2
sete dl
mov edi, 1
mov dword [esp + 0x2c], edx
cmp ecx, esi
je 0x4083ea
cmp dword [esp + 0xc], esi
jne 0x4083ea
push 0x7d
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp eax, esi
je 0x408352
push esi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x408402