Function at 0x42cfde
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x43bff0]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
xor eax, eax
xor ecx, ecx
mov cx, word [ebx + 0xa]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov ax, word [esi + 0xa]
push edi
mov edi, ecx
mov edx, 0x7fff
and ecx, edx
xor edi, eax
and eax, edx
and edi, 0x8000
cmp ax, 0x7fff
lea edx, [ecx + eax]
mov dword [ebp + 8], edx
jae 0x42cffa
cmp cx, 0x7fff
jae 0x42cffa
cmp dx, 0xbffd
ja 0x42cffa
cmp dx, 0x3fbf
ja 0x42ce63
xor eax, eax
jmp 0x42ce9d
test ax, ax
mov edx, 0x7fffffff
jne 0x42ce85
inc dword [ebp + 8]
xor eax, eax
test dword [esi + 8], edx
jne 0x42ce87
cmp dword [esi + 4], eax
jne 0x42ce87
cmp dword [esi], eax
jne 0x42ce87
jmp 0x42cff4
xor eax, eax
cmp cx, ax
jne 0x42ceaa
inc dword [ebp + 8]
test dword [ebx + 8], edx
jne 0x42ceaa
cmp dword [ebx + 4], eax
jne 0x42ceaa
cmp dword [ebx], eax
jne 0x42ceaa
mov dword [esi + 8], eax
mov dword [esi + 4], eax
mov dword [esi], eax
jmp 0x42d015
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov dword [ebp + 0xc], 5
mov eax, dword [ebp - 0x18]
add eax, eax
cmp dword [ebp + 0xc], 0
jle 0x42cf0e
add eax, esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebx + 8]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
movzx ecx, word [ecx]
movzx eax, word [eax]
imul eax, ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffffc
push ecx
push eax
push dword [ecx]
call fcn.0042cc38
add esp, 0xc
test eax, eax
je 0x42cf01
mov eax, dword [ebp - 0x14]
inc word [eax]
add dword [ebp - 0x24], 2
sub dword [ebp - 0x20], 2
dec dword [ebp - 0x28]
jne 0x42ced6
add dword [ebp - 0x14], 2
inc dword [ebp - 0x18]
dec dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0
jg 0x42ceba
add dword [ebp + 8], 0xc002
cmp word [ebp + 8], 0
jle 0x42cf51
test byte [ebp - 5], 0x80
jne 0x42cf4a
lea eax, [ebp - 0x10]
push eax
call fcn.0042ccb7
add dword [ebp + 8], 0xffff
cmp word [ebp + 8], 0
pop ecx
jg 0x42cf2c
cmp word [ebp + 8], 0
jg 0x42cf8a
add dword [ebp + 8], 0xffff
cmp word [ebp + 8], 0
jge 0x42cf8a
mov eax, dword [ebp + 8]
neg eax
movzx ebx, ax
add dword [ebp + 8], ebx
test byte [ebp - 0x10], 1
je 0x42cf73
inc dword [ebp - 0x1c]
lea eax, [ebp - 0x10]
push eax
call fcn.0042cce5
dec ebx
pop ecx
jne 0x42cf6a
cmp dword [ebp - 0x1c], 0
je 0x42cf8a
or byte [ebp - 0x10], 1
cmp word [ebp - 0x10], 0x8000
ja 0x42cfa1
mov eax, dword [ebp - 0x10]
and eax, 0x1ffff
cmp eax, 0x18000
jne 0x42cfd6
cmp dword [ebp - 0xe], 0xffffffff
jne 0x42cfd3
and dword [ebp - 0xe], 0
cmp dword [ebp - 0xa], 0xffffffff
jne 0x42cfce
and dword [ebp - 0xa], 0
cmp word [ebp - 6], 0xffff
jne 0x42cfc8
inc dword [ebp + 8]
mov word [ebp - 6], 0x8000
jmp 0x42cfd6
inc word [ebp - 6]
jmp 0x42cfd6
inc dword [ebp - 0xa]
jmp 0x42cfd6
inc dword [ebp - 0xe]
mov eax, dword [ebp + 8]
cmp ax, 0x7fff
jae 0x42cffa
mov cx, word [ebp - 0xe]
mov word [esi], cx
mov ecx, dword [ebp - 0xc]
mov dword [esi + 2], ecx
mov ecx, dword [ebp - 8]
mov dword [esi + 6], ecx
or eax, edi
mov word [esi + 0xa], ax
jmp 0x42d015
neg di
sbb edi, edi
and dword [esi + 4], 0
and edi, 0x80000000
add edi, 0x7fff8000
and dword [esi], 0
mov dword [esi + 8], edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0042518b
leave
ret