4017ca:	b8 01 00 00 00       	mov    $0x1,%eax
4017cf:	31 c9                	xor    %ecx,%ecx
4017d1:	0f a2                	cpuid
4017d3:	81 e2 ff ff ef bf    	and    $0xbfefffff,%edx
4017d9:	83 fd 00             	cmp    $0x0,%ebp
4017dc:	0f 85 18 00 00 00    	jne    0x4017fa
4017e2:	81 ca 00 00 00 40    	or     $0x40000000,%edx
4017e8:	80 e4 0f             	and    $0xf,%ah
4017eb:	80 fc 0f             	cmp    $0xf,%ah
4017ee:	0f 85 06 00 00 00    	jne    0x4017fa
4017f4:	81 ca 00 00 10 00    	or     $0x100000,%edx
4017fa:	0f ba e2 1c          	bt     $0x1c,%edx
4017fe:	0f 83 27 00 00 00    	jae    0x40182b
401804:	81 e2 ff ff ff ef    	and    $0xefffffff,%edx
40180a:	83 fe 00             	cmp    $0x0,%esi
40180d:	0f 84 18 00 00 00    	je     0x40182b
401813:	81 ca 00 00 00 10    	or     $0x10000000,%edx
401819:	c1 eb 10             	shr    $0x10,%ebx
40181c:	80 fb 01             	cmp    $0x1,%bl
40181f:	0f 87 06 00 00 00    	ja     0x40182b
401825:	81 e2 ff ff ff ef    	and    $0xefffffff,%edx
40182b:	81 e5 00 08 00 00    	and    $0x800,%ebp
401831:	81 e1 ff f7 ff ff    	and    $0xfffff7ff,%ecx
401837:	89 d6                	mov    %edx,%esi
401839:	09 cd                	or     %ecx,%ebp
40183b:	83 ff 07             	cmp    $0x7,%edi
40183e:	8b 7c 24 14          	mov    0x14(%esp),%edi
401842:	0f 82 0c 00 00 00    	jb     0x401854
401848:	b8 07 00 00 00       	mov    $0x7,%eax
40184d:	31 c9                	xor    %ecx,%ecx
40184f:	0f a2                	cpuid
401851:	89 5f 08             	mov    %ebx,0x8(%edi)
401854:	0f ba e5 1b          	bt     $0x1b,%ebp
401858:	0f 83 26 00 00 00    	jae    0x401884
40185e:	31 c9                	xor    %ecx,%ecx
401860:	0f 01 d0             	xgetbv
401863:	83 e0 06             	and    $0x6,%eax
401866:	83 f8 06             	cmp    $0x6,%eax
401869:	0f 84 1f 00 00 00    	je     0x40188e
40186f:	83 f8 02             	cmp    $0x2,%eax
401872:	0f 84 0c 00 00 00    	je     0x401884
401878:	81 e5 fd ff ff fd    	and    $0xfdfffffd,%ebp
40187e:	81 e6 ff ff ff fe    	and    $0xfeffffff,%esi
401884:	81 e5 ff e7 ff ef    	and    $0xefffe7ff,%ebp
40188a:	83 67 08 df          	andl   $0xffffffdf,0x8(%edi)
40188e:	89 f0                	mov    %esi,%eax
401890:	89 ea                	mov    %ebp,%edx
401892:	5f                   	pop    %edi
401893:	5e                   	pop    %esi
401894:	5b                   	pop    %ebx
401895:	5d                   	pop    %ebp
401896:	c3                   	ret
401897:	90                   	nop
401898:	90                   	nop
401899:	90                   	nop
40189a:	90                   	nop
40189b:	90                   	nop
40189c:	90                   	nop
40189d:	90                   	nop
40189e:	90                   	nop
40189f:	90                   	nop
4018a0:	31 c0                	xor    %eax,%eax
4018a2:	31 d2                	xor    %edx,%edx
4018a4:	8d 0d a0 73 71 00    	lea    0x7173a0,%ecx
4018aa:	0f ba 21 04          	btl    $0x4,(%ecx)
4018ae:	0f 83 02 00 00 00    	jae    0x4018b6
4018b4:	0f 31                	rdtsc
4018b6:	c3                   	ret
4018b7:	90                   	nop
4018b8:	90                   	nop
4018b9:	90                   	nop
4018ba:	90                   	nop
4018bb:	90                   	nop
4018bc:	90                   	nop
4018bd:	90                   	nop
4018be:	90                   	nop
4018bf:	90                   	nop
4018c0:	8d 0d a0 73 71 00    	lea    0x7173a0,%ecx
4018c6:	0f ba 21 04          	btl    $0x4,(%ecx)
4018ca:	0f 83 2b 00 00 00    	jae    0x4018fb
4018d0:	0e                   	push   %cs
4018d1:	90                   	nop
4018d2:	58                   	pop    %eax
4018d3:	90                   	nop
4018d4:	83 e0 03             	and    $0x3,%eax
4018d7:	0f 85 1e 00 00 00    	jne    0x4018fb
4018dd:	9c                   	pushf
4018de:	58                   	pop    %eax
4018df:	0f ba e0 09          	bt     $0x9,%eax
4018e3:	0f 83 12 00 00 00    	jae    0x4018fb
4018e9:	0f 31                	rdtsc
4018eb:	52                   	push   %edx
4018ec:	50                   	push   %eax
4018ed:	f4                   	hlt
4018ee:	0f 31                	rdtsc
4018f0:	2b 04 24             	sub    (%esp),%eax
4018f3:	1b 54 24 04          	sbb    0x4(%esp),%edx
4018f7:	83 c4 08             	add    $0x8,%esp
4018fa:	c3                   	ret
4018fb:	31 c0                	xor    %eax,%eax
4018fd:	31 d2                	xor    %edx,%edx
4018ff:	c3                   	ret
401900:	9c                   	pushf
401901:	58                   	pop    %eax
401902:	0f ba e0 09          	bt     $0x9,%eax
401906:	0f 83 32 00 00 00    	jae    0x40193e
40190c:	8b 44 24 04          	mov    0x4(%esp),%eax
401910:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401914:	1e                   	push   %ds
401915:	8e d8                	mov    %eax,%ds
401917:	90                   	nop
401918:	31 c0                	xor    %eax,%eax
40191a:	8b 11                	mov    (%ecx),%edx
40191c:	e9 0f 00 00 00       	jmp    0x401930
401921:	90                   	nop
401922:	90                   	nop
401923:	90                   	nop
401924:	90                   	nop
401925:	90                   	nop
401926:	90                   	nop
401927:	90                   	nop
401928:	90                   	nop
401929:	90                   	nop
40192a:	90                   	nop
40192b:	90                   	nop
40192c:	90                   	nop
40192d:	90                   	nop
40192e:	90                   	nop
40192f:	90                   	nop
401930:	40                   	inc    %eax
401931:	3b 11                	cmp    (%ecx),%edx
401933:	0f 84 f7 ff ff ff    	je     0x401930
401939:	90                   	nop
40193a:	90                   	nop
40193b:	90                   	nop
40193c:	1f                   	pop    %ds
40193d:	c3                   	ret
40193e:	31 c0                	xor    %eax,%eax
401940:	31 d2                	xor    %edx,%edx
401942:	c3                   	ret
401943:	90                   	nop
401944:	90                   	nop
401945:	90                   	nop
401946:	90                   	nop
401947:	90                   	nop
401948:	90                   	nop
401949:	90                   	nop
40194a:	90                   	nop
40194b:	90                   	nop
40194c:	90                   	nop
40194d:	90                   	nop
40194e:	90                   	nop
40194f:	90                   	nop
401950:	31 c0                	xor    %eax,%eax
401952:	31 d2                	xor    %edx,%edx
401954:	8d 0d a0 73 71 00    	lea    0x7173a0,%ecx
40195a:	8b 09                	mov    (%ecx),%ecx
40195c:	0f ba 21 01          	btl    $0x1,(%ecx)
401960:	0f 83 46 00 00 00    	jae    0x4019ac
401966:	81 e1 00 00 00 05    	and    $0x5000000,%ecx
40196c:	81 f9 00 00 00 05    	cmp    $0x5000000,%ecx
401972:	0f 85 20 00 00 00    	jne    0x401998
401978:	66 0f ef c0          	pxor   %xmm0,%xmm0
40197c:	66 0f ef c9          	pxor   %xmm1,%xmm1
401980:	66 0f ef d2          	pxor   %xmm2,%xmm2
401984:	66 0f ef db          	pxor   %xmm3,%xmm3
401988:	66 0f ef e4          	pxor   %xmm4,%xmm4
40198c:	66 0f ef ed          	pxor   %xmm5,%xmm5
401990:	66 0f ef f6          	pxor   %xmm6,%xmm6
401994:	66 0f ef ff          	pxor   %xmm7,%xmm7
401998:	d9 ee                	fldz
40199a:	d9 ee                	fldz
40199c:	d9 ee                	fldz
40199e:	d9 ee                	fldz
4019a0:	d9 ee                	fldz
4019a2:	d9 ee                	fldz
4019a4:	d9 ee                	fldz
4019a6:	d9 ee                	fldz
4019a8:	9b db e3             	finit
4019ab:	90                   	nop
4019ac:	8d 44 24 04          	lea    0x4(%esp),%eax
4019b0:	c3                   	ret
4019b1:	90                   	nop
4019b2:	90                   	nop
4019b3:	90                   	nop
4019b4:	90                   	nop
4019b5:	90                   	nop
4019b6:	90                   	nop
4019b7:	90                   	nop
4019b8:	90                   	nop
4019b9:	90                   	nop
4019ba:	90                   	nop
4019bb:	90                   	nop
4019bc:	90                   	nop
4019bd:	90                   	nop
4019be:	90                   	nop
4019bf:	90                   	nop
4019c0:	8b 54 24 04          	mov    0x4(%esp),%edx
4019c4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4019c8:	53                   	push   %ebx
4019c9:	90                   	nop
4019ca:	8b 02                	mov    (%edx),%eax
4019cc:	8d 1c 08             	lea    (%eax,%ecx,1),%ebx
4019cf:	90                   	nop
4019d0:	f0 0f b1 1a          	lock cmpxchg %ebx,(%edx)
4019d4:	0f 85 f2 ff ff ff    	jne    0x4019cc
4019da:	89 d8                	mov    %ebx,%eax
4019dc:	5b                   	pop    %ebx
4019dd:	c3                   	ret
4019de:	90                   	nop
4019df:	90                   	nop
4019e0:	8b 54 24 04          	mov    0x4(%esp),%edx
4019e4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4019e8:	31 c0                	xor    %eax,%eax
4019ea:	83 f9 07             	cmp    $0x7,%ecx
4019ed:	0f 83 1d 00 00 00    	jae    0x401a10
4019f3:	83 f9 00             	cmp    $0x0,%ecx
4019f6:	0f 84 0e 00 00 00    	je     0x401a0a
4019fc:	88 02                	mov    %al,(%edx)
4019fe:	83 e9 01             	sub    $0x1,%ecx
401a01:	8d 52 01             	lea    0x1(%edx),%edx
401a04:	0f 85 f2 ff ff ff    	jne    0x4019fc
401a0a:	c3                   	ret
401a0b:	90                   	nop
401a0c:	90                   	nop
401a0d:	90                   	nop
401a0e:	90                   	nop
401a0f:	90                   	nop
401a10:	f7 c2 03 00 00 00    	test   $0x3,%edx
401a16:	0f 84 0d 00 00 00    	je     0x401a29
401a1c:	88 02                	mov    %al,(%edx)
401a1e:	8d 49 ff             	lea    -0x1(%ecx),%ecx
401a21:	8d 52 01             	lea    0x1(%edx),%edx
401a24:	e9 e7 ff ff ff       	jmp    0x401a10
401a29:	89 02                	mov    %eax,(%edx)
401a2b:	8d 49 fc             	lea    -0x4(%ecx),%ecx
401a2e:	f7 c1 fc ff ff ff    	test   $0xfffffffc,%ecx
401a34:	8d 52 04             	lea    0x4(%edx),%edx
401a37:	0f 85 ec ff ff ff    	jne    0x401a29
401a3d:	83 f9 00             	cmp    $0x0,%ecx
401a40:	0f 85 b6 ff ff ff    	jne    0x4019fc
401a46:	c3                   	ret
401a47:	90                   	nop
401a48:	90                   	nop
401a49:	90                   	nop
401a4a:	90                   	nop
401a4b:	90                   	nop
401a4c:	90                   	nop
401a4d:	90                   	nop
401a4e:	90                   	nop
401a4f:	90                   	nop
401a50:	56                   	push   %esi
401a51:	57                   	push   %edi
401a52:	8b 74 24 0c          	mov    0xc(%esp),%esi
401a56:	8b 7c 24 10          	mov    0x10(%esp),%edi
401a5a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
401a5e:	31 c0                	xor    %eax,%eax
401a60:	31 d2                	xor    %edx,%edx
401a62:	83 f9 00             	cmp    $0x0,%ecx
401a65:	0f 84 18 00 00 00    	je     0x401a83
401a6b:	8a 16                	mov    (%esi),%dl
401a6d:	8d 76 01             	lea    0x1(%esi),%esi
401a70:	32 17                	xor    (%edi),%dl
401a72:	8d 7f 01             	lea    0x1(%edi),%edi
401a75:	08 d0                	or     %dl,%al
401a77:	49                   	dec    %ecx
401a78:	0f 85 ed ff ff ff    	jne    0x401a6b
401a7e:	f7 d8                	neg    %eax
401a80:	c1 e8 1f             	shr    $0x1f,%eax
401a83:	5f                   	pop    %edi
401a84:	5e                   	pop    %esi
401a85:	c3                   	ret
401a86:	90                   	nop
401a87:	90                   	nop
401a88:	90                   	nop
401a89:	90                   	nop
401a8a:	90                   	nop
401a8b:	90                   	nop
401a8c:	90                   	nop
401a8d:	90                   	nop
401a8e:	90                   	nop
401a8f:	90                   	nop
401a90:	55                   	push   %ebp
401a91:	53                   	push   %ebx
401a92:	56                   	push   %esi
401a93:	57                   	push   %edi
401a94:	b8 00 00 00 00       	mov    $0x0,%eax
401a99:	8d 15 a0 73 71 00    	lea    0x7173a0,%edx
401a9f:	0f ba 22 04          	btl    $0x4,(%edx)
401aa3:	0f 83 47 00 00 00    	jae    0x401af0
401aa9:	0f ba 22 13          	btl    $0x13,(%edx)
401aad:	0f 83 3d 00 00 00    	jae    0x401af0
401ab3:	8b 7c 24 14          	mov    0x14(%esp),%edi
401ab7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
401abb:	0f 31                	rdtsc
401abd:	89 c6                	mov    %eax,%esi
401abf:	bb 00 00 00 00       	mov    $0x0,%ebx
401ac4:	0f ae 3f             	clflush (%edi)
401ac7:	f0 01 1f             	lock add %ebx,(%edi)
401aca:	e9 01 00 00 00       	jmp    0x401ad0
401acf:	90                   	nop
401ad0:	0f 31                	rdtsc
401ad2:	89 c2                	mov    %eax,%edx
401ad4:	29 f0                	sub    %esi,%eax
401ad6:	89 d6                	mov    %edx,%esi
401ad8:	89 c3                	mov    %eax,%ebx
401ada:	0f ae 3f             	clflush (%edi)
401add:	f0 01 07             	lock add %eax,(%edi)
401ae0:	8d 7f 04             	lea    0x4(%edi),%edi
401ae3:	83 e9 01             	sub    $0x1,%ecx
401ae6:	0f 85 e4 ff ff ff    	jne    0x401ad0
401aec:	8b 44 24 18          	mov    0x18(%esp),%eax
401af0:	5f                   	pop    %edi
401af1:	5e                   	pop    %esi
401af2:	5b                   	pop    %ebx
401af3:	5d                   	pop    %ebp
401af4:	c3                   	ret
401af5:	90                   	nop
401af6:	90                   	nop
401af7:	90                   	nop
401af8:	90                   	nop
401af9:	90                   	nop
401afa:	90                   	nop
401afb:	90                   	nop
401afc:	90                   	nop
401afd:	90                   	nop
401afe:	90                   	nop
401aff:	90                   	nop
401b00:	55                   	push   %ebp
401b01:	53                   	push   %ebx
401b02:	56                   	push   %esi
401b03:	57                   	push   %edi
401b04:	b8 00 00 00 00       	mov    $0x0,%eax
401b09:	8d 15 a0 73 71 00    	lea    0x7173a0,%edx
401b0f:	0f ba 22 04          	btl    $0x4,(%edx)
401b13:	0f 83 6b 00 00 00    	jae    0x401b84
401b19:	0f ba 22 13          	btl    $0x13,(%edx)
401b1d:	0f 83 61 00 00 00    	jae    0x401b84
401b23:	8b 7c 24 14          	mov    0x14(%esp),%edi
401b27:	8b 4c 24 18          	mov    0x18(%esp),%ecx
401b2b:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
401b2f:	0f 31                	rdtsc
401b31:	89 c6                	mov    %eax,%esi
401b33:	bb 00 00 00 00       	mov    $0x0,%ebx
401b38:	0f ae 3f             	clflush (%edi)
401b3b:	f0 01 1f             	lock add %ebx,(%edi)
401b3e:	0f 31                	rdtsc
401b40:	89 c2                	mov    %eax,%edx
401b42:	29 f0                	sub    %esi,%eax
401b44:	89 d6                	mov    %edx,%esi