Function at 0x440d60
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x48d7ce
mov eax, dword fs:[0]
push eax
sub esp, 0x284
mov eax, dword [0x4b77c0]
xor eax, esp
mov dword [esp + 0x280], eax
push ebx
push esi
push edi
mov eax, dword [0x4b77c0]
xor eax, esp
push eax
lea eax, [esp + 0x294]
mov dword fs:[0], eax
mov esi, dword [esp + 0x2a4]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
push 3
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
push 0x4958bc
mov ecx, esi
mov dword [esp + 0x2a4], ebx
mov dword [esp + 0x44], esi
mov byte [esi + 4], bl
call fcn.0040c450
lea eax, [esp + 0xc8]
push eax
mov dword [esp + 0x2a0], ebx
mov dword [esp + 0x20], 1
mov dword [esp + 0xcc], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edi, dword [esp + 0x160]
mov al, byte [esp + 0x162]
and edi, 0x200
cmp al, 3
je 0x440e15
mov dword [esp + 0x10], ebx
cmp al, 2
jne 0x440e1d
mov dword [esp + 0x10], 1
push 0x12b
lea ecx, [esp + 0x169]
push ebx
push ecx
mov byte [esp + 0x170], bl
call fcn.0046bf90
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push 1
push ebx
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push SysStringLen
mov dword [esp + 0x2c], 0x12c
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x440e9a
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x168]
push ecx
push ebx
push ebx
push 0x495880
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x440e88
cmp dword [esp + 0x18], 1
jae 0x440e8f
mov byte [esp + 0x164], bl
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x4dce8c]
add eax, 0xfffffff9
cmp eax, 7
ja case.default.0x440eab
jmp dword [eax*4 + 0x441248]
push str.2000
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push 0x495874
mov ecx, esi
call fcn.00420c60
mov eax, str._home
cmp edi, ebx
jne 0x440edd
mov eax, str._pro
push eax
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push str.2003
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push str.vista
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push str.2008
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push 0x495848
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push str.2008r2
mov ecx, esi
call fcn.00420c60
jmp 0x440ff6
push 1
push 3
lea ecx, [esp + 0x48]
call fcn.00425080
mov ecx, dword [0x4dce94]
mov edx, dword [0x4dce90]
push ecx
push 0x494f10
push edx
lea ecx, [esp + 0x54]
mov dword [esp + 0x2a8], 1
call fcn.00424e80
push eax
call fcn.004247e0
add esp, 8
mov ecx, eax
call fcn.00424e80
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
call fcn.00422550
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 2
call fcn.0040be40
cmp dword [esp + 0x38], 0x10
jb 0x440fb8
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0046b849
add esp, 4
lea ecx, [esp + 0x94]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
mov byte [esp + 0x29c], bl
call fcn.00420090
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::ios_base.0
call fcn.0046b243
add esp, 4
cmp dword [esp + 0x10], ebx
je 0x44100a
push 7
push str._server
mov ecx, esi
call fcn.0040c530
mov eax, dword [0x4dce90]
cmp eax, ebx
jg 0x44101e
mov byte [0], bl
mov eax, dword [0x4dce90]
shl eax, 8
or eax, dword [0x4dce94]
shl eax, 8
or eax, dword [0x4dce98]
cmp eax, 0x60000
jl 0x441123
cmp edi, ebx
je 0x441052
push 5
push str._home
mov ecx, esi
call fcn.0040c530
jmp 0x441123
lea eax, [esp + 0x164]
push str.Standard
push eax
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x44107e
push 9
push str._standard
mov ecx, esi
call fcn.0040c530
jmp 0x441123
lea ecx, [esp + 0x164]
push str.Professional
push ecx
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x44109e
push str._pro
jmp 0x44111c
lea edx, [esp + 0x164]
push str.Business
push edx
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x4410be
push str._business
jmp 0x44111c
lea eax, [esp + 0x164]
push str.Enterprise
push eax
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x4410de
push str._enterprise
jmp 0x44111c
lea ecx, [esp + 0x164]
push str.Datacenter
push ecx
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x4410fe
push str._datacenter
jmp 0x44111c
lea edx, [esp + 0x164]
push str.Ultimate
push edx
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x441123
push str._ultimate
mov ecx, esi
call fcn.00420c60
push 0x58
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x441138
push 8
push str._starter
jmp 0x441158
lea eax, [esp + 0x164]
push str.Basic
push eax
call fcn.0046c6d0
add esp, 8
test eax, eax
je 0x44115f
push 6
push str._basic
mov ecx, esi
call fcn.0040c530
call fcn.00434150
test eax, eax
je 0x441176
push 4
push str._x64
mov ecx, esi
call fcn.0040c530
cmp dword [0x4dce98], ebx
jle 0x44121d
push 1
push 3
lea ecx, [esp + 0x48]
call fcn.00425080
mov ecx, dword [0x4dce98]
push ecx
lea edx, [esp + 0x4c]
push 0x495788
push edx
mov dword [esp + 0x2a8], 3
call fcn.004247e0
add esp, 8
mov ecx, eax
call fcn.00424e80
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
call fcn.00422550
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
mov byte [esp + 0x2a8], 4
call fcn.0040be40
cmp dword [esp + 0x38], 0x10
jb 0x4411ef
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0046b849
add esp, 4
lea ecx, [esp + 0x94]
mov byte [esp + 0x29c], bl
call fcn.00420090
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::ios_base.0
call fcn.0046b243
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x294]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x280]
xor ecx, esp
call fcn.0046be7b
add esp, 0x290
ret