40a520:	ff 75 08             	push   0x8(%ebp)
40a523:	ff 15 98 11 43 00    	call   *0x431198
40a529:	68 09 04 00 c0       	push   $0xc0000409
40a52e:	ff 15 dc 10 43 00    	call   *0x4310dc
40a534:	50                   	push   %eax
40a535:	ff 15 ac 11 43 00    	call   *0x4311ac
40a53b:	5d                   	pop    %ebp
40a53c:	c3                   	ret
40a53d:	55                   	push   %ebp
40a53e:	8b ec                	mov    %esp,%ebp
40a540:	81 ec 24 03 00 00    	sub    $0x324,%esp
40a546:	6a 17                	push   $0x17
40a548:	ff 15 a4 11 43 00    	call   *0x4311a4
40a54e:	85 c0                	test   %eax,%eax
40a550:	74 05                	je     0x40a557
40a552:	6a 02                	push   $0x2
40a554:	59                   	pop    %ecx
40a555:	cd 29                	int    $0x29
40a557:	a3 b0 f3 43 00       	mov    %eax,0x43f3b0
40a55c:	89 0d ac f3 43 00    	mov    %ecx,0x43f3ac
40a562:	89 15 a8 f3 43 00    	mov    %edx,0x43f3a8
40a568:	89 1d a4 f3 43 00    	mov    %ebx,0x43f3a4
40a56e:	89 35 a0 f3 43 00    	mov    %esi,0x43f3a0
40a574:	89 3d 9c f3 43 00    	mov    %edi,0x43f39c
40a57a:	66 8c 15 c8 f3 43 00 	data16 mov %ss,0x43f3c8
40a581:	66 8c 0d bc f3 43 00 	data16 mov %cs,0x43f3bc
40a588:	66 8c 1d 98 f3 43 00 	data16 mov %ds,0x43f398
40a58f:	66 8c 05 94 f3 43 00 	data16 mov %es,0x43f394
40a596:	66 8c 25 90 f3 43 00 	data16 mov %fs,0x43f390
40a59d:	66 8c 2d 8c f3 43 00 	data16 mov %gs,0x43f38c
40a5a4:	9c                   	pushf
40a5a5:	8f 05 c0 f3 43 00    	pop    0x43f3c0
40a5ab:	8b 45 00             	mov    0x0(%ebp),%eax
40a5ae:	a3 b4 f3 43 00       	mov    %eax,0x43f3b4
40a5b3:	8b 45 04             	mov    0x4(%ebp),%eax
40a5b6:	a3 b8 f3 43 00       	mov    %eax,0x43f3b8
40a5bb:	8d 45 08             	lea    0x8(%ebp),%eax
40a5be:	a3 c4 f3 43 00       	mov    %eax,0x43f3c4
40a5c3:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
40a5c9:	c7 05 00 f3 43 00 01 	movl   $0x10001,0x43f300
40a5d0:	00 01 00
40a5d3:	a1 b8 f3 43 00       	mov    0x43f3b8,%eax
40a5d8:	a3 bc f2 43 00       	mov    %eax,0x43f2bc
40a5dd:	c7 05 b0 f2 43 00 09 	movl   $0xc0000409,0x43f2b0
40a5e4:	04 00 c0
40a5e7:	c7 05 b4 f2 43 00 01 	movl   $0x1,0x43f2b4
40a5ee:	00 00 00
40a5f1:	c7 05 c0 f2 43 00 01 	movl   $0x1,0x43f2c0
40a5f8:	00 00 00
40a5fb:	6a 04                	push   $0x4
40a5fd:	58                   	pop    %eax
40a5fe:	6b c0 00             	imul   $0x0,%eax,%eax
40a601:	c7 80 c4 f2 43 00 02 	movl   $0x2,0x43f2c4(%eax)
40a608:	00 00 00
40a60b:	6a 04                	push   $0x4
40a60d:	58                   	pop    %eax
40a60e:	6b c0 00             	imul   $0x0,%eax,%eax
40a611:	8b 0d c0 d0 43 00    	mov    0x43d0c0,%ecx
40a617:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40a61b:	6a 04                	push   $0x4
40a61d:	58                   	pop    %eax
40a61e:	c1 e0 00             	shl    $0x0,%eax
40a621:	8b 0d 00 d1 43 00    	mov    0x43d100,%ecx
40a627:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
40a62b:	68 0c 18 43 00       	push   $0x43180c
40a630:	e8 e0 fe ff ff       	call   0x40a515
40a635:	90                   	nop
40a636:	c9                   	leave
40a637:	c3                   	ret
40a638:	55                   	push   %ebp
40a639:	8b ec                	mov    %esp,%ebp
40a63b:	6a 08                	push   $0x8
40a63d:	e8 03 00 00 00       	call   0x40a645
40a642:	90                   	nop
40a643:	5d                   	pop    %ebp
40a644:	c3                   	ret
40a645:	55                   	push   %ebp
40a646:	8b ec                	mov    %esp,%ebp
40a648:	81 ec 1c 03 00 00    	sub    $0x31c,%esp
40a64e:	6a 17                	push   $0x17
40a650:	ff 15 a4 11 43 00    	call   *0x4311a4
40a656:	85 c0                	test   %eax,%eax
40a658:	74 05                	je     0x40a65f
40a65a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a65d:	cd 29                	int    $0x29
40a65f:	a3 b0 f3 43 00       	mov    %eax,0x43f3b0
40a664:	89 0d ac f3 43 00    	mov    %ecx,0x43f3ac
40a66a:	89 15 a8 f3 43 00    	mov    %edx,0x43f3a8
40a670:	89 1d a4 f3 43 00    	mov    %ebx,0x43f3a4
40a676:	89 35 a0 f3 43 00    	mov    %esi,0x43f3a0
40a67c:	89 3d 9c f3 43 00    	mov    %edi,0x43f39c
40a682:	66 8c 15 c8 f3 43 00 	data16 mov %ss,0x43f3c8
40a689:	66 8c 0d bc f3 43 00 	data16 mov %cs,0x43f3bc
40a690:	66 8c 1d 98 f3 43 00 	data16 mov %ds,0x43f398
40a697:	66 8c 05 94 f3 43 00 	data16 mov %es,0x43f394
40a69e:	66 8c 25 90 f3 43 00 	data16 mov %fs,0x43f390
40a6a5:	66 8c 2d 8c f3 43 00 	data16 mov %gs,0x43f38c
40a6ac:	9c                   	pushf
40a6ad:	8f 05 c0 f3 43 00    	pop    0x43f3c0
40a6b3:	8b 45 00             	mov    0x0(%ebp),%eax
40a6b6:	a3 b4 f3 43 00       	mov    %eax,0x43f3b4
40a6bb:	8b 45 04             	mov    0x4(%ebp),%eax
40a6be:	a3 b8 f3 43 00       	mov    %eax,0x43f3b8
40a6c3:	8d 45 08             	lea    0x8(%ebp),%eax
40a6c6:	a3 c4 f3 43 00       	mov    %eax,0x43f3c4
40a6cb:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40a6d1:	a1 b8 f3 43 00       	mov    0x43f3b8,%eax
40a6d6:	a3 bc f2 43 00       	mov    %eax,0x43f2bc
40a6db:	c7 05 b0 f2 43 00 09 	movl   $0xc0000409,0x43f2b0
40a6e2:	04 00 c0
40a6e5:	c7 05 b4 f2 43 00 01 	movl   $0x1,0x43f2b4
40a6ec:	00 00 00
40a6ef:	c7 05 c0 f2 43 00 01 	movl   $0x1,0x43f2c0
40a6f6:	00 00 00
40a6f9:	6a 04                	push   $0x4
40a6fb:	58                   	pop    %eax
40a6fc:	6b c0 00             	imul   $0x0,%eax,%eax
40a6ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a702:	89 88 c4 f2 43 00    	mov    %ecx,0x43f2c4(%eax)
40a708:	68 0c 18 43 00       	push   $0x43180c
40a70d:	e8 03 fe ff ff       	call   0x40a515
40a712:	90                   	nop
40a713:	c9                   	leave
40a714:	c3                   	ret
40a715:	55                   	push   %ebp
40a716:	8b ec                	mov    %esp,%ebp
40a718:	83 25 d0 f5 43 00 00 	andl   $0x0,0x43f5d0
40a71f:	83 ec 28             	sub    $0x28,%esp
40a722:	83 0d 10 d1 43 00 01 	orl    $0x1,0x43d110
40a729:	6a 0a                	push   $0xa
40a72b:	ff 15 a4 11 43 00    	call   *0x4311a4
40a731:	85 c0                	test   %eax,%eax
40a733:	0f 84 05 03 00 00    	je     0x40aa3e
40a739:	53                   	push   %ebx
40a73a:	56                   	push   %esi
40a73b:	57                   	push   %edi
40a73c:	33 c0                	xor    %eax,%eax
40a73e:	8d 7d d8             	lea    -0x28(%ebp),%edi
40a741:	33 c9                	xor    %ecx,%ecx
40a743:	53                   	push   %ebx
40a744:	0f a2                	cpuid
40a746:	8b f3                	mov    %ebx,%esi
40a748:	5b                   	pop    %ebx
40a749:	90                   	nop
40a74a:	89 07                	mov    %eax,(%edi)
40a74c:	89 77 04             	mov    %esi,0x4(%edi)
40a74f:	89 4f 08             	mov    %ecx,0x8(%edi)
40a752:	33 c9                	xor    %ecx,%ecx
40a754:	89 57 0c             	mov    %edx,0xc(%edi)
40a757:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a75a:	8b 7d dc             	mov    -0x24(%ebp),%edi
40a75d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a760:	81 f7 47 65 6e 75    	xor    $0x756e6547,%edi
40a766:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a769:	35 69 6e 65 49       	xor    $0x49656e69,%eax
40a76e:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a771:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a774:	35 6e 74 65 6c       	xor    $0x6c65746e,%eax
40a779:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a77c:	33 c0                	xor    %eax,%eax
40a77e:	40                   	inc    %eax
40a77f:	53                   	push   %ebx
40a780:	0f a2                	cpuid
40a782:	8b f3                	mov    %ebx,%esi
40a784:	5b                   	pop    %ebx
40a785:	90                   	nop
40a786:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40a789:	89 03                	mov    %eax,(%ebx)
40a78b:	8b 45 e8             	mov    -0x18(%ebp),%eax
40a78e:	0b 45 ec             	or     -0x14(%ebp),%eax
40a791:	0b c7                	or     %edi,%eax
40a793:	89 73 04             	mov    %esi,0x4(%ebx)
40a796:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a799:	89 53 0c             	mov    %edx,0xc(%ebx)
40a79c:	75 39                	jne    0x40a7d7
40a79e:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a7a1:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
40a7a6:	3d c0 06 01 00       	cmp    $0x106c0,%eax
40a7ab:	74 23                	je     0x40a7d0
40a7ad:	3d 60 06 02 00       	cmp    $0x20660,%eax
40a7b2:	74 1c                	je     0x40a7d0
40a7b4:	3d 70 06 02 00       	cmp    $0x20670,%eax
40a7b9:	74 15                	je     0x40a7d0
40a7bb:	3d 50 06 03 00       	cmp    $0x30650,%eax
40a7c0:	74 0e                	je     0x40a7d0
40a7c2:	3d 60 06 03 00       	cmp    $0x30660,%eax
40a7c7:	74 07                	je     0x40a7d0
40a7c9:	3d 70 06 03 00       	cmp    $0x30670,%eax
40a7ce:	75 07                	jne    0x40a7d7
40a7d0:	83 0d d4 f5 43 00 01 	orl    $0x1,0x43f5d4
40a7d7:	8b 55 e0             	mov    -0x20(%ebp),%edx
40a7da:	33 db                	xor    %ebx,%ebx
40a7dc:	21 5d ec             	and    %ebx,-0x14(%ebp)
40a7df:	33 ff                	xor    %edi,%edi
40a7e1:	21 5d e8             	and    %ebx,-0x18(%ebp)
40a7e4:	83 7d fc 07          	cmpl   $0x7,-0x4(%ebp)
40a7e8:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a7eb:	0f 8c 87 00 00 00    	jl     0x40a878
40a7f1:	6a 07                	push   $0x7
40a7f3:	58                   	pop    %eax
40a7f4:	33 c9                	xor    %ecx,%ecx
40a7f6:	53                   	push   %ebx
40a7f7:	0f a2                	cpuid
40a7f9:	8b f3                	mov    %ebx,%esi
40a7fb:	5b                   	pop    %ebx
40a7fc:	90                   	nop
40a7fd:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40a800:	89 03                	mov    %eax,(%ebx)
40a802:	89 73 04             	mov    %esi,0x4(%ebx)
40a805:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a808:	89 53 0c             	mov    %edx,0xc(%ebx)
40a80b:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40a80e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a811:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40a814:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a817:	f7 c3 00 02 00 00    	test   $0x200,%ebx
40a81d:	74 07                	je     0x40a826
40a81f:	83 0d d4 f5 43 00 02 	orl    $0x2,0x43f5d4
40a826:	83 7d d8 01          	cmpl   $0x1,-0x28(%ebp)
40a82a:	7c 24                	jl     0x40a850
40a82c:	6a 07                	push   $0x7
40a82e:	58                   	pop    %eax
40a82f:	33 c9                	xor    %ecx,%ecx
40a831:	41                   	inc    %ecx
40a832:	53                   	push   %ebx
40a833:	0f a2                	cpuid
40a835:	8b f3                	mov    %ebx,%esi
40a837:	5b                   	pop    %ebx
40a838:	90                   	nop
40a839:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40a83c:	89 03                	mov    %eax,(%ebx)
40a83e:	89 73 04             	mov    %esi,0x4(%ebx)
40a841:	89 4b 08             	mov    %ecx,0x8(%ebx)
40a844:	89 53 0c             	mov    %edx,0xc(%ebx)
40a847:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a84a:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40a84d:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a850:	6a 24                	push   $0x24
40a852:	58                   	pop    %eax
40a853:	39 45 fc             	cmp    %eax,-0x4(%ebp)
40a856:	7c 1d                	jl     0x40a875
40a858:	33 c9                	xor    %ecx,%ecx
40a85a:	8d 7d d8             	lea    -0x28(%ebp),%edi
40a85d:	53                   	push   %ebx
40a85e:	0f a2                	cpuid
40a860:	8b f3                	mov    %ebx,%esi
40a862:	5b                   	pop    %ebx
40a863:	90                   	nop
40a864:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40a867:	89 07                	mov    %eax,(%edi)
40a869:	89 77 04             	mov    %esi,0x4(%edi)
40a86c:	89 4f 08             	mov    %ecx,0x8(%edi)
40a86f:	89 57 0c             	mov    %edx,0xc(%edi)
40a872:	8b 7d dc             	mov    -0x24(%ebp),%edi
40a875:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a878:	a1 10 d1 43 00       	mov    0x43d110,%eax
40a87d:	8b 0d 08 d1 43 00    	mov    0x43d108,%ecx
40a883:	83 c8 02             	or     $0x2,%eax
40a886:	8b 35 0c d1 43 00    	mov    0x43d10c,%esi
40a88c:	83 e1 fe             	and    $0xfffffffe,%ecx
40a88f:	c7 05 d0 f5 43 00 01 	movl   $0x1,0x43f5d0
40a896:	00 00 00
40a899:	a3 10 d1 43 00       	mov    %eax,0x43d110
40a89e:	89 0d 08 d1 43 00    	mov    %ecx,0x43d108
40a8a4:	89 35 0c d1 43 00    	mov    %esi,0x43d10c
40a8aa:	f7 c2 00 00 10 00    	test   $0x100000,%edx
40a8b0:	0f 84 85 01 00 00    	je     0x40aa3b
40a8b6:	83 c8 04             	or     $0x4,%eax
40a8b9:	c7 05 d0 f5 43 00 02 	movl   $0x2,0x43f5d0
40a8c0:	00 00 00
40a8c3:	83 e1 ef             	and    $0xffffffef,%ecx
40a8c6:	a3 10 d1 43 00       	mov    %eax,0x43d110
40a8cb:	89 0d 08 d1 43 00    	mov    %ecx,0x43d108
40a8d1:	89 35 0c d1 43 00    	mov    %esi,0x43d10c
40a8d7:	f7 c2 00 00 00 08    	test   $0x8000000,%edx
40a8dd:	0f 84 58 01 00 00    	je     0x40aa3b
40a8e3:	f7 c2 00 00 00 10    	test   $0x10000000,%edx
40a8e9:	0f 84 4c 01 00 00    	je     0x40aa3b
40a8ef:	33 c9                	xor    %ecx,%ecx
40a8f1:	0f 01 d0             	xgetbv
40a8f4:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a8f7:	33 f6                	xor    %esi,%esi
40a8f9:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a8fc:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a8ff:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a902:	83 e0 06             	and    $0x6,%eax
40a905:	23 ce                	and    %esi,%ecx
40a907:	83 f8 06             	cmp    $0x6,%eax
40a90a:	0f 85 2b 01 00 00    	jne    0x40aa3b
40a910:	3b ce                	cmp    %esi,%ecx
40a912:	0f 85 23 01 00 00    	jne    0x40aa3b
40a918:	a1 10 d1 43 00       	mov    0x43d110,%eax
40a91d:	83 c8 08             	or     $0x8,%eax
40a920:	c7 05 d0 f5 43 00 03 	movl   $0x3,0x43f5d0
40a927:	00 00 00
40a92a:	a3 10 d1 43 00       	mov    %eax,0x43d110
40a92f:	f6 c3 20             	test   $0x20,%bl
40a932:	74 79                	je     0x40a9ad
40a934:	8b 0d 0c d1 43 00    	mov    0x43d10c,%ecx
40a93a:	83 c8 20             	or     $0x20,%eax
40a93d:	a3 10 d1 43 00       	mov    %eax,0x43d110
40a942:	ba 00 00 03 d0       	mov    $0xd0030000,%edx
40a947:	a1 08 d1 43 00       	mov    0x43d108,%eax
40a94c:	23 da                	and    %edx,%ebx
40a94e:	83 e0 fd             	and    $0xfffffffd,%eax
40a951:	c7 05 d0 f5 43 00 05 	movl   $0x5,0x43f5d0
40a958:	00 00 00
40a95b:	a3 08 d1 43 00       	mov    %eax,0x43d108
40a960:	89 0d 0c d1 43 00    	mov    %ecx,0x43d10c
40a966:	3b da                	cmp    %edx,%ebx
40a968:	75 4e                	jne    0x40a9b8
40a96a:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a96d:	ba e0 00 00 00       	mov    $0xe0,%edx
40a972:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a975:	23 c2                	and    %edx,%eax
40a977:	23 ce                	and    %esi,%ecx
40a979:	3b c2                	cmp    %edx,%eax
40a97b:	75 30                	jne    0x40a9ad
40a97d:	3b ce                	cmp    %esi,%ecx
40a97f:	75 2c                	jne    0x40a9ad
40a981:	a1 08 d1 43 00       	mov    0x43d108,%eax
40a986:	83 0d 10 d1 43 00 40 	orl    $0x40,0x43d110
40a98d:	83 e0 db             	and    $0xffffffdb,%eax
40a990:	8b 0d 0c d1 43 00    	mov    0x43d10c,%ecx
40a996:	c7 05 d0 f5 43 00 06 	movl   $0x6,0x43f5d0
40a99d:	00 00 00
40a9a0:	a3 08 d1 43 00       	mov    %eax,0x43d108
40a9a5:	89 0d 0c d1 43 00    	mov    %ecx,0x43d10c
40a9ab:	eb 0b                	jmp    0x40a9b8
40a9ad:	8b 0d 0c d1 43 00    	mov    0x43d10c,%ecx
40a9b3:	a1 08 d1 43 00       	mov    0x43d108,%eax
40a9b8:	f7 45 ec 00 00 80 00 	testl  $0x800000,-0x14(%ebp)
40a9bf:	74 10                	je     0x40a9d1
40a9c1:	25 ff ff ff fe       	and    $0xfeffffff,%eax
40a9c6:	89 0d 0c d1 43 00    	mov    %ecx,0x43d10c
40a9cc:	a3 08 d1 43 00       	mov    %eax,0x43d108
40a9d1:	f7 45 e8 00 00 08 00 	testl  $0x80000,-0x18(%ebp)
40a9d8:	74 61                	je     0x40aa3b
40a9da:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a9dd:	ba e0 00 00 00       	mov    $0xe0,%edx
40a9e2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a9e5:	23 c2                	and    %edx,%eax
40a9e7:	23 ce                	and    %esi,%ecx
40a9e9:	3b c2                	cmp    %edx,%eax
40a9eb:	75 4e                	jne    0x40aa3b
40a9ed:	3b ce                	cmp    %esi,%ecx
40a9ef:	75 4a                	jne    0x40aa3b
40a9f1:	8b c7                	mov    %edi,%eax
40a9f3:	33 c9                	xor    %ecx,%ecx
40a9f5:	c1 ef 10             	shr    $0x10,%edi