Function at 0x402982
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x444148]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
xor ebx, ebx
or dword [ebp - 0x30], 0xffffffff
mov esi, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x2c], ebx
mov dword [eax], ebx
mov byte [ebp - 0x25], 1
mov eax, dword [esi + 0xd88]
cmp eax, ebx
je 0x402c65
inc dword [ebp - 0x30]
lea ecx, [ebp - 0x38]
push ecx
lea edi, [esi + 0x184]
push edi
push ebx
push ebx
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push dword [ebp - 0x30]
mov byte [edi], bl
push eax
jmp 0x402a1e
cmp eax, 0x3fa
jne 0x402c65
cmp byte [ebp - 0x25], bl
je 0x402c65
mov ecx, esi
mov byte [ebp - 0x25], bl
call fcn.004028e2
lea eax, [ebp - 0x38]
push eax
push edi
push ebx
push ebx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x30]
mov byte [edi], bl
push dword [esi + 0xd88]
mov dword [ebp - 0x34], 0x18
mov dword [ebp - 0x38], 0x400
mov byte [ebp - 0x1c], bl
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, ebx
jne 0x4029e6
cmp byte [ebp - 0x1c], bl
je 0x402c5c
lea eax, [esi + 0x984]
push eax
lea eax, [ebp - 0x1d]
push eax
lea eax, [ebp - 0x26]
push eax
push str.b_b_s
push edi
call fcn.00413100
lea eax, [esi + 0x984]
push eax
call fcn.004137a7
mov edi, dword [ebp - 0x3c]
add esp, 0x18
test byte [ebp - 0x1d], 1
je 0x402ad6
mov eax, dword [esi + 0xd84]
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 0x24], 0x10000
mov byte [eax], bl
push dword [esi + 0xd84]
mov eax, dword [edi]
push ebx
push 0x43051c
mov ecx, edi
call dword [eax + 0x10]
test eax, eax
je 0x402ad6
mov eax, dword [esi + 0xd84]
mov ecx, dword [ebp - 0x24]
mov byte [ecx + eax], bl
push dword [esi + 0xd84]
call fcn.004137a7
mov eax, dword [esi + 0xd84]
lea ecx, [esi + 0x984]
push ecx
push eax
call fcn.00413eec
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp eax, ebx
jne 0x402c65
test byte [ebp - 0x1d], 2
je 0x402b3e
mov eax, dword [esi + 0xd84]
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 0x24], 0x10000
mov byte [eax], bl
push dword [esi + 0xd84]
mov eax, dword [edi]
push ebx
push str.To:
mov ecx, edi
call dword [eax + 0x10]
test eax, eax
je 0x402b3e
mov eax, dword [esi + 0xd84]
mov ecx, dword [ebp - 0x24]
mov byte [ecx + eax], bl
push dword [esi + 0xd84]
call fcn.004137a7
mov eax, dword [esi + 0xd84]
lea ecx, [esi + 0x984]
push ecx
push eax
call fcn.00413eec
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp eax, ebx
jne 0x402c65
test byte [ebp - 0x1d], 4
je 0x402ba6
mov eax, dword [esi + 0xd84]
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 0x24], 0x10000
mov byte [eax], bl
push dword [esi + 0xd84]
mov eax, dword [edi]
push ebx
push str.Subject:
mov ecx, edi
call dword [eax + 0x10]
test eax, eax
je 0x402ba6
mov eax, dword [esi + 0xd84]
mov ecx, dword [ebp - 0x24]
mov byte [ecx + eax], bl
push dword [esi + 0xd84]
call fcn.004137a7
mov eax, dword [esi + 0xd84]
lea ecx, [esi + 0x984]
push ecx
push eax
call fcn.00413eec
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp eax, ebx
jne 0x402c65
test byte [ebp - 0x1d], 8
je 0x402c5c
mov eax, dword [esi + 0xd84]
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 0x24], 0x10000
mov byte [eax], bl
push dword [esi + 0xd84]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov eax, dword [esi + 0xd84]
cmp byte [eax], bl
je 0x402c08
mov ecx, dword [ebp - 0x24]
mov byte [eax + ecx], bl
push dword [esi + 0xd84]
call fcn.004137a7
mov eax, dword [esi + 0xd84]
lea ecx, [esi + 0x984]
push ecx
push eax
call fcn.00413eec
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp eax, ebx
jne 0x402c65
mov eax, dword [esi + 0xd84]
lea ecx, [ebp - 0x24]
push ecx
mov dword [ebp - 0x24], 0x10000
mov byte [eax], bl
push dword [esi + 0xd84]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
mov eax, dword [esi + 0xd84]
cmp byte [eax], bl
je 0x402c5c
mov ecx, dword [ebp - 0x24]
mov byte [eax + ecx], bl
push dword [esi + 0xd84]
call fcn.004137a7
mov eax, dword [esi + 0xd84]
lea ecx, [esi + 0x984]
push ecx
push eax
call fcn.00413eec
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], ebx
je 0x4029b8
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
mov dword [ecx], eax
movzx ecx, byte [ebp - 0x26]
mov dword [edx], ecx
xor ecx, ecx
cmp eax, ebx
sete cl
pop edi
pop esi
pop ebx
mov eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041343a
leave
ret 0xc