Function at 0x4031a6
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x20
mov eax, 0x440be5
call fcn.0042baa9
and dword [ebp - 0x14], 0
call fcn.00402d55
test eax, eax
je 0x4032cf
call fcn.0041cc47
push eax
lea ecx, [ebp - 0x18]
call fcn.00401633
and dword [ebp - 4], 0
xor ebx, ebx
lea eax, [ebp - 0x14]
push 0x444858
inc ebx
mov esi, 0x104
push eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], esi
call fcn.00408331
pop ecx
pop ecx
mov edi, eax
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], bl
call fcn.004017cd
mov edi, dword [edi]
lea ecx, [ebp - 0x1c]
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
push 0x4446e5
push edi
push bind
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.004012b7
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call fcn.00402f96
lea eax, [ebp - 0x28]
push 0x44484c
push eax
call fcn.00408331
pop ecx
pop ecx
mov eax, dword [eax]
push 0
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
mov dword [ebp - 0x14], ebx
call fcn.0040301b
test eax, eax
jge 0x40328a
lea eax, [ebp - 0x24]
push 0x444840
push eax
call fcn.00408331
mov eax, dword [eax]
pop ecx
pop ecx
push 0
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 3
call fcn.0040301b
mov byte [ebp - 0xd], 0
test eax, eax
jl 0x40328d
mov byte [ebp - 0xd], bl
test byte [ebp - 0x14], 2
je 0x4032a2
mov ecx, dword [ebp - 0x24]
and dword [ebp - 0x14], 0xfffffffd
add ecx, 0xfffffff0
call fcn.004012b7
test byte [ebp - 0x14], bl
je 0x4032b2
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.004012b7
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004012b7
cmp byte [ebp - 0xd], 0
je 0x403449
push 3
pop eax
jmp 0x40344b
call fcn.0041cc47
push eax
lea ecx, [ebp - 0x18]
call fcn.00401633
xor ebx, ebx
lea eax, [ebp - 0x1c]
push 0x444830
inc ebx
mov esi, 0x104
push eax
mov dword [ebp - 4], 3
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], esi
call fcn.00408331
mov edi, eax
lea eax, [ebp - 0x20]
push 0x444790
push eax
mov byte [ebp - 4], 4
call fcn.00408331
add esp, 0x10
mov dword [ebp - 0x28], eax
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.004017cd
mov edi, dword [edi]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
lea edx, [ebp - 0x24]
push edx
push eax
lea eax, [ebp - 0x2c]
push eax
push edi
push ecx
push bind
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004012b7
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.004012b7
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call fcn.00402f96
lea eax, [ebp - 0x20]
push 0x44484c
push eax
call fcn.00408331
pop ecx
pop ecx
mov eax, dword [eax]
xor esi, esi
push esi
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
mov dword [ebp - 0x14], 4
call fcn.0040301b
test eax, eax
jge 0x4033c0
lea eax, [ebp - 0x28]
push 0x444840
push eax
call fcn.00408331
mov eax, dword [eax]
pop ecx
pop ecx
push esi
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 0xc
call fcn.0040301b
mov byte [ebp - 0xd], 0
test eax, eax
jl 0x4033c3
mov byte [ebp - 0xd], bl
test byte [ebp - 0x14], 8
je 0x4033d8
mov ecx, dword [ebp - 0x28]
and dword [ebp - 0x14], 0xfffffff7
add ecx, 0xfffffff0
call fcn.004012b7
test byte [ebp - 0x14], 4
push 3
pop edi
mov dword [ebp - 4], edi
je 0x4033ef
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004012b7
cmp byte [ebp - 0xd], 0
je 0x403406
mov esi, edi
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004012b7
mov eax, esi
jmp 0x40344b
lea eax, [ebp - 0x28]
push 0x444740
push eax
call fcn.00408331
mov eax, dword [eax]
pop ecx
pop ecx
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.0040301b
mov ecx, dword [ebp - 0x28]
test eax, eax
setge byte [ebp - 0xd]
add ecx, 0xfffffff0
call fcn.004012b7
cmp byte [ebp - 0xd], 0
je 0x40343e
push 4
pop esi
jmp 0x4033f7
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004012b7
mov eax, ebx
call fcn.0042bb81
ret