Function at 0x404ac0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
enter 0x608, 1
push ebx
push ecx
push edx
mov dword [ebp - 8], esp
mov eax, 0
mov ecx, 0x8100
mov edi, 0x40b880
jecxz 0x404add
rep stosb byte es:[edi], al
mov eax, 0
mov ecx, 0x8100
mov edi, 0x40b880
jecxz 0x404af0
rep stosb byte es:[edi], al
push 0x41becc
push 0x20019
push 0
push 0x40a293
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
mov dword [0x41bedc], eax
mov dword [0x41bee0], 0xff
cmp dword [0x41bedc], 0
jne 0x404b67
push 0x41bee4
push 0x41399c
push 0x413998
push 0x413994
push 0x413990
push 0x41398c
push 0x413988
push 0x4139a0
push 0
push 0x41bee0
push 0x41bca8
push dword [0x41becc]
call sub.advapi32.dll_RegQueryInfoKeyA
mov dword [0x41bedc], eax
cmp dword [0x41bedc], 0
je 0x404bb2
push dword [0x41bedc]
push 0x409d93
call fcn.004056a0
push 0x409079
push 6
push 0x409d9c
push 0
call fcn.00405640
lea eax, [ebp - 0x18]
push eax
push dword [0x41bea8]
call fcn.00401b50
lea eax, [ebp - 0x18]
push eax
push 0
call fcn.00404620
call fcn.00405560
push 0x409079
push 0x24
push 0x409da2
push 0
call fcn.00405640
push dword [0x413990]
push 0
call fcn.00405f60
call fcn.00405560
push 0x409079
push 0xc
push 0x409dc6
push 0
call fcn.00405640
call fcn.00405560
mov eax, 0
mov dword [0x41bba4], eax
mov eax, 0
mov dword [0x41bea8], eax
cmp dword [0x41bedc], 0
jne 0x404e9e
cmp dword [0x41bea8], 0
jne 0x404e9e
mov dword [0x41bed0], 0xff
mov dword [0x41bed8], 0xff
push 0x41bed8
push 0x41bda8
push 0x41bed4
push 0
push 0x41bed0
push 0x41bba8
push dword [0x41bba4]
push dword [0x41becc]
call sub.advapi32.dll_RegEnumValueA
mov dword [0x41bea8], eax
cmp dword [0x41bea8], 0
je 0x404cb2
jmp 0x404e9e
inc dword [0x41bba4]
imul eax, dword [0x41bba4], 0x100
mov dword [ebp - 0x30c], eax
lea eax, [ebp - 0x40c]
push eax
lea eax, [ebp - 0x50c]
push eax
push 0x41bda8
call fcn.00402610
lea eax, [ebp - 0x50c]
push eax
push 8
call fcn.004055c0
lea esi, [ebp - 0x40c]
lea edi, [ebp - 0x308]
call fcn.00401b30
mov esi, 0x409de1
lea edi, [ebp - 0x308]
call fcn.00401af0
lea esi, [ebp - 0x308]
lea edi, [ebp - 0x208]
call fcn.00401b30
lea eax, [ebp - 0x60c]
push eax
push 0x41bba8
call fcn.00402610
lea esi, [ebp - 0x60c]
lea edi, [ebp - 0x208]
call fcn.00401af0
lea esi, [ebp - 0x208]
lea edi, [ebp - 0x108]
call fcn.00401b30
mov esi, 0x409de7
lea edi, [ebp - 0x108]
call fcn.00401af0
mov eax, dword [ebp - 0x30c]
lea edi, [eax + 0x40b880]
lea esi, [ebp - 0x108]
call fcn.00401940
lea eax, [ebp - 0x108]
push eax
push 0x41bda8
call fcn.00402610
mov edi, 0x4139a4
lea esi, [ebp - 0x108]
call fcn.00401940
cmp byte [0x4139a4], 5
jae 0x404dbb
push 0x409de9
push 0xff
push 0x4139a4
push 4
call fcn.00402580
imul eax, dword [0x41bba4], 0x100
mov dword [ebp - 0x30c], eax
lea eax, [ebp - 0x40c]
push eax
push 0x4139a4
push 8
call fcn.004055c0
lea esi, [ebp - 0x40c]
lea edi, [ebp - 0x308]
call fcn.00401b30
mov esi, 0x409deb
lea edi, [ebp - 0x308]
call fcn.00401af0
lea esi, [ebp - 0x308]
lea edi, [ebp - 0x208]
call fcn.00401b30
lea eax, [ebp - 0x50c]
push eax
push 0x41bba8
call fcn.00402610
lea esi, [ebp - 0x50c]
lea edi, [ebp - 0x208]
call fcn.00401af0
lea esi, [ebp - 0x208]
lea edi, [ebp - 0x108]
call fcn.00401b30
mov esi, 0x409df1
lea edi, [ebp - 0x108]
call fcn.00401af0
mov eax, dword [ebp - 0x30c]
lea edi, [eax + 0x413aa4]
lea esi, [ebp - 0x108]
call fcn.00401940
mov eax, 5
mov edi, dword [0x409df3]
mov dword [ebp - 0xc], eax
mov eax, dword [0x41bba4]
xor edx, edx
div edi
mov ebx, dword [ebp - 0xc]
mul ebx
cmp dword [0x41bba4], eax
jne 0x404e99
push 0x409079
call fcn.00405560
jmp 0x404c10
mov eax, dword [0x413990]
dec eax
test eax, eax
jle 0x404fe2
mov dword [ebp - 0x10], eax
mov eax, 0
mov dword [0x413980], eax
inc dword [0x413980]
mov eax, dword [0x413980]
inc eax
mov ebx, dword [0x413990]
sub ebx, eax
jl 0x404fd9
inc ebx
mov dword [ebp - 0x14], ebx
mov dword [0x413984], eax
jmp 0x404ee7
inc dword [0x413984]
imul eax, dword [0x413984], 0x100
imul ebx, dword [0x413980], 0x100
lea esi, [ebx + 0x413aa4]
lea edi, [eax + 0x413aa4]
call fcn.00405580
test al, al
je 0x404fd0
imul eax, dword [0x413980], 0x100
mov edi, 0x4139a4
lea esi, [eax + 0x40b880]
call fcn.00401940
imul eax, dword [0x413980], 0x100
imul ebx, dword [0x413984], 0x100
lea edi, [eax + 0x40b880]
lea esi, [ebx + 0x40b880]
call fcn.00401940
imul eax, dword [0x413984], 0x100
lea edi, [eax + 0x40b880]
mov esi, 0x4139a4
call fcn.00401940
imul eax, dword [0x413980], 0x100
mov edi, 0x4139a4
lea esi, [eax + 0x413aa4]
call fcn.00401940
imul eax, dword [0x413980], 0x100
imul ebx, dword [0x413984], 0x100
lea edi, [eax + 0x413aa4]
lea esi, [ebx + 0x413aa4]
call fcn.00401940
imul eax, dword [0x413984], 0x100
lea edi, [eax + 0x413aa4]
mov esi, 0x4139a4
call fcn.00401940
dec dword [ebp - 0x14]
jne 0x404ee1
dec dword [ebp - 0x10]
jne 0x404eba
mov eax, dword [0x413990]
test eax, eax
jle 0x405026
mov dword [ebp - 0x18], eax
mov eax, 0
mov dword [0x413980], eax
inc dword [0x413980]
push 0x409079
imul eax, dword [0x413980], 0x100
lea eax, [eax + 0x40b880]
push eax
push 0
call fcn.00404620
call fcn.00405560
dec dword [ebp - 0x18]
jne 0x404ff8
push 0x40924f
call fcn.00405040
pop edx
pop ecx
pop ebx
leave
ret