Function at 0x430240
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4999cc
mov eax, dword fs:[0]
push eax
sub esp, 0x284
mov eax, dword [0x4c63ac]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x270], esi
test ebx, ebx
je 0x430684
cmp dword [edi + 0x10], 0
je 0x430684
push 0x2c
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x250], 0
call fcn.0046d9cd
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x254], eax
cmp dword [edi + 0x14], 8
mov dword [ebp - 4], 0
mov dword [ebp - 0x25c], 0
jb 0x4302e0
mov edi, dword [edi]
lea eax, [ebp - 0x25c]
push eax
push 0x20019
push 0
push edi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43061a
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.0046f980
add esp, 0xc
mov dword [ebp - 0x258], 0x104
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x260], ebx
mov dword [ebp - 0x26c], 4
mov dword [ebp - 0x264], ebx
push eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x264]
push eax
push ebx
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
push dword [ebp - 0x25c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x43060e
mov edi, edi
inc ebx
cmp dword [ebp - 0x258], 0x104
mov dword [ebp - 0x270], ebx
jae 0x4305c4
cmp dword [ebp - 0x264], 4
jne 0x4305c4
xor eax, eax
mov dword [ebp - 0x230], 0
mov word [ebp - 0x230], ax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x220], 0
lea edx, [eax + 2]
mov dword [ebp - 0x21c], 7
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4303c4
sub eax, edx
lea ecx, [ebp - 0x230]
sar eax, 1
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.00402db0
mov eax, dword [ebp - 0x22c]
mov esi, dword [ebp - 0x230]
mov ebx, dword [ebp - 0x220]
mov dword [ebp - 0x248], eax
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x268], eax
mov dword [ebp - 0x238], eax
xor eax, eax
mov word [ebp - 0x230], ax
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x24c], esi
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x254]
call fcn.00406890
mov edx, dword [eax + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x278], ecx
mov ecx, dword [eax + 4]
cmp byte [edx + 0xd], 0
mov dword [ebp - 0x274], ecx
jne 0x4304e0
mov edi, dword [edx + 0x20]
add edx, 0x10
cmp dword [edx + 0x14], 8
jb 0x4304a2
mov edx, dword [edx]
cmp dword [ebp - 0x268], 8
lea ecx, [ebp - 0x24c]
mov eax, ebx
cmovae ecx, esi
cmp edi, ebx
cmovb eax, edi
push eax
push edx
push ecx
call fcn.00404f20
add esp, 0xc
test eax, eax
jne 0x4304d5
cmp edi, ebx
jbe 0x4304d1
or eax, 0xffffffff
jmp 0x4304d5
sbb eax, eax
neg eax
shr eax, 0x1f
test al, al
je 0x43057c
cmp dword [ebp - 0x250], 0x5d1745d
je 0x4306ce
mov ebx, dword [ebp - 0x254]
lea eax, [ebp - 0x254]
mov dword [ebp - 0x284], eax
push 0x2c
mov byte [ebp - 4], 3
mov dword [ebp - 0x280], 0
call fcn.0046d9cd
mov edi, eax
add esp, 4
mov dword [ebp - 0x280], edi
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 4
push eax
lea ecx, [edi + 0x10]
call fcn.00401730
mov eax, dword [ebp - 0x234]
lea ecx, [ebp - 0x254]
push edi
push dword [ebp - 0x274]
mov dword [edi + 0x28], eax
push dword [ebp - 0x278]
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov word [edi + 0xc], 0
mov dword [ebp - 0x280], 0
call fcn.00409170
mov eax, dword [ebp - 0x238]
mov esi, dword [ebp - 0x24c]
jmp 0x430582
mov eax, dword [ebp - 0x268]
mov byte [ebp - 4], 1
cmp eax, 8
jb 0x4305ba
lea ecx, [eax*2 + 2]
mov eax, esi
cmp ecx, 0x1000
jb 0x4305b0
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4306c9
push ecx
push esi
call fcn.0046d9fd
add esp, 8
mov ebx, dword [ebp - 0x270]
mov byte [ebp - 4], 0
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x258], 0x104
push eax
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x264]
push eax
push 0
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
push dword [ebp - 0x25c]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
je 0x430370
mov esi, dword [ebp - 0x27c]
push dword [ebp - 0x25c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x2c
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0046d9cd
mov edx, eax
add esp, 4
mov dword [edx], edx
mov dword [edx + 4], edx
mov dword [edx + 8], edx
mov word [edx + 0xc], 0x101
mov eax, dword [ebp - 0x254]
mov dword [esi], eax
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x250]
mov dword [esi + 4], eax
lea eax, [ebp - 0x254]
mov dword [ebp - 0x250], ecx
mov ecx, eax
mov dword [ebp - 0x254], edx
push dword [edx + 4]
push eax
call fcn.0042dc90
push 0x2c
push dword [ebp - 0x254]
call fcn.0046d9fd
add esp, 8
jmp 0x4306ab
push 0x2c
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0046d9cd
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [esi], eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046dc6a
mov esp, ebp
pop ebp
ret
call fcn.00478f8e
call fcn.00409490
int3