Function at 0x4093b0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
push edi
mov edx, 0xa
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x4093b7
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 0x40944b
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 0x40946d
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 0x409611
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 0x409611
mov dword [esp + 0xc], 0x18
jmp 0x4094bd
xor eax, eax
cmp eax, dword [esp + 0xc]
jg 0x409561
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x42
jmp 0x4094db
mov eax, 0x34
cmp eax, dword [esp + 0x10]
jg 0x40953a
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 0x4094db
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 0x4094bd
mov dword [esp + 0xc], 0
jmp 0x40956b
mov eax, 0xf
cmp eax, dword [esp + 0xc]
jl 0x4095cd
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 0x40956b
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 0x409652
push dword [esp + 0x18]
call fcn.00417cf0
add esp, 0x28
pop edi
pop ebx
ret