Function at 0x40f45a
Capabilities:
Check os version

Disassembly:
pop ebp
hlt
invalid
mov eax, dword [esi + 4]
mov bl, bl
js 0x41bf93
mov di, di
push 0x43cb39
ret
mov eax, dword [edi]
mov ah, ah
push 0xe
xchg al, ah
xchg ah, al
push eax
call fcn.0042cb65
or ax, ax
add esp, 8
pop edi
pop esi
shr bl, 0x40
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.0041fc79
add esp, 4
test si, si
jb 0x40f445
jne 0x42720b
je 0x40d8dc
sbb byte [ebx], bl
cmp ax, 0x33c
jne 0x418410
je 0x40d8eb
enter 0xffffffffffffee36, 0xf
test byte [edi], bl
je 0x418410
pop ds
stosd dword es:[edi], eax
add byte [eax], al
jno 0x40d8ed
inc ecx
add byte [ebx], ah
add byte [eax], al
xor byte [eax], al
add byte [eax], al
xchg ecx, eax
inc esp
add byte [esi + ecx + 0x44], dl
add byte [edi + esi*4], dh
test byte [ebp + ebx], al
jb 0x41220f
mov cx, cx
jmp dword [esi]
jmp 0x438d7d
daa
mov ecx, 0x40e8c166
mov cl, bl
rcr byte [edi], cl
jmp dword [esi]
and eax, 0x38850fa3
inc ebx
add dword [eax], eax
je 0x40f452
cwde
movsb byte es:[edi], byte [esi]
in al, 0xf
test byte [0xda000143], ch
xor cl, byte [ebp - 0x74fbdb9c]
lea esp, [esp + 4]
mov ecx, dword [esi]
je 0x423785
fidiv dword [edx]
mov dh, dh
mov dl, byte [esi + eax + 0x24]
xor dl, cl
jb 0x419bdc
sub dl, 0x1f
jmp 0x446892
xchg edx, eax
movsb byte es:[edi], byte [esi]
jbe 0x40d867
shr di, 0x40
mov ax, word [ebp + eax]
mov ebp, ebp
lea esi, [esi + 0xc]
stc
add word [ebx + edx], ax
jmp dword [esi]
call fcn.0042cb65
mov eax, dword [esi]
push pe_nt_image_headers32
lea eax, [eax]
lea ecx, [ebp - 0x10c]
jmp 0x41122e
push eax
push ecx
call fcn.00443296
lea edx, [ebp - 0x10c]
mov ebx, dword [esi + 8]
shl eax, 0x20
mov ax, word [ebp + eax]
lea esi, [esi + 0xc]
ja 0x4477e4
jbe 0x411752
cmpsd dword [esi], dword es:[edi]
test dl, cl
retf
jbe 0x4477e4
and eax, 0x418e5d1b
add byte [eax + eax], al
add byte [ebx], dh
xor eax, 0x3c0041
add byte [eax], al
cmp dword [eax], eax
add byte [eax], al
xor esi, dword [0x390041]
add byte [eax], al
cmp al, 0
add byte [eax], al
retf 0x415d
sub dl, 0x58
clc
sub cl, 0x34
xor dl, cl
jb 0x43a565
mov byte [esi + eax + 0x2c], dl
shl ax, 0x20
inc eax
stc
jb 0x4118f7
pop ss
xor ecx, dword [edi]
sbb byte [esi - 0x26ffff60], 0x85
jb 0x41b99b
fld dword [ebp - 0x79a21377]
inc byte [esi - 0x10d33c09]
loopne 0x411903
inc ebx
add byte [edx + 0x7400430e], cl
push cs
inc ebx
add byte [ecx - 0x4effbcf2], al
mov ebx, 0xd2cb0042
inc eax
add byte [ecx - 0x71], al
inc ecx
add byte [edi + 8], dl
inc ecx
add byte [edi], cl
ja 0x40ff2d
jbe 0x411934
xlatb
add al, 0xf
xchg bl, dh
in eax, 0xff
jmp dword [0x42c769e6]
push 0x41e462
ret
xor eax, 0x40e9bb94
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ecx + 0x41], al
add byte [ecx], al
lea eax, [ecx]
push es
rol dword [ecx], cl
push esp
xchg edx, eax
inc esp
add byte [edi - 0x6c], ah
inc ecx
add byte [eax], ah
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edx], cl
pop es
inc ebx
add byte [ebp + 0x22], al
inc ecx
add byte [ebp + ebp + 0x10442aa3], dh
inc esp
add byte [eax + eax], al
add byte [eax + eax], al
add byte [esi + 0x50], ah
inc ebx
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
aad 0x40
inc ebx
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
xor esi, dword [0x3d0041]
add byte [eax], al
xor eax, 0x33000000
xor eax, 0x350041
add byte [eax], al
cmp eax, 0x5d000000
mov es, word [ecx]
cmp al, 0
add byte [eax], al
push ax
inc ebx
add byte [eax], dh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
aad 0x2a
inc ebx
add ah, ch
xchg ecx, eax
enter 0x3416, 0
add byte [eax], al
adc al, 0x41
inc ecx
add ah, ch
xchg ecx, eax
enter 0x3416, 0
add byte [eax], al
adc eax, dword [ebx + eax*2]
inc dword [eax]
add byte [eax], al
xor al, 0
add byte [eax], al
inc esp
loope 0x4122fd
add byte [eax], bl
lea eax, [ecx]
pushfd
rol dword [ecx], 0x40
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
sbb esi, dword [esi]
inc ebx
add byte [eax], al
inc edx
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
push ebp
add byte [eax], al
add byte [eax + ecx*2], dh
inc ecx
add byte [edi - 0x6c], ah
inc ecx
add byte [eax], ah
add byte [eax], al
add byte [eax], cl
add byte [eax], al
adc ebx, dword [ecx + eax*2 + 0x44923a00]
add ch, bh
movsd dword es:[edi], dword [esi]
inc edx
add byte [edi], cl
and eax, dword [ecx]
inc ebp
invalid
adc eax, 0xefc1668b
inc eax
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
mov ebx, dword [esi + 8]
mov bx, bx
mov al, byte [eax]
lea esi, [esi + 0xc]
cmp byte [ebp + ebx], al
call fcn.00433b26
fimul dword [ebp - 0x78]
leave
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
movzx eax, byte [eax]
shl bp, 0x20
lea esi, [esi + 0xc]
mov bh, bh
mov dword [ebp + ebx], eax
jmp dword [esi]
mov ah, ah
xchg esi, eax
xchg esi, eax
mov ebx, dword [ebp + 0x44]
mov bh, bh
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
shr cx, 0x40
lea esi, [esi + 0xc]
shl byte [ebx + edx], cl
mov bh, bh
shr ebp, 0x40
jmp dword [esi]
movzx eax, word [edi]
add ebx, eax
jmp 0x44a961
fstp dword [edi + ecx]
xchg dword [ecx + 0x73], ebx
add al, byte [eax]
jbe 0x412c97
cpuid
ret
jbe 0x439fea
ficom dword [edi - 0x40]
in eax, 0x20
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov eax, dword [eax]
lea esi, [esi + 0xc]
mov cl, cl
mov dword [ebp + ebx], eax
ja 0x4280ea
shl ecx, 0x20
jbe 0x412cc2
cpuid
ret
jbe 0x4280ea
mov eax, dword [ebp - 4]
stc
xchg ecx, ebp
xchg ebp, ecx
jb 0x412f5f
or al, 0x4a
fisttp word gs:[edi]
sbb byte [ebx], 0x3c
add eax, dword [eax]
jb 0x446b80
ficomp dword [edi + ecx*4]
inc esp
and al, 0xfc
mov byte [esi + 0xbb], 0
push eax
lea ebx, [ebx]
push esi
jno 0x41fb80
jo 0x412f83
invalid
jo 0x41fb80
and eax, 0xe2e878
add al, byte [eax]
add esp, 4
test ax, ax
jb 0x435254
je 0x4183b7
jne 0x412faa
mov ch, 0xb8
mov dword [bp + 0x28], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
push edi
shr bh, 0x40
call fcn.00433a2f
or dx, dx
add esp, 4
sub eax, 0x9762870f
add al, byte [eax]
jbe 0x413c3b
cpuid
nop
ret
jbe 0x43d397
mov edx, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x10]
push edx
push eax
call fcn.00435a54
add esp, 0xc
mov dword [ebp - 0xc], eax
shr bx, 0x40
test edi, edi
jb 0x4109e4
je 0x413c9e
mov edi, edi
jne 0x413c74
in eax, dx
cpuid
ret
mov eax, dword [esi]
lea ecx, [edi + edi*2]
mov edx, dword [ebx + ecx*4]
lea edi, [ebx + ecx*4]
push edx
jmp 0x413c81
mov eax, dword [esi]
push 0
push eax
call fcn.0042ff1c
mov ecx, dword [esi]
shr ah, 0x40
push 0
push ecx
mov ah, ah
call fcn.0043a61b
mov di, word [ebx + 8]
mov edx, dword [esi]
push edi
shr edx, 0x40
call fcn.0042b1df
invalid
mov edi, dword [ebp - 8]
push edi
mov ah, ah
call fcn.004341fe
ja 0x412f51
mov si, si
jbe 0x414791
push esp
fimul word [edi]
xchg byte [edx - 0x27000019], bh
mov ecx, 0xfc085f5
jbe 0x412f51
fdivr dword [ecx + 0xfc085f5]
ror byte [edi], 0x82
pop es
adc dword [ecx], eax
add cl, ch
jno 0x414811
add byte [edi], 0x11
add dword [eax], eax
add dword [eax], eax
sub byte [eax + 0xf003b80], 0x84
js 0x41479b
add al, byte [eax]
jne 0x414804
mov eax, dword [0x66df5466]
shl edx, 0x20
shl dx, 0x20
push pe_nt_image_headers32
push 0
xchg dword [ebx - 0x64], edx
invalid
jmp 0x42db04
mov dh, dh
js 0x441024
jns 0x41668c
add esp, 0xc
push 0x43a76c
ret
jmp dword [esi]
adc ah, byte [ebp - 0x27bc77f1]
add byte [eax], al
jns 0x417c57
nop
cpuid
ret 0x890f
jns 0x425494
add byte [edi], cl
test byte [ecx + 0x75ffffa8], al
add al, 0x90
jo 0x417d02
xor dword [edi], ecx
adc byte [esi + 0x53], 2
add byte [edx + 0x4e18e8b9], al
add dword [eax], eax
push esi
inc edx
mov dx, dx
mov eax, dword [esi + 4]
ja 0x44bb34
jbe 0x418473
rcr byte [edi + ecx - 0x7a], 0xbb
add eax, dword ss:[eax]
jbe 0x44bb34