Function at 0x406f00
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x586f40]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x11c
lea eax, [ebp - 0x120]
push 0
push eax
mov edi, ecx
mov esi, edx
call fcn.005121a0
add esp, 0xc
lea ecx, [ebp - 0x120]
push ecx
mov dword [ebp - 0x120], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov ax, word [ebp - 0xc]
cmp ax, 2
jne 0x406f76
mov edx, dword [str.Service_Pack2]
mov dword [esi], edx
mov eax, dword [0x564b3c]
mov dword [esi + 4], eax
mov ecx, dword [0x564b40]
mov dword [esi + 8], ecx
mov dx, word [0x564b44]
mov word [esi + 0xc], dx
jmp 0x406f9f
cmp ax, 3
jne 0x406f9f
mov eax, dword [str.Service_Pack3]
mov dword [esi], eax
mov ecx, dword [0x564b4c]
mov dword [esi + 4], ecx
mov edx, dword [0x564b50]
mov dword [esi + 8], edx
mov ax, word [0x564b54]
mov word [esi + 0xc], ax
mov ecx, dword [ebp - 0x114]
push ecx
push 0x564b58
push ebx
call fcn.00510673
mov eax, dword [ebp - 0x11c]
add esp, 0xc
cmp eax, 6
jne 0x40712a
mov eax, dword [ebp - 0x118]
cmp eax, 2
jne 0x407043
cmp byte [ebp - 6], 1
jne 0x407004
mov edx, dword [str.Windows_8]
mov dword [edi], edx
mov eax, dword [0x564b60]
mov dword [edi + 4], eax
mov cx, word [0x564b64]
mov word [edi + 8], cx
pop edi
mov eax, 0x1009
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
mov edx, dword [str.Windows_Server_2012]
mov dword [edi], edx
mov eax, dword [0x564b6c]
mov dword [edi + 4], eax
mov ecx, dword [0x564b70]
mov dword [edi + 8], ecx
mov edx, dword [0x564b74]
mov dword [edi + 0xc], edx
mov eax, dword [0x564b78]
mov dword [edi + 0x10], eax
pop edi
mov eax, 0x1008
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
mov ecx, 1
cmp eax, ecx
jne 0x4070a5
cmp byte [ebp - 6], cl
jne 0x407081
mov ecx, dword [str.Windows_7]
mov dword [edi], ecx
mov edx, dword [0x564b80]
mov dword [edi + 4], edx
mov ax, word [0x564b84]
mov word [edi + 8], ax
pop edi
mov eax, 0x1007
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
mov ecx, 5
mov esi, str.Windows_Server_2008_R2
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
mov eax, 0x1006
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x40721d
cmp byte [ebp - 6], cl
jne 0x4070eb
mov ecx, dword [str.Windows_Vista]
mov dword [edi], ecx
mov edx, dword [0x564ba4]
mov dword [edi + 4], edx
mov eax, dword [0x564ba8]
mov dword [edi + 8], eax
mov cx, word [0x564bac]
mov word [edi + 0xc], cx
pop edi
mov eax, 0x1005
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
mov edx, dword [str.Windows_Server_2008]
mov dword [edi], edx
mov eax, dword [0x564bb4]
mov dword [edi + 4], eax
mov ecx, dword [0x564bb8]
mov dword [edi + 8], ecx
mov edx, dword [0x564bbc]
mov dword [edi + 0xc], edx
mov eax, dword [0x564bc0]
mov dword [edi + 0x10], eax
pop edi
mov eax, 0x1004
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x40721d
mov eax, dword [ebp - 0x118]
cmp eax, 2
jne 0x4071a5
cmp byte [ebp - 6], 1
jne 0x407165
mov ecx, 9
mov esi, str.Windows_XP_Professional_x64_Edition
rep movsd dword es:[edi], dword [esi]
pop edi
mov eax, 0x1003
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
mov ecx, dword [str.Windows_Server_2003]
mov dword [edi], ecx
mov edx, dword [0x564bec]
mov dword [edi + 4], edx
mov eax, dword [0x564bf0]
mov dword [edi + 8], eax
mov ecx, dword [0x564bf4]
mov dword [edi + 0xc], ecx
mov edx, dword [0x564bf8]
mov dword [edi + 0x10], edx
pop edi
mov eax, 0x1002
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x4071e2
mov eax, dword [str.Windows_XP]
mov dword [edi], eax
mov ecx, dword [0x564c00]
mov dword [edi + 4], ecx
mov dx, word [0x564c04]
mov word [edi + 8], dx
mov al, byte [0x564c06]
mov byte [edi + 0xa], al
pop edi
mov eax, 0x1000
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
test eax, eax
jne 0x40721d
mov ecx, dword [str.Windows_2000]
mov dword [edi], ecx
mov edx, dword [0x564c0c]
mov dword [edi + 4], edx
mov eax, dword [0x564c10]
mov dword [edi + 8], eax
mov cl, byte [0x564c14]
mov byte [edi + 0xc], cl
pop edi
mov eax, 0x1001
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0051026e
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.0051026e
mov esp, ebp
pop ebp
ret