Function at 0x40bedc
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffa9c
mov eax, 0x48f24c
push ebx
push esi
push edi
call fcn.004696b8
lea edx, [ebp - 0x4c]
push edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040b594
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x40bf49
mov word [ebp - 0x38], 8
mov edx, 0x48c12a
lea eax, [ebp - 4]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00474d44
or eax, 0xffffffff
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x40c3ea
mov edi, 0x20019
test ebx, ebx
je 0x40c081
push 0x48c142
push ebx
call fcn.0040b39c
add esp, 8
mov esi, eax
test esi, esi
jne 0x40bf6f
mov edi, 0x2001f
lea eax, [ebp - 0x50]
push eax
push edi
push 0
push ebx
mov edx, dword [ebp - 0x4c]
push edx
call sub.ADVAPI32.DLL_RegOpenKeyExA
test eax, eax
je 0x40c028
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x80000002
je 0x40bfd1
mov eax, dword [ebp - 0x4c]
cmp eax, 0x80000003
je 0x40bfd1
mov edx, dword [ebp - 0x4c]
cmp edx, 0x80000000
je 0x40bfd1
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x80000001
je 0x40bfd1
mov eax, dword [ebp - 0x4c]
cmp eax, 0x80000005
je 0x40bfd1
mov edx, dword [ebp - 0x4c]
cmp edx, 0x80000006
je 0x40bfd1
mov ecx, dword [ebp - 0x4c]
push ecx
call sub.ADVAPI32.DLL_RegCloseKey
push ebx
push 0x48c144
lea eax, [ebp - 0x460]
push eax
call sub.USER32.DLL_wsprintfA
mov word [ebp - 0x38], 0x14
add esp, 0xc
lea edx, [ebp - 0x460]
lea eax, [ebp - 8]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.00474d44
or eax, 0xffffffff
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x40c3ea
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x80000002
je 0x40c071
mov eax, dword [ebp - 0x4c]
cmp eax, 0x80000003
je 0x40c071
mov edx, dword [ebp - 0x4c]
cmp edx, 0x80000000
je 0x40c071
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x80000001
je 0x40c071
mov eax, dword [ebp - 0x4c]
cmp eax, 0x80000005
je 0x40c071
mov edx, dword [ebp - 0x4c]
cmp edx, 0x80000006
je 0x40c071
mov ecx, dword [ebp - 0x4c]
push ecx
call sub.ADVAPI32.DLL_RegCloseKey
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
mov ebx, esi
test ebx, ebx
jne 0x40bf56
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x58]
push eax
push 0
push edx
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov eax, dword [ebp - 0x4c]
push eax
call sub.ADVAPI32.DLL_RegQueryValueExA
mov edx, dword [ebp - 0x5c]
cmp edx, 0x2000
jb 0x40c0ef
mov ecx, dword [ebp - 0x4c]
push ecx
call sub.ADVAPI32.DLL_RegCloseKey
mov word [ebp - 0x38], 0x20
mov edx, 0x48c15a
lea eax, [ebp - 0xc]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00474d44
or eax, 0xffffffff
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x40c3ea
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.00468dd0
pop ecx
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x54]
push edx
lea ecx, [ebp - 0x58]
push ecx
push 0
mov eax, dword [ebp + 0xc]
push eax
mov edx, dword [ebp - 0x4c]
push edx
call sub.ADVAPI32.DLL_RegQueryValueExA
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x460]
push ecx
push 0x48c176
push eax
call sub.USER32.DLL_wsprintfA
mov word [ebp - 0x38], 0x2c
add esp, 0xc
lea edx, [ebp - 0x460]
lea eax, [ebp - 0x10]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00474d44
mov ecx, dword [ebp - 0x58]
dec ecx
sub ecx, 2
jb 0x40c2a3
je 0x40c184
dec ecx
je 0x40c253
sub ecx, 3
je 0x40c313
jmp 0x40c392
xor edi, edi
mov eax, dword [ebp - 0x5c]
cmp edi, eax
jae 0x40c3d5
mov byte [ebp - 0x564], 0
mov edx, dword [ebp - 0x5c]
sub edx, edi
cmp edx, 0x10
jae 0x40c1a9
mov esi, dword [ebp - 0x5c]
sub esi, edi
jmp 0x40c1ae
mov esi, 0x10
mov eax, dword [ebp - 0x54]
test esi, esi
lea ebx, [eax + edi]
jbe 0x40c212
cmp esi, 1
jne 0x40c1e5
xor eax, eax
lea edx, [ebp - 0x5f]
mov al, byte [ebx]
push eax
push str._2.2X_n
push edx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea ecx, [ebp - 0x5f]
push ecx
lea eax, [ebp - 0x564]
push eax
call sub.KERNEL32.DLL_lstrcatA
jmp 0x40c20b
xor edx, edx
lea ecx, [ebp - 0x5f]
mov dl, byte [ebx]
push edx
push str._2.2X
push ecx
call sub.USER32.DLL_wsprintfA
add esp, 0xc
lea eax, [ebp - 0x5f]
push eax
lea edx, [ebp - 0x564]
push edx
call sub.KERNEL32.DLL_lstrcatA
inc edi
inc ebx
dec esi
test esi, esi
ja 0x40c1b8
mov word [ebp - 0x38], 0x38
lea edx, [ebp - 0x564]
lea eax, [ebp - 0x14]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00474d44
mov ecx, dword [ebp - 0x5c]
cmp edi, ecx
jb 0x40c191
jmp 0x40c3d5
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x564]
mov edx, dword [eax]
push edx
push str._lu_n
push ecx
call sub.USER32.DLL_wsprintfA
mov word [ebp - 0x38], 0x44
add esp, 0xc
lea edx, [ebp - 0x564]
lea eax, [ebp - 0x18]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00474d44
jmp 0x40c3d5
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0040b160
pop ecx
mov edi, eax
push edi
call sub.KERNEL32.DLL_lstrlenA
add eax, 2
push eax
call fcn.00468dd0
pop ecx
mov esi, eax
push edi
push esi
call sub.KERNEL32.DLL_lstrcpyA
push edi
call fcn.00468de0
pop ecx
push 0x48c198
push esi
call sub.KERNEL32.DLL_lstrcatA
mov word [ebp - 0x38], 0x50
lea eax, [ebp - 0x1c]
mov edx, esi
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00474d44
push esi
call fcn.00468de0
pop ecx
jmp 0x40c3d5
mov ebx, dword [ebp - 0x54]
jmp 0x40c38a
push ebx
call fcn.0040b160
pop ecx
mov edi, eax
push edi
call sub.KERNEL32.DLL_lstrlenA
add eax, 2
push eax
call fcn.00468dd0
pop ecx
mov esi, eax
push edi
push esi
call sub.KERNEL32.DLL_lstrcpyA
push edi
call fcn.00468de0
pop ecx
push 0x48c19a
push esi
call sub.KERNEL32.DLL_lstrcatA
mov word [ebp - 0x38], 0x5c
lea eax, [ebp - 0x20]
mov edx, esi
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00474d44
push esi
call fcn.00468de0
pop ecx
jmp 0x40c383
inc ebx
mov cl, byte [ebx]
test cl, cl
jne 0x40c382
inc ebx
mov al, byte [ebx]
test al, al
jne 0x40c318
jmp 0x40c3d5
mov edx, dword [ebp - 0x4c]
push edx
call sub.ADVAPI32.DLL_RegCloseKey
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.00468de0
pop ecx
mov edx, 0x48c19c
mov word [ebp - 0x38], 0x68
lea eax, [ebp - 0x24]
call fcn.00474b48
inc dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, dword [ebp + 0x10]
call fcn.004578d8
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.00474d44
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.00468de0
pop ecx
xor eax, eax
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret