Function at 0x46b098
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, 0x4c6f80
mov byte [ebp - 0x11], 0
mov eax, dword [0x4c8b68]
cmp dword [eax], 0
je 0x46b3e7
mov eax, dword [0x4c8b68]
cmp dword [eax], 1
jne 0x46b1b4
xor eax, eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
push 0x20019
push 0
push 0x46b3f4
push 0x80000006
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
sete byte [ebp - 0x11]
cmp byte [ebp - 0x11], 0
je 0x46b3e7
push ebp
mov eax, dword [ebp - 0xc]
lea edx, [eax + 0x60]
mov eax, 0x46b410
call fcn.0046aff4
pop ecx
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46b12b
push ebp
mov eax, dword [ebp - 0xc]
lea edx, [eax + 0x64]
mov eax, 0x46b428
call fcn.0046aff4
pop ecx
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x46b143
push ebp
lea edx, [ebp - 0x18]
mov eax, 0x46b440
call fcn.0046aff4
pop ecx
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegCloseKey
cmp byte [ebp - 0x11], 0
je 0x46b3e7
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x68]
jae 0x46b16c
mov eax, dword [ebp - 0xc]
call fcn.0046b454
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 0xc]
cmp eax, dword [edx + 0x6c]
jae 0x46b182
mov eax, dword [ebp - 0xc]
call fcn.0046b454
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x5c], edx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x60]
mov edx, dword [ebp - 0xc]
sub eax, dword [edx + 0x68]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x54], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 0xc]
sub eax, dword [edx + 0x6c]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x58], eax
jmp 0x46b3e7
xor eax, eax
mov dword [ebp - 0x34], eax
push ebp
push 0x46b3e0
push dword fs:[0]
mov dword fs:[0], esp
cmp dword [ebx], 0
jne 0x46b1d8
mov dword [ebx], 0x2000
mov eax, dword [ebx]
call fcn.00402764
mov dword [ebp - 0x24], eax
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
jmp 0x46b206
mov eax, dword [ebp - 0x24]
call fcn.00402784
add dword [ebx], 0x400
mov eax, dword [ebx]
call fcn.00402764
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 0x46b450
push 0x80000004
call sub.advapi32.dll_RegQueryValueExA
cmp eax, 0xea
je 0x46b1e9
cmp dword [ebp - 0x30], 0x64
jge 0x46b23a
call fcn.00403a38
jmp 0x46b3e7
mov edx, dword [ebp - 0x24]
mov eax, edx
mov edx, dword [eax + 0x1c]
test edx, edx
jne 0x46b250
call fcn.00403a38
jmp 0x46b3e7
mov ecx, dword [eax + 0x18]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
test edx, edx
jle 0x46b3c0
mov dword [ebp - 0x40], edx
mov eax, dword [0x4c88d8]
mov eax, dword [eax]
call fcn.00467088
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 0x46b3af
mov ebx, eax
test ebx, ebx
jle 0x46b2cd
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 0x46b2b9
call fcn.00403a38
jmp 0x46b3e7
mov eax, dword [0x4c88d8]
mov eax, dword [eax]
call fcn.00467088
inc esi
add dword [ebp - 0x44], 4
dec ebx
jne 0x46b2a1
mov byte [ebp - 0x39], 1
mov dword [ebp - 0x38], 1
jmp 0x46b3a5
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x28], 1
jl 0x46b2ea
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 0x46b383
lea ecx, [ebp - 0x10c]
mov eax, dword [ecx]
cmp dword [eax + 4], 0x368
jne 0x46b342
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 + 0x54]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x46b336
cmp eax, dword [esp]
pop edx
pop eax
jae 0x46b342
jmp 0x46b33a
pop edx
pop eax
jge 0x46b342
mov eax, dword [esi]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x54], eax
mov eax, dword [ecx]
cmp dword [eax + 4], 0x36a
jne 0x46b37d
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 + 0x58]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x46b371
cmp eax, dword [esp]
pop edx
pop eax
jae 0x46b37d
jmp 0x46b375
pop edx
pop eax
jge 0x46b37d
mov eax, dword [esi]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x58], eax
add ecx, 4
dec ebx
jne 0x46b307
mov eax, dword [ebp - 0x20]
add edi, dword [eax]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x28]
cmp eax, 1
jl 0x46b3a1
inc dword [ebp - 0x38]
cmp eax, dword [ebp - 0x38]
jge 0x46b3a5
mov byte [ebp - 0x39], 0
jmp 0x46b3a5
mov byte [ebp - 0x39], 0
cmp byte [ebp - 0x39], 0
jne 0x46b2dd
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
add dword [ebp - 0x28], eax
dec dword [ebp - 0x40]
jne 0x46b264
mov byte [ebp - 0x11], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46b3e7
cmp dword [ebp - 0x24], 0
je 0x46b3df
mov eax, dword [ebp - 0x24]
call fcn.00402784
ret
mov al, byte [ebp - 0x11]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret