Function at 0x46d6dc
Capabilities:
Check for vm using instruction vpcext

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x46d6e4
push ecx
push ebx
xor eax, eax
push ebp
push 0x47122e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4008
push 0xc0800000
push 0
call fcn.0040326c
fcomp dword [0x47123c]
wait
fnstsw ax
sahf
jne 0x470f20
mov bh, ch
not edi
movd dword [edi - 5], mm7
add dword [eax], eax
cld
imul edi, esi, 0x600bf2c
pop ss
dec edi
invalid
inc edx
outsd dx, dword [esi]
bound esi, qword [ebp + 0x73]
imul esi, dword gs:[bx + si + 0x61], 0x6f646f64
outsb dx, byte [esi]
popal
push 0x4005
push 0x90000000
push 0
call fcn.0040326c
call fcn.00403338
cmp edx, 0
jne 0x470f50
cmp eax, 0x187
je 0x470f72
lea ecx, [ebp - 4]
mov edx, 0xd
mov ax, 0x6a
call fcn.00405504
mov eax, dword [ebp - 4]
mov edx, 0x47124c
call fcn.00405b48
jne 0x470f77
call fcn.00482698
cmp dword [ebx], edi
xor al, 0x3e
cmp edi, dword [esi]
aaa
cmp dword [ebx], edi
xor esi, dword [esi]
cmp ebp, dword [esi]
popal
lea edx, ss:[ebp - 8]
mov eax, 0x47126c
call fcn.0040a728
mov eax, dword [ebp - 8]
mov edx, 0x471290
call fcn.00405b48
jne 0x470fc4
push 0x4008
push 0x96400000
push 0
call fcn.0040326c
call fcn.00403338
cmp edx, 0
jne 0x470fd5
cmp eax, 0x354
jne 0x470fd5
mov eax, 0x164aa9ee
mov eax, dword [eax]
mov edx, 0x4712a0
call fcn.00403a6c
push 0x4009
push 0x9c200000
push 0
call fcn.0040326c
fmul st(0)
fcomp dword [0x4712b0]
wait
fnstsw ax
sahf
je 0x471003
lea edx, [ebp - 0xc]
mov eax, fcn.00417c98
mov eax, dword [eax]
call fcn.00403a54
push 0x4008
push 0xa5400000
push 0
call fcn.0040326c
fcomp dword [0x4712b4]
wait
fnstsw ax
sahf
jne 0x471053
lea eax, [ebp - 0x10]
mov edx, 0x4712b8
call fcn.004056c0
mov eax, dword [ebp - 0x10]
mov edx, 0x4712dc
call fcn.00405e60
cmp eax, 0xf
jne 0x471053
lea ecx, [ebp - 0x14]
mov edx, fcn.00418908
mov eax, dword [0x431580]
mov eax, dword [eax]
call fcn.00403f30
push 0x4008
push 0xc3800000
push 0
call fcn.0040331c
fcomp dword [0x4712f0]
wait
fnstsw ax
sahf
jne 0x47108d
push 0x4008
push 0xb6800000
push 0
call fcn.00403298
fcomp dword [0x4712f4]
wait
fnstsw ax
sahf
jne 0x47109f
mov eax, 0x41901c
mov ecx, 0x263ec933
or edx, 0xffffffff
mov ebx, dword [eax]
call dword [ebx + 0x2c]
mov edx, 0x471304
mov eax, 0x471328
call fcn.00405e60
cmp eax, 2
jne 0x4710e0
lea edx, [ebp - 0x18]
mov eax, 0x471328
call fcn.0040a728
mov eax, dword [ebp - 0x18]
mov edx, 0x471290
call fcn.00405b48
je 0x4710e0
mov eax, dword [0x4321bc]
mov eax, dword [eax]
mov edx, 0x6667449c
call fcn.00403b88
push 0x4007
push 0xed800000
push 0
call fcn.0040326c
fmul st(0)
fcomp dword [0x47133c]
wait
fnstsw ax
sahf
jne 0x4711f7
lea ecx, [ebp - 0x1c]
mov edx, 0x10
mov ax, 0x68
call fcn.00405504
mov eax, dword [ebp - 0x1c]
mov edx, 0x47134c
call fcn.00405b48
jne 0x471129
push dword [0x407a3c]
push 0x4009
push 0x84000000
push 0
call fcn.0040326c
fmul st(0)
fcomp dword [0x471360]
wait
fnstsw ax
sahf
jne 0x471155
mov eax, 0x407b40
mov edx, dword [0x485cd0]
mov dword [edx], eax
mov edx, 0x471370
mov eax, 0x471398
call fcn.00405e60
cmp eax, 0x35
je 0x471188
push 0x4008
push 0xa5000000
push 0
call fcn.0040326c
fabs
fcomp dword [0x4713a8]
wait
fnstsw ax
sahf
jne 0x47118e
push dword [0x40794c]
push 0x4006
push 0xe1000000
push 0
call fcn.0040326c
fcomp dword [0x4713ac]
wait
fnstsw ax
sahf
jne 0x4711bb
mov eax, 0x407a44
test eax, eax
jne 0x4711bb
mov eax, 0x4079bc
test eax, eax
mov eax, 0x407b30
test eax, eax
push dword [0x407ba0]
push dword [0x407a5c]
lea edx, [ebp - 0x20]
mov eax, 0x4713bc
call fcn.0040a728
mov eax, dword [ebp - 0x20]
mov edx, 0x471290
call fcn.00405b48
jne 0x4711f7
mov eax, 0x407b80
mov edx, dword [0x485d44]
mov dword [edx], eax
lea ecx, [ebp - 0x24]
mov edx, 2
mov ax, 0x6d
call fcn.00405504
cmp dword [ebp - 0x24], 0
jne 0x471213
call fcn.004698f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471235
lea eax, [ebp - 0x24]
mov edx, 9
call fcn.0040553c
ret