4034d2:	0b 45 f8             	or     -0x8(%ebp),%eax
4034d5:	0b c7                	or     %edi,%eax
4034d7:	89 73 04             	mov    %esi,0x4(%ebx)
4034da:	89 4b 08             	mov    %ecx,0x8(%ebx)
4034dd:	89 53 0c             	mov    %edx,0xc(%ebx)
4034e0:	75 43                	jne    0x403525
4034e2:	8b 45 dc             	mov    -0x24(%ebp),%eax
4034e5:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
4034ea:	3d c0 06 01 00       	cmp    $0x106c0,%eax
4034ef:	74 23                	je     0x403514
4034f1:	3d 60 06 02 00       	cmp    $0x20660,%eax
4034f6:	74 1c                	je     0x403514
4034f8:	3d 70 06 02 00       	cmp    $0x20670,%eax
4034fd:	74 15                	je     0x403514
4034ff:	3d 50 06 03 00       	cmp    $0x30650,%eax
403504:	74 0e                	je     0x403514
403506:	3d 60 06 03 00       	cmp    $0x30660,%eax
40350b:	74 07                	je     0x403514
40350d:	3d 70 06 03 00       	cmp    $0x30670,%eax
403512:	75 11                	jne    0x403525
403514:	8b 3d c0 69 41 00    	mov    0x4169c0,%edi
40351a:	83 cf 01             	or     $0x1,%edi
40351d:	89 3d c0 69 41 00    	mov    %edi,0x4169c0
403523:	eb 06                	jmp    0x40352b
403525:	8b 3d c0 69 41 00    	mov    0x4169c0,%edi
40352b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40352e:	6a 07                	push   $0x7
403530:	58                   	pop    %eax
403531:	89 4d fc             	mov    %ecx,-0x4(%ebp)
403534:	39 45 f4             	cmp    %eax,-0xc(%ebp)
403537:	7c 30                	jl     0x403569
403539:	33 c9                	xor    %ecx,%ecx
40353b:	53                   	push   %ebx
40353c:	0f a2                	cpuid
40353e:	8b f3                	mov    %ebx,%esi
403540:	5b                   	pop    %ebx
403541:	90                   	nop
403542:	8d 5d dc             	lea    -0x24(%ebp),%ebx
403545:	89 03                	mov    %eax,(%ebx)
403547:	89 73 04             	mov    %esi,0x4(%ebx)
40354a:	89 4b 08             	mov    %ecx,0x8(%ebx)
40354d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403550:	89 53 0c             	mov    %edx,0xc(%ebx)
403553:	8b 5d e0             	mov    -0x20(%ebp),%ebx
403556:	f7 c3 00 02 00 00    	test   $0x200,%ebx
40355c:	74 0e                	je     0x40356c
40355e:	83 cf 02             	or     $0x2,%edi
403561:	89 3d c0 69 41 00    	mov    %edi,0x4169c0
403567:	eb 03                	jmp    0x40356c
403569:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40356c:	a1 10 60 41 00       	mov    0x416010,%eax
403571:	83 c8 02             	or     $0x2,%eax
403574:	c7 05 bc 69 41 00 01 	movl   $0x1,0x4169bc
40357b:	00 00 00
40357e:	a3 10 60 41 00       	mov    %eax,0x416010
403583:	f7 c1 00 00 10 00    	test   $0x100000,%ecx
403589:	0f 84 93 00 00 00    	je     0x403622
40358f:	83 c8 04             	or     $0x4,%eax
403592:	c7 05 bc 69 41 00 02 	movl   $0x2,0x4169bc
403599:	00 00 00
40359c:	a3 10 60 41 00       	mov    %eax,0x416010
4035a1:	f7 c1 00 00 00 08    	test   $0x8000000,%ecx
4035a7:	74 79                	je     0x403622
4035a9:	f7 c1 00 00 00 10    	test   $0x10000000,%ecx
4035af:	74 71                	je     0x403622
4035b1:	33 c9                	xor    %ecx,%ecx
4035b3:	0f 01 d0             	xgetbv
4035b6:	89 45 ec             	mov    %eax,-0x14(%ebp)
4035b9:	89 55 f0             	mov    %edx,-0x10(%ebp)
4035bc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4035bf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4035c2:	6a 06                	push   $0x6
4035c4:	5e                   	pop    %esi
4035c5:	23 c6                	and    %esi,%eax
4035c7:	3b c6                	cmp    %esi,%eax
4035c9:	75 57                	jne    0x403622
4035cb:	a1 10 60 41 00       	mov    0x416010,%eax
4035d0:	83 c8 08             	or     $0x8,%eax
4035d3:	c7 05 bc 69 41 00 03 	movl   $0x3,0x4169bc
4035da:	00 00 00
4035dd:	a3 10 60 41 00       	mov    %eax,0x416010
4035e2:	f6 c3 20             	test   $0x20,%bl
4035e5:	74 3b                	je     0x403622
4035e7:	83 c8 20             	or     $0x20,%eax
4035ea:	c7 05 bc 69 41 00 05 	movl   $0x5,0x4169bc
4035f1:	00 00 00
4035f4:	a3 10 60 41 00       	mov    %eax,0x416010
4035f9:	b8 00 00 03 d0       	mov    $0xd0030000,%eax
4035fe:	23 d8                	and    %eax,%ebx
403600:	3b d8                	cmp    %eax,%ebx
403602:	75 1e                	jne    0x403622
403604:	8b 45 ec             	mov    -0x14(%ebp),%eax
403607:	ba e0 00 00 00       	mov    $0xe0,%edx
40360c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40360f:	23 c2                	and    %edx,%eax
403611:	3b c2                	cmp    %edx,%eax
403613:	75 0d                	jne    0x403622
403615:	83 0d 10 60 41 00 40 	orl    $0x40,0x416010
40361c:	89 35 bc 69 41 00    	mov    %esi,0x4169bc
403622:	5f                   	pop    %edi
403623:	5e                   	pop    %esi
403624:	5b                   	pop    %ebx
403625:	33 c0                	xor    %eax,%eax
403627:	c9                   	leave
403628:	c3                   	ret
403629:	33 c0                	xor    %eax,%eax
40362b:	39 05 ac 73 41 00    	cmp    %eax,0x4173ac
403631:	0f 95 c0             	setne  %al
403634:	c3                   	ret
403635:	3b 0d 14 60 41 00    	cmp    0x416014,%ecx
40363b:	75 01                	jne    0x40363e
40363d:	c3                   	ret
40363e:	e9 28 00 00 00       	jmp    0x40366b
403643:	55                   	push   %ebp
403644:	8b ec                	mov    %esp,%ebp
403646:	6a 00                	push   $0x0
403648:	ff 15 38 f0 40 00    	call   *0x40f038
40364e:	ff 75 08             	push   0x8(%ebp)
403651:	ff 15 34 f0 40 00    	call   *0x40f034
403657:	68 09 04 00 c0       	push   $0xc0000409
40365c:	ff 15 48 f0 40 00    	call   *0x40f048
403662:	50                   	push   %eax
403663:	ff 15 4c f0 40 00    	call   *0x40f04c
403669:	5d                   	pop    %ebp
40366a:	c3                   	ret
40366b:	55                   	push   %ebp
40366c:	8b ec                	mov    %esp,%ebp
40366e:	81 ec 24 03 00 00    	sub    $0x324,%esp
403674:	6a 17                	push   $0x17
403676:	ff 15 40 f0 40 00    	call   *0x40f040
40367c:	85 c0                	test   %eax,%eax
40367e:	74 05                	je     0x403685
403680:	6a 02                	push   $0x2
403682:	59                   	pop    %ecx
403683:	cd 29                	int    $0x29
403685:	a3 c8 6a 41 00       	mov    %eax,0x416ac8
40368a:	89 0d c4 6a 41 00    	mov    %ecx,0x416ac4
403690:	89 15 c0 6a 41 00    	mov    %edx,0x416ac0
403696:	89 1d bc 6a 41 00    	mov    %ebx,0x416abc
40369c:	89 35 b8 6a 41 00    	mov    %esi,0x416ab8
4036a2:	89 3d b4 6a 41 00    	mov    %edi,0x416ab4
4036a8:	66 8c 15 e0 6a 41 00 	data16 mov %ss,0x416ae0
4036af:	66 8c 0d d4 6a 41 00 	data16 mov %cs,0x416ad4
4036b6:	66 8c 1d b0 6a 41 00 	data16 mov %ds,0x416ab0
4036bd:	66 8c 05 ac 6a 41 00 	data16 mov %es,0x416aac
4036c4:	66 8c 25 a8 6a 41 00 	data16 mov %fs,0x416aa8
4036cb:	66 8c 2d a4 6a 41 00 	data16 mov %gs,0x416aa4
4036d2:	9c                   	pushf
4036d3:	8f 05 d8 6a 41 00    	pop    0x416ad8
4036d9:	8b 45 00             	mov    0x0(%ebp),%eax
4036dc:	a3 cc 6a 41 00       	mov    %eax,0x416acc
4036e1:	8b 45 04             	mov    0x4(%ebp),%eax
4036e4:	a3 d0 6a 41 00       	mov    %eax,0x416ad0
4036e9:	8d 45 08             	lea    0x8(%ebp),%eax
4036ec:	a3 dc 6a 41 00       	mov    %eax,0x416adc
4036f1:	8b 85 dc fc ff ff    	mov    -0x324(%ebp),%eax
4036f7:	c7 05 18 6a 41 00 01 	movl   $0x10001,0x416a18
4036fe:	00 01 00
403701:	a1 d0 6a 41 00       	mov    0x416ad0,%eax
403706:	a3 d4 69 41 00       	mov    %eax,0x4169d4
40370b:	c7 05 c8 69 41 00 09 	movl   $0xc0000409,0x4169c8
403712:	04 00 c0
403715:	c7 05 cc 69 41 00 01 	movl   $0x1,0x4169cc
40371c:	00 00 00
40371f:	c7 05 d8 69 41 00 01 	movl   $0x1,0x4169d8
403726:	00 00 00
403729:	6a 04                	push   $0x4
40372b:	58                   	pop    %eax
40372c:	6b c0 00             	imul   $0x0,%eax,%eax
40372f:	c7 80 dc 69 41 00 02 	movl   $0x2,0x4169dc(%eax)
403736:	00 00 00
403739:	6a 04                	push   $0x4
40373b:	58                   	pop    %eax
40373c:	6b c0 00             	imul   $0x0,%eax,%eax
40373f:	8b 0d 14 60 41 00    	mov    0x416014,%ecx
403745:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
403749:	6a 04                	push   $0x4
40374b:	58                   	pop    %eax
40374c:	c1 e0 00             	shl    $0x0,%eax
40374f:	8b 0d 18 60 41 00    	mov    0x416018,%ecx
403755:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
403759:	68 d0 f1 40 00       	push   $0x40f1d0
40375e:	e8 e0 fe ff ff       	call   0x403643
403763:	c9                   	leave
403764:	c3                   	ret
403765:	55                   	push   %ebp
403766:	8b ec                	mov    %esp,%ebp
403768:	51                   	push   %ecx
403769:	8b 45 18             	mov    0x18(%ebp),%eax
40376c:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40376f:	53                   	push   %ebx
403770:	56                   	push   %esi
403771:	8b 58 10             	mov    0x10(%eax),%ebx
403774:	57                   	push   %edi
403775:	8b 78 0c             	mov    0xc(%eax),%edi
403778:	8b d7                	mov    %edi,%edx
40377a:	89 55 fc             	mov    %edx,-0x4(%ebp)
40377d:	8b f2                	mov    %edx,%esi
40377f:	85 c9                	test   %ecx,%ecx
403781:	78 2d                	js     0x4037b0
403783:	6b c2 14             	imul   $0x14,%edx,%eax
403786:	83 c3 08             	add    $0x8,%ebx
403789:	03 c3                	add    %ebx,%eax
40378b:	8b 5d 10             	mov    0x10(%ebp),%ebx
40378e:	83 fa ff             	cmp    $0xffffffff,%edx
403791:	74 3c                	je     0x4037cf
403793:	83 e8 14             	sub    $0x14,%eax
403796:	4a                   	dec    %edx
403797:	39 58 fc             	cmp    %ebx,-0x4(%eax)
40379a:	7d 04                	jge    0x4037a0
40379c:	3b 18                	cmp    (%eax),%ebx
40379e:	7e 05                	jle    0x4037a5
4037a0:	83 fa ff             	cmp    $0xffffffff,%edx
4037a3:	75 07                	jne    0x4037ac
4037a5:	8b 75 fc             	mov    -0x4(%ebp),%esi
4037a8:	49                   	dec    %ecx
4037a9:	89 55 fc             	mov    %edx,-0x4(%ebp)
4037ac:	85 c9                	test   %ecx,%ecx
4037ae:	79 de                	jns    0x40378e
4037b0:	42                   	inc    %edx
4037b1:	3b f7                	cmp    %edi,%esi
4037b3:	77 1a                	ja     0x4037cf
4037b5:	3b d6                	cmp    %esi,%edx
4037b7:	77 16                	ja     0x4037cf
4037b9:	8b 45 08             	mov    0x8(%ebp),%eax
4037bc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4037bf:	5f                   	pop    %edi
4037c0:	89 70 0c             	mov    %esi,0xc(%eax)
4037c3:	5e                   	pop    %esi
4037c4:	89 08                	mov    %ecx,(%eax)
4037c6:	89 50 04             	mov    %edx,0x4(%eax)
4037c9:	89 48 08             	mov    %ecx,0x8(%eax)
4037cc:	5b                   	pop    %ebx
4037cd:	c9                   	leave
4037ce:	c3                   	ret
4037cf:	e8 ca 37 00 00       	call   0x406f9e
4037d4:	cc                   	int3
4037d5:	55                   	push   %ebp
4037d6:	8b ec                	mov    %esp,%ebp
4037d8:	83 ec 18             	sub    $0x18,%esp
4037db:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4037df:	8d 45 e8             	lea    -0x18(%ebp),%eax
4037e2:	33 05 14 60 41 00    	xor    0x416014,%eax
4037e8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4037eb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4037ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4037f1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4037f4:	8b 45 14             	mov    0x14(%ebp),%eax
4037f7:	40                   	inc    %eax
4037f8:	c7 45 ec ab 39 40 00 	movl   $0x4039ab,-0x14(%ebp)
4037ff:	89 4d f8             	mov    %ecx,-0x8(%ebp)
403802:	89 45 fc             	mov    %eax,-0x4(%ebp)
403805:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40380b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40380e:	8d 45 e8             	lea    -0x18(%ebp),%eax
403811:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403817:	ff 75 18             	push   0x18(%ebp)
40381a:	51                   	push   %ecx
40381b:	ff 75 10             	push   0x10(%ebp)
40381e:	e8 6d 17 00 00       	call   0x404f90
403823:	8b c8                	mov    %eax,%ecx
403825:	8b 45 e8             	mov    -0x18(%ebp),%eax
403828:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40382e:	8b c1                	mov    %ecx,%eax
403830:	c9                   	leave
403831:	c3                   	ret
403832:	55                   	push   %ebp
403833:	8b ec                	mov    %esp,%ebp
403835:	83 ec 40             	sub    $0x40,%esp
403838:	53                   	push   %ebx
403839:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
403840:	75 12                	jne    0x403854
403842:	b8 fc 38 40 00       	mov    $0x4038fc,%eax
403847:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40384a:	89 01                	mov    %eax,(%ecx)
40384c:	33 c0                	xor    %eax,%eax
40384e:	40                   	inc    %eax
40384f:	e9 d1 00 00 00       	jmp    0x403925
403854:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
403858:	c7 45 c4 48 3a 40 00 	movl   $0x403a48,-0x3c(%ebp)
40385f:	a1 14 60 41 00       	mov    0x416014,%eax
403864:	8d 4d c0             	lea    -0x40(%ebp),%ecx
403867:	33 c1                	xor    %ecx,%eax
403869:	89 45 c8             	mov    %eax,-0x38(%ebp)
40386c:	8b 45 18             	mov    0x18(%ebp),%eax
40386f:	89 45 cc             	mov    %eax,-0x34(%ebp)
403872:	8b 45 0c             	mov    0xc(%ebp),%eax
403875:	89 45 d0             	mov    %eax,-0x30(%ebp)
403878:	8b 45 1c             	mov    0x1c(%ebp),%eax
40387b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40387e:	8b 45 20             	mov    0x20(%ebp),%eax
403881:	89 45 d8             	mov    %eax,-0x28(%ebp)
403884:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
403888:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40388c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
403890:	89 65 dc             	mov    %esp,-0x24(%ebp)
403893:	89 6d e0             	mov    %ebp,-0x20(%ebp)
403896:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40389c:	89 45 c0             	mov    %eax,-0x40(%ebp)
40389f:	8d 45 c0             	lea    -0x40(%ebp),%eax
4038a2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4038a8:	8b 45 08             	mov    0x8(%ebp),%eax
4038ab:	ff 30                	push   (%eax)
4038ad:	e8 fe b4 00 00       	call   0x40edb0
4038b2:	59                   	pop    %ecx
4038b3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4038b6:	89 01                	mov    %eax,(%ecx)
4038b8:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4038bf:	8b 45 08             	mov    0x8(%ebp),%eax
4038c2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4038c5:	8b 45 10             	mov    0x10(%ebp),%eax
4038c8:	89 45 ec             	mov    %eax,-0x14(%ebp)
4038cb:	e8 86 08 00 00       	call   0x404156
4038d0:	8b 40 08             	mov    0x8(%eax),%eax
4038d3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038d6:	a1 18 f1 40 00       	mov    0x40f118,%eax
4038db:	89 45 f4             	mov    %eax,-0xc(%ebp)
4038de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4038e1:	ff 55 f4             	call   *-0xc(%ebp)
4038e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4038e7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4038ea:	8d 45 e8             	lea    -0x18(%ebp),%eax
4038ed:	50                   	push   %eax
4038ee:	8b 45 08             	mov    0x8(%ebp),%eax
4038f1:	ff 30                	push   (%eax)
4038f3:	ff 55 f0             	call   *-0x10(%ebp)
4038f6:	59                   	pop    %ecx
4038f7:	59                   	pop    %ecx
4038f8:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4038fc:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
403900:	74 17                	je     0x403919
403902:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
403909:	8b 03                	mov    (%ebx),%eax
40390b:	8b 5d c0             	mov    -0x40(%ebp),%ebx
40390e:	89 03                	mov    %eax,(%ebx)
403910:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
403917:	eb 09                	jmp    0x403922
403919:	8b 45 c0             	mov    -0x40(%ebp),%eax
40391c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403922:	8b 45 f8             	mov    -0x8(%ebp),%eax
403925:	5b                   	pop    %ebx
403926:	c9                   	leave
403927:	c3                   	ret
403928:	55                   	push   %ebp
403929:	8b ec                	mov    %esp,%ebp
40392b:	51                   	push   %ecx
40392c:	53                   	push   %ebx
40392d:	8b 45 0c             	mov    0xc(%ebp),%eax
403930:	83 c0 0c             	add    $0xc,%eax
403933:	89 45 fc             	mov    %eax,-0x4(%ebp)