403589:	75 49                	jne    0x4035d4
40358b:	89 0d a8 3a 42 00    	mov    %ecx,0x423aa8
403591:	68 ec b1 41 00       	push   $0x41b1ec
403596:	68 cc b1 41 00       	push   $0x41b1cc
40359b:	e8 36 5e 00 00       	call   0x4093d6
4035a0:	59                   	pop    %ecx
4035a1:	59                   	pop    %ecx
4035a2:	85 c0                	test   %eax,%eax
4035a4:	74 11                	je     0x4035b7
4035a6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4035ad:	b8 ff 00 00 00       	mov    $0xff,%eax
4035b2:	e9 fd 00 00 00       	jmp    0x4036b4
4035b7:	68 c8 b1 41 00       	push   $0x41b1c8
4035bc:	68 ac b1 41 00       	push   $0x41b1ac
4035c1:	e8 b4 5d 00 00       	call   0x40937a
4035c6:	59                   	pop    %ecx
4035c7:	59                   	pop    %ecx
4035c8:	c7 05 a8 3a 42 00 02 	movl   $0x2,0x423aa8
4035cf:	00 00 00
4035d2:	eb 05                	jmp    0x4035d9
4035d4:	8a d9                	mov    %cl,%bl
4035d6:	88 5d e7             	mov    %bl,-0x19(%ebp)
4035d9:	ff 75 dc             	push   -0x24(%ebp)
4035dc:	e8 81 fb ff ff       	call   0x403162
4035e1:	59                   	pop    %ecx
4035e2:	e8 33 07 00 00       	call   0x403d1a
4035e7:	8b f0                	mov    %eax,%esi
4035e9:	33 ff                	xor    %edi,%edi
4035eb:	39 3e                	cmp    %edi,(%esi)
4035ed:	74 1a                	je     0x403609
4035ef:	56                   	push   %esi
4035f0:	e8 e3 fa ff ff       	call   0x4030d8
4035f5:	59                   	pop    %ecx
4035f6:	84 c0                	test   %al,%al
4035f8:	74 0f                	je     0x403609
4035fa:	57                   	push   %edi
4035fb:	6a 02                	push   $0x2
4035fd:	57                   	push   %edi
4035fe:	8b 36                	mov    (%esi),%esi
403600:	8b ce                	mov    %esi,%ecx
403602:	e8 3e 05 00 00       	call   0x403b45
403607:	ff d6                	call   *%esi
403609:	e8 12 07 00 00       	call   0x403d20
40360e:	8b f0                	mov    %eax,%esi
403610:	39 3e                	cmp    %edi,(%esi)
403612:	74 13                	je     0x403627
403614:	56                   	push   %esi
403615:	e8 be fa ff ff       	call   0x4030d8
40361a:	59                   	pop    %ecx
40361b:	84 c0                	test   %al,%al
40361d:	74 08                	je     0x403627
40361f:	ff 36                	push   (%esi)
403621:	e8 c1 4e 00 00       	call   0x4084e7
403626:	59                   	pop    %ecx
403627:	e8 48 5f 00 00       	call   0x409574
40362c:	8b f8                	mov    %eax,%edi
40362e:	e8 3b 5f 00 00       	call   0x40956e
403633:	8b f0                	mov    %eax,%esi
403635:	e8 b4 56 00 00       	call   0x408cee
40363a:	50                   	push   %eax
40363b:	ff 37                	push   (%edi)
40363d:	ff 36                	push   (%esi)
40363f:	e8 ec f2 ff ff       	call   0x402930
403644:	83 c4 0c             	add    $0xc,%esp
403647:	8b f0                	mov    %eax,%esi
403649:	e8 5e 04 00 00       	call   0x403aac
40364e:	84 c0                	test   %al,%al
403650:	75 06                	jne    0x403658
403652:	56                   	push   %esi
403653:	e8 c7 4e 00 00       	call   0x40851f
403658:	84 db                	test   %bl,%bl
40365a:	75 05                	jne    0x403661
40365c:	e8 61 4e 00 00       	call   0x4084c2
403661:	6a 00                	push   $0x0
403663:	6a 01                	push   $0x1
403665:	e8 15 fb ff ff       	call   0x40317f
40366a:	59                   	pop    %ecx
40366b:	59                   	pop    %ecx
40366c:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403673:	8b c6                	mov    %esi,%eax
403675:	eb 3d                	jmp    0x4036b4
403677:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40367a:	8b 01                	mov    (%ecx),%eax
40367c:	8b 00                	mov    (%eax),%eax
40367e:	89 45 e0             	mov    %eax,-0x20(%ebp)
403681:	51                   	push   %ecx
403682:	50                   	push   %eax
403683:	e8 d2 4a 00 00       	call   0x40815a
403688:	59                   	pop    %ecx
403689:	59                   	pop    %ecx
40368a:	c3                   	ret
40368b:	8b 65 e8             	mov    -0x18(%ebp),%esp
40368e:	e8 19 04 00 00       	call   0x403aac
403693:	84 c0                	test   %al,%al
403695:	75 08                	jne    0x40369f
403697:	ff 75 e0             	push   -0x20(%ebp)
40369a:	e8 32 4e 00 00       	call   0x4084d1
40369f:	80 7d e7 00          	cmpb   $0x0,-0x19(%ebp)
4036a3:	75 05                	jne    0x4036aa
4036a5:	e8 09 4e 00 00       	call   0x4084b3
4036aa:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4036b1:	8b 45 e0             	mov    -0x20(%ebp),%eax
4036b4:	e8 dd 04 00 00       	call   0x403b96
4036b9:	c3                   	ret
4036ba:	e8 59 05 00 00       	call   0x403c18
4036bf:	e9 87 fe ff ff       	jmp    0x40354b
4036c4:	55                   	push   %ebp
4036c5:	8b ec                	mov    %esp,%ebp
4036c7:	6a 00                	push   $0x0
4036c9:	ff 15 b0 b0 41 00    	call   *0x41b0b0
4036cf:	ff 75 08             	push   0x8(%ebp)
4036d2:	ff 15 ac b0 41 00    	call   *0x41b0ac
4036d8:	68 09 04 00 c0       	push   $0xc0000409
4036dd:	ff 15 b4 b0 41 00    	call   *0x41b0b4
4036e3:	50                   	push   %eax
4036e4:	ff 15 b8 b0 41 00    	call   *0x41b0b8
4036ea:	5d                   	pop    %ebp
4036eb:	c3                   	ret
4036ec:	55                   	push   %ebp
4036ed:	8b ec                	mov    %esp,%ebp
4036ef:	81 ec 24 03 00 00    	sub    $0x324,%esp
4036f5:	6a 17                	push   $0x17
4036f7:	e8 98 07 00 00       	call   0x403e94
4036fc:	85 c0                	test   %eax,%eax
4036fe:	74 05                	je     0x403705
403700:	6a 02                	push   $0x2
403702:	59                   	pop    %ecx
403703:	cd 29                	int    $0x29
403705:	a3 f8 3b 42 00       	mov    %eax,0x423bf8
40370a:	89 0d f4 3b 42 00    	mov    %ecx,0x423bf4
403710:	89 15 f0 3b 42 00    	mov    %edx,0x423bf0
403716:	89 1d ec 3b 42 00    	mov    %ebx,0x423bec
40371c:	89 35 e8 3b 42 00    	mov    %esi,0x423be8
403722:	89 3d e4 3b 42 00    	mov    %edi,0x423be4
403728:	66 8c 15 10 3c 42 00 	data16 mov %ss,0x423c10
40372f:	66 8c 0d 04 3c 42 00 	data16 mov %cs,0x423c04
403736:	66 8c 1d e0 3b 42 00 	data16 mov %ds,0x423be0
40373d:	66 8c 05 dc 3b 42 00 	data16 mov %es,0x423bdc
403744:	66 8c 25 d8 3b 42 00 	data16 mov %fs,0x423bd8
40374b:	66 8c 2d d4 3b 42 00 	data16 mov %gs,0x423bd4
403752:	9c                   	pushf
403753:	8f 05 08 3c 42 00    	pop    0x423c08
403759:	8b 45 00             	mov    0x0(%ebp),%eax
40375c:	a3 fc 3b 42 00       	mov    %eax,0x423bfc
403761:	8b 45 04             	mov    0x4(%ebp),%eax
403764:	a3 00 3c 42 00       	mov    %eax,0x423c00
403769:	8d 45 08             	lea    0x8(%ebp),%eax
40376c:	a3 0c 3c 42 00       	mov    %eax,0x423c0c
403771:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
403777:	c7 05 48 3b 42 00 01 	movl   $0x10001,0x423b48
40377e:	00 01 00
403781:	a1 00 3c 42 00       	mov    0x423c00,%eax
403786:	a3 04 3b 42 00       	mov    %eax,0x423b04
40378b:	c7 05 f8 3a 42 00 09 	movl   $0xc0000409,0x423af8
403792:	04 00 c0
403795:	c7 05 fc 3a 42 00 01 	movl   $0x1,0x423afc
40379c:	00 00 00
40379f:	c7 05 08 3b 42 00 01 	movl   $0x1,0x423b08
4037a6:	00 00 00
4037a9:	6a 04                	push   $0x4
4037ab:	58                   	pop    %eax
4037ac:	6b c0 00             	imul   $0x0,%eax,%eax
4037af:	c7 80 0c 3b 42 00 02 	movl   $0x2,0x423b0c(%eax)
4037b6:	00 00 00
4037b9:	6a 04                	push   $0x4
4037bb:	58                   	pop    %eax
4037bc:	6b c0 00             	imul   $0x0,%eax,%eax
4037bf:	8b 0d 0c 30 42 00    	mov    0x42300c,%ecx
4037c5:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
4037c9:	6a 04                	push   $0x4
4037cb:	58                   	pop    %eax
4037cc:	c1 e0 00             	shl    $0x0,%eax
4037cf:	8b 0d 08 30 42 00    	mov    0x423008,%ecx
4037d5:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
4037d9:	68 c0 b2 41 00       	push   $0x41b2c0
4037de:	e8 e1 fe ff ff       	call   0x4036c4
4037e3:	8b e5                	mov    %ebp,%esp
4037e5:	5d                   	pop    %ebp
4037e6:	c3                   	ret
4037e7:	55                   	push   %ebp
4037e8:	8b ec                	mov    %esp,%ebp
4037ea:	83 25 14 3e 42 00 00 	andl   $0x0,0x423e14
4037f1:	83 ec 28             	sub    $0x28,%esp
4037f4:	53                   	push   %ebx
4037f5:	33 db                	xor    %ebx,%ebx
4037f7:	43                   	inc    %ebx
4037f8:	09 1d 10 30 42 00    	or     %ebx,0x423010
4037fe:	6a 0a                	push   $0xa
403800:	e8 8f 06 00 00       	call   0x403e94
403805:	85 c0                	test   %eax,%eax
403807:	0f 84 6d 01 00 00    	je     0x40397a
40380d:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
403811:	33 c0                	xor    %eax,%eax
403813:	83 0d 10 30 42 00 02 	orl    $0x2,0x423010
40381a:	33 c9                	xor    %ecx,%ecx
40381c:	56                   	push   %esi
40381d:	57                   	push   %edi
40381e:	89 1d 14 3e 42 00    	mov    %ebx,0x423e14
403824:	8d 7d d8             	lea    -0x28(%ebp),%edi
403827:	53                   	push   %ebx
403828:	0f a2                	cpuid
40382a:	8b f3                	mov    %ebx,%esi
40382c:	5b                   	pop    %ebx
40382d:	89 07                	mov    %eax,(%edi)
40382f:	89 77 04             	mov    %esi,0x4(%edi)
403832:	89 4f 08             	mov    %ecx,0x8(%edi)
403835:	89 57 0c             	mov    %edx,0xc(%edi)
403838:	8b 45 d8             	mov    -0x28(%ebp),%eax
40383b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40383e:	89 45 f8             	mov    %eax,-0x8(%ebp)
403841:	81 f1 69 6e 65 49    	xor    $0x49656e69,%ecx
403847:	8b 45 e0             	mov    -0x20(%ebp),%eax
40384a:	35 6e 74 65 6c       	xor    $0x6c65746e,%eax
40384f:	0b c8                	or     %eax,%ecx
403851:	8b 45 dc             	mov    -0x24(%ebp),%eax
403854:	6a 01                	push   $0x1
403856:	35 47 65 6e 75       	xor    $0x756e6547,%eax
40385b:	0b c8                	or     %eax,%ecx
40385d:	58                   	pop    %eax
40385e:	6a 00                	push   $0x0
403860:	59                   	pop    %ecx
403861:	53                   	push   %ebx
403862:	0f a2                	cpuid
403864:	8b f3                	mov    %ebx,%esi
403866:	5b                   	pop    %ebx
403867:	89 07                	mov    %eax,(%edi)
403869:	89 77 04             	mov    %esi,0x4(%edi)
40386c:	89 4f 08             	mov    %ecx,0x8(%edi)
40386f:	89 57 0c             	mov    %edx,0xc(%edi)
403872:	75 43                	jne    0x4038b7
403874:	8b 45 d8             	mov    -0x28(%ebp),%eax
403877:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
40387c:	3d c0 06 01 00       	cmp    $0x106c0,%eax
403881:	74 23                	je     0x4038a6
403883:	3d 60 06 02 00       	cmp    $0x20660,%eax
403888:	74 1c                	je     0x4038a6
40388a:	3d 70 06 02 00       	cmp    $0x20670,%eax
40388f:	74 15                	je     0x4038a6
403891:	3d 50 06 03 00       	cmp    $0x30650,%eax
403896:	74 0e                	je     0x4038a6
403898:	3d 60 06 03 00       	cmp    $0x30660,%eax
40389d:	74 07                	je     0x4038a6
40389f:	3d 70 06 03 00       	cmp    $0x30670,%eax
4038a4:	75 11                	jne    0x4038b7
4038a6:	8b 3d 18 3e 42 00    	mov    0x423e18,%edi
4038ac:	83 cf 01             	or     $0x1,%edi
4038af:	89 3d 18 3e 42 00    	mov    %edi,0x423e18
4038b5:	eb 06                	jmp    0x4038bd
4038b7:	8b 3d 18 3e 42 00    	mov    0x423e18,%edi
4038bd:	83 7d f8 07          	cmpl   $0x7,-0x8(%ebp)
4038c1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4038c4:	89 45 e8             	mov    %eax,-0x18(%ebp)
4038c7:	8b 45 e0             	mov    -0x20(%ebp),%eax
4038ca:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038cd:	89 45 ec             	mov    %eax,-0x14(%ebp)
4038d0:	7c 32                	jl     0x403904
4038d2:	6a 07                	push   $0x7
4038d4:	58                   	pop    %eax
4038d5:	33 c9                	xor    %ecx,%ecx
4038d7:	53                   	push   %ebx
4038d8:	0f a2                	cpuid
4038da:	8b f3                	mov    %ebx,%esi
4038dc:	5b                   	pop    %ebx
4038dd:	8d 5d d8             	lea    -0x28(%ebp),%ebx
4038e0:	89 03                	mov    %eax,(%ebx)
4038e2:	89 73 04             	mov    %esi,0x4(%ebx)
4038e5:	89 4b 08             	mov    %ecx,0x8(%ebx)
4038e8:	89 53 0c             	mov    %edx,0xc(%ebx)
4038eb:	8b 45 dc             	mov    -0x24(%ebp),%eax
4038ee:	a9 00 02 00 00       	test   $0x200,%eax
4038f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4038f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4038f9:	74 09                	je     0x403904
4038fb:	83 cf 02             	or     $0x2,%edi
4038fe:	89 3d 18 3e 42 00    	mov    %edi,0x423e18
403904:	5f                   	pop    %edi
403905:	5e                   	pop    %esi
403906:	a9 00 00 10 00       	test   $0x100000,%eax
40390b:	74 6d                	je     0x40397a
40390d:	83 0d 10 30 42 00 04 	orl    $0x4,0x423010
403914:	c7 05 14 3e 42 00 02 	movl   $0x2,0x423e14
40391b:	00 00 00
40391e:	a9 00 00 00 08       	test   $0x8000000,%eax
403923:	74 55                	je     0x40397a
403925:	a9 00 00 00 10       	test   $0x10000000,%eax
40392a:	74 4e                	je     0x40397a
40392c:	33 c9                	xor    %ecx,%ecx
40392e:	0f 01 d0             	xgetbv
403931:	89 45 f4             	mov    %eax,-0xc(%ebp)
403934:	89 55 f8             	mov    %edx,-0x8(%ebp)
403937:	8b 45 f4             	mov    -0xc(%ebp),%eax
40393a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40393d:	83 e0 06             	and    $0x6,%eax
403940:	33 c9                	xor    %ecx,%ecx
403942:	83 f8 06             	cmp    $0x6,%eax
403945:	75 33                	jne    0x40397a
403947:	85 c9                	test   %ecx,%ecx
403949:	75 2f                	jne    0x40397a
40394b:	a1 10 30 42 00       	mov    0x423010,%eax
403950:	83 c8 08             	or     $0x8,%eax
403953:	c7 05 14 3e 42 00 03 	movl   $0x3,0x423e14
40395a:	00 00 00
40395d:	f6 45 f0 20          	testb  $0x20,-0x10(%ebp)
403961:	a3 10 30 42 00       	mov    %eax,0x423010
403966:	74 12                	je     0x40397a
403968:	83 c8 20             	or     $0x20,%eax
40396b:	c7 05 14 3e 42 00 05 	movl   $0x5,0x423e14
403972:	00 00 00
403975:	a3 10 30 42 00       	mov    %eax,0x423010
40397a:	33 c0                	xor    %eax,%eax
40397c:	5b                   	pop    %ebx
40397d:	8b e5                	mov    %ebp,%esp
40397f:	5d                   	pop    %ebp
403980:	c3                   	ret
403981:	33 c0                	xor    %eax,%eax
403983:	40                   	inc    %eax
403984:	c3                   	ret
403985:	33 c0                	xor    %eax,%eax
403987:	39 05 80 47 42 00    	cmp    %eax,0x424780
40398d:	0f 95 c0             	setne  %al
403990:	c3                   	ret
403991:	55                   	push   %ebp
403992:	8b ec                	mov    %esp,%ebp
403994:	81 ec 24 03 00 00    	sub    $0x324,%esp
40399a:	53                   	push   %ebx
40399b:	56                   	push   %esi
40399c:	6a 17                	push   $0x17
40399e:	e8 f1 04 00 00       	call   0x403e94
4039a3:	85 c0                	test   %eax,%eax
4039a5:	74 05                	je     0x4039ac
4039a7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4039aa:	cd 29                	int    $0x29
4039ac:	33 f6                	xor    %esi,%esi
4039ae:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
4039b4:	68 cc 02 00 00       	push   $0x2cc
4039b9:	56                   	push   %esi
4039ba:	50                   	push   %eax
4039bb:	89 35 1c 3e 42 00    	mov    %esi,0x423e1c
4039c1:	e8 9a 10 00 00       	call   0x404a60
4039c6:	83 c4 0c             	add    $0xc,%esp
4039c9:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
4039cf:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
4039d5:	89 95 84 fd ff ff    	mov    %edx,-0x27c(%ebp)
4039db:	89 9d 80 fd ff ff    	mov    %ebx,-0x280(%ebp)
4039e1:	89 b5 7c fd ff ff    	mov    %esi,-0x284(%ebp)
4039e7:	89 bd 78 fd ff ff    	mov    %edi,-0x288(%ebp)
4039ed:	66 8c 95 a4 fd ff ff 	data16 mov %ss,-0x25c(%ebp)
4039f4:	66 8c 8d 98 fd ff ff 	data16 mov %cs,-0x268(%ebp)
4039fb:	66 8c 9d 74 fd ff ff 	data16 mov %ds,-0x28c(%ebp)
403a02:	66 8c 85 70 fd ff ff 	data16 mov %es,-0x290(%ebp)