Function at 0x40962e
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
push edi
mov edx, 0xa
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x409635
call fcn.00417c90
push dword [esp + 0x34]
call fcn.0040b1b0
mov dword [esp + 8], 0x118
push dword [esp + 8]
call fcn.00414530
mov dword [esp + 0x1c], eax
push dword [esp + 8]
call fcn.00414530
mov dword [esp + 0x20], eax
push 0x19
call fcn.00414530
mov dword [esp + 0x24], eax
push 0x18
push 0xffffffff
mov eax, str.BCDFGHJKMPQRTVWXY2346789
push eax
push dword [esp + 0x30]
call fcn.00414550
call fcn.0040f36b
mov ebx, eax
cmp ebx, 0x32
jg 0x4096c9
lea eax, [esp]
push eax
push 0x20019
push 0
mov eax, str.SoftwareMicrosoftWindows_NTCurrentVersion
push eax
push 0x80000002
call sub.ADVAPI32.DLL_RegOpenKeyExA
mov dword [esp + 4], eax
jmp 0x4096eb
lea eax, [esp]
push eax
push 0x20119
push 0
mov eax, str.SoftwareMicrosoftWindows_NTCurrentVersion
push eax
push 0x80000002
call sub.ADVAPI32.DLL_RegOpenKeyExA
mov dword [esp + 4], eax
mov ebx, dword [esp + 4]
and ebx, ebx
jne 0x40988f
lea eax, [esp + 8]
push eax
push dword [esp + 0x20]
push 0
push 0
mov eax, str.DigitalProductID
push eax
push dword [esp + 0x14]
call sub.ADVAPI32.DLL_RegQueryValueExA
push dword [esp]
call sub.ADVAPI32.DLL_RegCloseKey
mov ebx, dword [esp + 8]
cmp ebx, 0x118
je 0x40988f
mov dword [esp + 0xc], 0x18
jmp 0x40973b
xor eax, eax
cmp eax, dword [esp + 0xc]
jg 0x4097df
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x42
jmp 0x409759
mov eax, 0x34
cmp eax, dword [esp + 0x10]
jg 0x4097b8
mov ebx, dword [esp + 0x14]
shl ebx, 8
mov edi, dword [esp + 0x1c]
add edi, dword [esp + 0x10]
push edi
call fcn.004146a0
add ebx, eax
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x14]
mov eax, ebx
mov ecx, 0x18
cdq
idiv ecx
mov ebx, eax
push ebx
mov ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x14]
push ebx
call fcn.004146b0
mov ebx, dword [esp + 0x14]
mov eax, ebx
mov ecx, 0x18
cdq
idiv ecx
mov ebx, edx
mov dword [esp + 0x14], ebx
dec dword [esp + 0x10]
jno 0x409759
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x14]
push ebx
call fcn.004146a0
push eax
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x10]
push ebx
call fcn.004146b0
dec dword [esp + 0xc]
jno 0x40973b
mov dword [esp + 0xc], 0
jmp 0x4097e9
mov eax, 0xf
cmp eax, dword [esp + 0xc]
jl 0x40984b
mov edx, dword [esp + 0x18]
push edx
call fcn.00417af0
pop edx
push eax
push edx
call fcn.00417bf0
push edx
call fcn.00417af0
pop edx
push eax
push edx
call fcn.00417af0
pop edx
push eax
push 0x18
push 5
mov ebx, dword [esp + 0x34]
add ebx, dword [esp + 0x20]
push ebx
call fcn.004146c0
pop eax
mov edx, 0x447190
push edx
call fcn.00417bf0
lea eax, [esp + 0x1c]
push eax
call fcn.00417b60
add dword [esp + 0xc], 5
jno 0x4097e9
mov edx, dword [esp + 0x18]
push edx
call fcn.00417af0
pop edx
push eax
push edx
call fcn.00417bf0
push edx
call fcn.00417af0
pop edx
push eax
push edx
call fcn.00417af0
pop edx
push eax
push 0x18
push 5
mov ebx, dword [esp + 0x34]
add ebx, 0x14
push ebx
call fcn.004146c0
pop eax
lea eax, [esp + 0x1c]
push eax
call fcn.00417b60
push dword [esp + 0x1c]
call fcn.00414840
push dword [esp + 0x20]
call fcn.00414840
push dword [esp + 0x24]
call fcn.00414840
mov edx, dword [esp + 0x18]
push edx
call fcn.00417af0
pop edx
push eax
push edx
call fcn.00417bf0
pop eax
push eax
call fcn.0040b140
pop edx
add eax, edx
jmp 0x4098d0
push dword [esp + 0x18]
call fcn.00417cf0
add esp, 0x28
pop edi
pop ebx
ret