Function at 0x4f5094
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef4
push ebx
push esi
push edi
mov dword [ebp - 0xc], eax
mov ebx, 0x5047e8
mov byte [ebp - 0x11], 0
mov eax, dword [0x504e3c]
cmp dword [eax], 0
je 0x4f53e3
mov eax, dword [0x504e3c]
cmp dword [eax], 1
jne 0x4f51b0
xor eax, eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
push 0x20019
push 0
push 0x4f53f0
push 0x80000006
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
sete byte [ebp - 0x11]
cmp byte [ebp - 0x11], 0
je 0x4f53e3
push ebp
mov eax, dword [ebp - 0xc]
lea edx, [eax + 0x68]
mov eax, 0x4f540c
call fcn.004f4ff0
pop ecx
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x4f5127
push ebp
mov eax, dword [ebp - 0xc]
lea edx, [eax + 0x6c]
mov eax, 0x4f5424
call fcn.004f4ff0
pop ecx
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x4f513f
push ebp
lea edx, [ebp - 0x18]
mov eax, 0x4f543c
call fcn.004f4ff0
pop ecx
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegCloseKey_1
cmp byte [ebp - 0x11], 0
je 0x4f53e3
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x70]
jae 0x4f5168
mov eax, dword [ebp - 0xc]
call fcn.004f5450
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x74]
jae 0x4f517e
mov eax, dword [ebp - 0xc]
call fcn.004f5450
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x64], edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x68]
mov edx, dword [ebp - 0xc]
sub eax, dword [edx + 0x70]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x5c], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x6c]
mov edx, dword [ebp - 0xc]
sub eax, dword [edx + 0x74]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x60], eax
jmp 0x4f53e3
xor eax, eax
mov dword [ebp - 0x34], eax
push ebp
push 0x4f53dc
push dword fs:[0]
mov dword fs:[0], esp
cmp dword [ebx], 0
jne 0x4f51d4
mov dword [ebx], 0x2000
mov eax, dword [ebx]
call fcn.0040280c
mov dword [ebp - 0x24], eax
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
jmp 0x4f5202
mov eax, dword [ebp - 0x24]
call fcn.0040282c
add dword [ebx], 0x400
mov eax, dword [ebx]
call fcn.0040280c
mov dword [ebp - 0x24], eax
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0x34]
push eax
push 0
push 0x4f544c
push 0x80000004
call sub.advapi32.dll_RegQueryValueExA_1
cmp eax, 0xea
je 0x4f51e5
cmp dword [ebp - 0x30], 0x64
jge 0x4f5236
call fcn.004041e8
jmp 0x4f53e3
mov edx, dword [ebp - 0x24]
mov eax, edx
mov edx, dword [eax + 0x1c]
test edx, edx
jne 0x4f524c
call fcn.004041e8
jmp 0x4f53e3
mov ecx, dword [eax + 0x18]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
test edx, edx
jle 0x4f53bc
mov dword [ebp - 0x40], edx
mov eax, dword [0x504c24]
mov eax, dword [eax]
call fcn.0048c0b4
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 8]
add edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x20]
test eax, eax
jbe 0x4f53ab
mov ebx, eax
test ebx, ebx
jle 0x4f52c9
mov esi, 1
lea eax, [ebp - 0x10c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [eax], edi
mov eax, edi
add edi, dword [eax]
cmp esi, 0x32
jle 0x4f52b5
call fcn.004041e8
jmp 0x4f53e3
mov eax, dword [0x504c24]
mov eax, dword [eax]
call fcn.0048c0b4
inc esi
add dword [ebp - 0x44], 4
dec ebx
jne 0x4f529d
mov byte [ebp - 0x39], 1
mov dword [ebp - 0x38], 1
jmp 0x4f53a1
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x28], 1
jl 0x4f52e6
mov eax, edi
add edi, dword [eax]
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax + 0x20]
test ebx, ebx
jle 0x4f537f
lea ecx, [ebp - 0x10c]
mov eax, dword [ecx]
cmp dword [eax + 4], 0x368
jne 0x4f533e
mov eax, dword [eax + 0x24]
add eax, dword [ebp - 0x2c]
mov esi, eax
mov eax, dword [esi]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x5c]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4f5332
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4f533e
jmp 0x4f5336
pop edx
pop eax
jge 0x4f533e
mov eax, dword [esi]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x5c], eax
mov eax, dword [ecx]
cmp dword [eax + 4], 0x36a
jne 0x4f5379
mov eax, dword [eax + 0x24]
add eax, dword [ebp - 0x2c]
mov esi, eax
mov eax, dword [esi]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x60]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4f536d
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4f5379
jmp 0x4f5371
pop edx
pop eax
jge 0x4f5379
mov eax, dword [esi]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x60], eax
add ecx, 4
dec ebx
jne 0x4f5303
mov eax, dword [ebp - 0x20]
add edi, dword [eax]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
cmp eax, 1
jl 0x4f539d
inc dword [ebp - 0x38]
cmp eax, dword [ebp - 0x38]
jge 0x4f53a1
mov byte [ebp - 0x39], 0
jmp 0x4f53a1
mov byte [ebp - 0x39], 0
cmp byte [ebp - 0x39], 0
jne 0x4f52d9
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
add dword [ebp - 0x28], eax
dec dword [ebp - 0x40]
jne 0x4f5260
mov byte [ebp - 0x11], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f53e3
cmp dword [ebp - 0x24], 0
je 0x4f53db
mov eax, dword [ebp - 0x24]
call fcn.0040282c
ret
mov al, byte [ebp - 0x11]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret