Function at 0x42fb20
Capabilities:
Check os version
Query or enumerate registry value

Disassembly:
push 0x1d0
mov eax, 0x5c4a35
call fcn.00506dfb
mov eax, dword [0x6821f8]
test eax, eax
jne 0x42fde1
mov esi, 0x11c
lea eax, [ebp - 0x1cc]
push esi
xor edi, edi
xor ebx, ebx
push edi
push eax
inc ebx
call fcn.0056b050
add esp, 0xc
mov dword [ebp - 0x1cc], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x1cc]
push eax
call esi
test eax, eax
jne 0x42fc11
lea eax, [ebp - 0x1cc]
mov dword [ebp - 0x1cc], 0x114
push eax
call esi
test eax, eax
je 0x42fddf
lea eax, [ebp - 0x1d0]
push eax
push ebx
push edi
push 0x5f1b48
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0xb0]
push eax
push edi
push edi
push str.ProductType
push dword [ebp - 0x1d0]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x1d0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
lea eax, [ebp - 0xb0]
push eax
push str.WINNT
call esi
lea eax, [ebp - 0xb0]
push eax
push str.LANMANNT
call esi
test eax, eax
lea eax, [ebp - 0xb0]
push eax
push str.SERVERNT
cmove edi, ebx
call esi
test eax, eax
cmove edi, ebx
jmp 0x42fc25
mov al, byte [ebp - 0xb2]
cmp al, 1
jne 0x42fc1f
xor edi, edi
jmp 0x42fc25
cmp al, 3
jne 0x42fc25
mov edi, ebx
mov eax, dword [ebp - 0x1bc]
sub eax, 0
je 0x42fdd6
sub eax, 1
je 0x42fdad
sub eax, 1
jne 0x42fdd9
mov ecx, dword [ebp - 0x1c8]
cmp ecx, 4
ja 0x42fc58
push 6
jmp 0x42fdd8
mov eax, dword [ebp - 0x1c4]
cmp ecx, 5
jne 0x42fc89
test eax, eax
jne 0x42fc6e
push 0xb
jmp 0x42fdd8
cmp eax, ebx
jne 0x42fc79
push 0xd
jmp 0x42fdd8
cmp eax, 2
jne 0x42fda9
push 0xf
jmp 0x42fdd8
cmp ecx, 6
jne 0x42fd9c
test eax, eax
jne 0x42fca2
lea ebx, [edi*2 + 0x13]
jmp 0x42fdd9
cmp eax, ebx
jne 0x42fcb2
lea ebx, [edi*2 + 0x17]
jmp 0x42fdd9
cmp eax, 2
jne 0x42fd8e
push ecx
mov ecx, esp
mov dword [ebp - 0x1d4], esp
push 0x5f1bf4
call fcn.00413f09
and dword [ebp - 4], 0
push ecx
mov ecx, esp
mov dword [ebp - 0x1d8], esp
push 0x5f1c18
call fcn.00413f09
push ecx
mov ecx, esp
mov byte [ebp - 4], bl
push 0x5f1b08
call fcn.00413f09
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x1d0]
push eax
call fcn.004346a7
add esp, 0x10
push 0x5f1c74
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 4], 2
call fcn.0042e677
push 0x1f
pop esi
test eax, eax
jne 0x42fd2b
push 0x1e
pop ebx
jmp 0x42fd43
push 0x5f1c7c
lea ecx, [ebp - 0x1d0]
lea ebx, [edi + 0x1b]
call fcn.0042e677
test eax, eax
cmove ebx, esi
push ecx
mov ecx, esp
mov dword [ebp - 0x1dc], esp
push 0x5f1c84
call fcn.00413f09
push ecx
mov ecx, esp
mov byte [ebp - 4], 3
push 0x5f1c18
call fcn.00413f09
push reloc.OLEAUT32.dll_SysReAllocString
mov byte [ebp - 4], 2
call fcn.004347ec
mov ecx, dword [ebp - 0x1d0]
add esp, 0xc
cmp eax, 0xa
cmove ebx, esi
lea ecx, [ecx - 0x10]
call fcn.00412ac4
jmp 0x42fdd9
cmp eax, 3
jne 0x42fd97
push 0x1e
jmp 0x42fdd8
cmp eax, 4
je 0x42fda5
cmp ecx, 0xa
jne 0x42fda9
test eax, eax
jne 0x42fda9
push 0x1f
jmp 0x42fdd8
push 0x20
jmp 0x42fdd8
cmp dword [ebp - 0x1c8], 4
jne 0x42fdd9
mov eax, dword [ebp - 0x1c4]
test eax, eax
jne 0x42fdc4
push 3
jmp 0x42fdd8
cmp eax, 0xa
jne 0x42fdcd
push 8
jmp 0x42fdd8
cmp eax, 0x5a
jne 0x42fdd9
push 0xa
jmp 0x42fdd8
push 2
pop ebx
mov dword [0x6821f8], ebx
mov eax, ebx
call fcn.00506da5
ret