Function at 0x50090fc7
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0xa8
and dword [ebp + 0x14], 0
and dword [ebp + 0x58], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 0x7c]
and edi, 1
mov ebx, ecx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x5c], 0x80004005
je 0x50091101
mov esi, dword [ebx + 0xc8]
and byte [ebp + 0x18], 0
mov eax, esi
shr eax, 0x10
test ax, ax
je 0x50091029
push esi
call fcn.5003ea47
lea eax, [eax + eax + 1]
add eax, 3
and eax, 0xfffffffc
call fcn.50260700
mov eax, esp
push esi
push eax
call fcn.5024c79e
jmp 0x5009102b
mov eax, esi
lea ecx, [ebp + 0x64]
push ecx
push eax
push 0x5000a0b8
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.50272bbe
test eax, eax
jne 0x50091386
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 0x20
pop ebx
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x18]
push eax
push 0
push 0
push 0x5000a298
push dword [ebp + 0x64]
mov dword [ebp + 0x60], ebx
call esi
push eax
call fcn.5006846c
test eax, eax
jl 0x500910cc
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0
push 0
push 0x5000a28c
push dword [ebp + 0x64]
mov dword [ebp + 0x60], ebx
call esi
push eax
call fcn.5006846c
test eax, eax
jl 0x500910cc
cmp byte [ebp + 0x18], 0x57
je 0x500910e3
cmp byte [ebp + 0x18], 0x77
je 0x500910cc
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
push 0
push 0x5000a284
push dword [ebp + 0x64]
mov dword [ebp + 0x60], ebx
call esi
push eax
call fcn.5006846c
test eax, eax
jl 0x500910cc
mov dword [ebp + 0x58], 1
cmp byte [ebp + 0x18], 0x57
je 0x500910e3
cmp byte [ebp + 0x18], 0x77
je 0x500910e3
lea eax, [ebp + 4]
push eax
push 0x5000a27c
jmp 0x500910ec
lea eax, [ebp + 4]
push eax
push 0x5000a0e0
push dword [ebp + 0x64]
call fcn.50272bbe
push dword [ebp + 0x64]
mov dword [ebp + 0x5c], eax
call sub.ADVAPI32.dll_RegCloseKey
jmp 0x50091124
lea eax, [ebp + 0x38]
push eax
mov ecx, ebx
call fcn.5008d4f8
test byte [ebp + 0x7c], 2
je 0x50091386
push 0x10
push 0x10
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
xor esi, esi
cmp dword [ebp + 0x5c], esi
jl 0x50091383
cmp byte [ebp + 0x18], 0x46
je 0x5009113b
cmp byte [ebp + 0x18], 0x66
jne 0x50091144
cmp dword [ebp + 0x58], esi
je 0x50091383
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0x1c]
push 0x5000a26c
push eax
call dword [sym.imp.MSVCR70.dll_sscanf]
mov eax, dword [ebp + 0x54]
add esp, 0x18
cmp eax, dword [ebp + 0x48]
jle 0x5009117a
mov eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x54]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x54], eax
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x50]
jle 0x5009118e
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x4c], eax
push dword [ebp + 0x50]
lea eax, [ebp + 0x38]
push dword [ebp + 0x48]
push dword [ebp + 0x4c]
push dword [ebp + 0x54]
push eax
call dword [sym.imp.USER32.dll_SetRect]
push esi
lea eax, [ebp + 4]
push eax
call fcn.5008c474
mov esi, eax
test esi, esi
je 0x500911bf
mov ecx, esi
call fcn.5008f3aa
test eax, eax
jne 0x50091206
cmp byte [ebp + 0x18], 0x57
je 0x500911cb
cmp byte [ebp + 0x18], 0x77
jne 0x50091206
mov eax, dword [ebp + 0x68]
push 0
add eax, 0x12c
push eax
call fcn.50272bbe
test eax, eax
jl 0x500911ec
push 0
lea eax, [ebp + 4]
push eax
call fcn.5008c474
mov esi, eax
test esi, esi
je 0x500913ee
push dword [ebp + 0x7c]
mov ecx, esi
push 0
push 0
call fcn.50090fc7
or dword [esi + 0x58], 1
test esi, esi
je 0x500913ee
push 0
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x68]
call fcn.50272bbe
mov ecx, eax
test ecx, ecx
mov dword [ebp + 0x7c], ecx
je 0x500913ee
mov al, byte [ebp + 0x18]
cmp al, 0x46
je 0x50091324
cmp al, 0x66
je 0x50091324
cmp al, 0x4d
je 0x50091324
cmp al, 0x6d
je 0x50091324
cmp al, 0x41
je 0x50091324
cmp al, 0x61
je 0x50091324
cmp al, 0x4c
je 0x50091278
cmp al, 0x6c
je 0x50091278
cmp al, 0x54
je 0x50091278
cmp al, 0x74
je 0x50091278
cmp al, 0x57
je 0x50091280
cmp al, 0x77
jne 0x500913ee
cmp al, 0x57
je 0x50091280
cmp al, 0x77
jne 0x50091284
mov byte [ebp + 0x18], 0x54
push dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x68]
push dword [ebp + 0x18]
call fcn.5008d8bc
mov edi, dword [esi + 0xb4]
test edi, edi
mov ebx, eax
mov dword [ebp + 0x58], edi
jne 0x500912af
mov edi, dword [esi + 0xb8]
test edi, edi
je 0x500913ee
cmp edi, dword [esi + 0xbc]
jne 0x500912ea
mov esi, dword [esi + 0xb8]
test esi, esi
je 0x500912ea
push ebx
lea eax, [ebp + 0x38]
push eax
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x24]
mov ecx, esi
call fcn.50272bbe
push ebx
lea eax, [ebp + 0x38]
push eax
mov eax, dword [ebp + 0x68]
push dword [eax + 0xb4]
mov ecx, edi
call fcn.50272bbe
jmp 0x5009130d
push ebx
lea eax, [ebp + 0x38]
push eax
mov eax, dword [ebp + 0x7c]
push dword [eax + 0x24]
mov ecx, edi
call fcn.50272bbe
mov ecx, edi
call fcn.5010ddc2
test eax, eax
je 0x5009130d
mov eax, dword [eax + 0x10]
mov dword [ebp + 0x58], eax
mov ecx, dword [ebp + 0x58]
test ecx, ecx
je 0x500913e8
push 0
call fcn.5010f2f9
jmp 0x500913e8
mov esi, dword [esi + 0xb8]
test esi, esi
je 0x50091357
push 0xa
lea eax, [ebp + 0x38]
push eax
push dword [ecx + 0x24]
mov ecx, esi
call fcn.50272bbe
mov ecx, dword [0x50290024]
push 0
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x68]
call fcn.50272bbe
jmp 0x500913e8
cmp al, 0x4d
je 0x5009137c
cmp al, 0x6d
je 0x5009137c
cmp al, 0x41
je 0x50091370
cmp al, 0x61
je 0x50091370
push 5
call fcn.500b85a1
jmp 0x500913e8
push 0x123
call fcn.50090a5a
jmp 0x500913e8
push 0x122
jmp 0x50091375
mov ebx, dword [ebp + 0x68]
xor esi, esi
push esi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call fcn.501a79d8
mov ecx, dword [0x50290024]
neg edi
sbb edi, edi
lea eax, [ebp + 0x38]
push esi
not edi
and edi, eax
push edi
push ebx
call fcn.50272bbe
cmp dword [0x5028e670], esi
jne 0x500913dc
mov al, byte [ebp + 0x18]
cmp al, 0x4d
je 0x500913d0
cmp al, 0x6d
je 0x500913d0
cmp al, 0x41
je 0x500913c9
cmp al, 0x61
jne 0x500913dc
push 0x123
jmp 0x500913d5
push 0x122
mov ecx, ebx
call fcn.50272bbe
push esi
push esi
call fcn.501a79d8
cmp dword [ebp + 0x5c], esi
jl 0x50091426
cmp dword [ebp + 0x5c], 0
jge 0x50091426
mov ecx, dword [0x50290024]
push 0
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x68]
call fcn.50272bbe
mov al, byte [ebp + 0x18]
cmp al, 0x4d
je 0x5009141c
cmp al, 0x6d
je 0x5009141c
cmp al, 0x41
je 0x50091415
cmp al, 0x61
jne 0x50091426
push 0x123
jmp 0x50091421
push 0x122
call fcn.50090a5a
lea esp, [ebp - 0x48]
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc