Function at 0x46f819
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x634274]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, 0x11c
lea eax, [ebp - 0x120]
push esi
push 0
push eax
call fcn.00486960
add esp, 0xc
mov dword [ebp - 0x120], esi
call fcn.00460579
test al, al
je 0x46f868
mov ch, 0x3c
mov ecx, 0xdff1dd16
sbb eax, 0xbf4bbeca
ljmp 0x8369
call fcn.00460351
test al, al
je 0x46f890
adc al, 0xf
sbb dword [ebp + 0x133f178d], ebp
mov ch, 0xa9
inc edi
push ss
scasd eax, dword es:[edi]
cmp ebp, 0xdf332502
pop esp
jb 0x46f8ca
lahf
cdq
fmulp st(0)
sti
nop
int3
call fcn.0046082b
test al, al
je 0x46f8b1
popal
or eax, 0xb2f21689
cdq
xchg edi, eax
rol byte [edx - 0x23078321], 1
outsb dx, byte [esi]
jbe 0x46f8b6
xchg edi, eax
add al, 0x70
shr cl, cl
or al, ch
jne 0x46f8c3
call fcn.0046082b
invalid
test al, al
je 0x46f8d2
aas
xor eax, 0xbfded884
lodsd eax, dword [esi]
xor al, 1
push ebp
push 0xfffffffffffffff3
push edx
sub ch, dh
push ecx
xchg edx, eax
test byte [ebp + 0x78380cf5], cl
and al, ch
stosd dword es:[edi], eax
or edi, edi
inc dword [eax + eax*8 - 0x2019e18c]
call fcn.00460282
test al, al
je 0x46f8f9
out 0xdf, al
push eax
imul esi, dword [eax - 0x7353622c], 0x69f3e477
push ebx
mov cl, 0x27
nop
mov dword [ebp - 0x20be358], ebp
stosb byte es:[edi], al
aad 0xb5
sbb dword [ebp - 0x1d], edx
ror dword [ebp - 0x11f7b], 0xff
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x11c], 6
jb 0x46f91d
cmp dword [ebp - 0x118], 2
jb 0x46f91d
xor eax, eax
inc eax
jmp 0x46f985
call fcn.004606d2
test al, al
je 0x46f93c
push es
cwde
push cs
cmp dword [ebx - 0x16], 0xffffffa9
and al, 0x57
leave
xor al, 1
test eax, 0xf10ac5bc
out 0x13, al
jnp 0x46f906
aad 0xe8
and al, 0xb
invalid
call fcn.00460465
test al, al
je 0x46f95e
pop ss
dec esi
sbb dword [ebp + 0x66], esi
fimul word [ebp + 0x27]
pushal
cmpsd dword [esi], dword es:[edi]
invalid
call fcn.00460282
test al, al
je 0x46f97b
mov byte [0x76584d75], al
in eax, dx
adc ah, byte [0x17ef7637]
jp 0x46f9b3
fldcw word [ecx - 0x7c369761]
mov ebp, 0xfffffee4
or bl, byte [ebx]
rol byte [eax - 0x75], 0x4d
cld
cmp dword [ebp - 0x11c], 0xa
sbb eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00455afe
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov esi, 0x11c
lea eax, [ebp - 0x120]
push esi
push 0
push eax
call fcn.00486960
add esp, 0xc
mov dword [ebp - 0x120], esi
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
call fcn.004604ef
test al, al
je 0x46fa01
fsub st(7), st(0)
cmp bl, byte [edx + 0x6817a0cf]
nop
sbb edi, edx
cmp al, 0xa7
push ebp
or eax, edx
lahf
daa
and byte [edx + ecx*4], bh
call fcn.00460465
test al, al
je 0x46fa28
or bh, bh
inc dword [eax + eax*8 - 0x887e18c]
js 0x46fa03
ficomp word [ebp + ebp - 0x125cc2d2]
add byte [esi + 0x16], dh
sar dword [edi - 0x19a81aa7], cl
mov ah, 0x16
xchg esp, eax
out dx, al
outsd dx, dword [esi]
hlt
call fcn.00460717
test al, al
je 0x46fa51
mov dword [ebp - 0x7940681f], ecx
inc ebp
xor byte [ebx + edi], 0xcb
pop ecx
xor al, 0xc7
sbb dword [esi - 0x5a], eax
cmp esi, dword [esi]
push ecx
mov eax, dword gs:[0x87a58a39]
inc esi
in al, 0x96
cmp al, 0x8b
mov dword [0xfee4858b], eax
invalid
mov eax, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov dword [ebp - 0x124], eax
call fcn.0046068d
test al, al
je 0x46fa82
jns 0x46facb
outsd dx, dword [esi]
xchg edx, eax
mov word [esi], fs
xlatb
mov bh, 0x4f
adc edx, dword [eax + 0x21299f4a]
sbb dword [ebx + 0x7e9183e4], edx
cli
call fcn.0046023d
test al, al
je 0x46faa4
invalid
cmp dword [ebp - 0x124], 5
jg 0x46fab7
cmp edi, 2
jg 0x46fab7
xor eax, eax
inc eax
jmp 0x46fab9
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00455afe
mov esp, ebp
pop ebp
ret
mov ebp, esp
push ecx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, ecx
sub edi, dword [ebp + 0xc]
je 0x46fb90
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
cmp eax, edi
jae 0x46fb6e
mov eax, dword [esi]
sub eax, ecx
dec eax
cmp eax, edi
jb 0x46fb98
sub ecx, dword [esi]
add ecx, edi
push ebx
push ecx
mov ecx, esi
call fcn.004703f0
push 1
push 1
push eax
mov dword [ebp - 4], eax
call fcn.00401e60
mov ebx, eax
push ebx
push dword [ebp + 8]
push dword [esi]
call fcn.00476aa0
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00476aa0
push eax
push dword [esi + 4]
push dword [ebp + 8]
call fcn.00476aa0
mov eax, dword [esi + 4]
add esp, 0x30
sub eax, dword [esi]
add edi, eax
cmp dword [esi], 0
je 0x46fb5b
mov eax, dword [esi + 8]
sub eax, dword [esi]
push 1
push eax
push dword [esi]
call fcn.00401ec0
add esp, 0xc
mov eax, dword [ebp - 4]
add eax, ebx
mov dword [esi + 8], eax
lea eax, [ebx + edi]
mov dword [esi + 4], eax
mov dword [esi], ebx
pop ebx
jmp 0x46fb90
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00476aa0
mov ecx, dword [esi + 4]
lea eax, [ecx + edi]
push eax
push ecx
push dword [ebp + 8]
call fcn.0046fbf6
add esp, 0x18
add dword [esi + 4], edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
push str.vector_T__too_long
call fcn.004555b0
int3