41c377:	6a 07                	push   $0x7
41c379:	58                   	pop    %eax
41c37a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41c37d:	39 45 f4             	cmp    %eax,-0xc(%ebp)
41c380:	7c 30                	jl     0x41c3b2
41c382:	33 c9                	xor    %ecx,%ecx
41c384:	53                   	push   %ebx
41c385:	0f a2                	cpuid
41c387:	8b f3                	mov    %ebx,%esi
41c389:	5b                   	pop    %ebx
41c38a:	90                   	nop
41c38b:	8d 5d dc             	lea    -0x24(%ebp),%ebx
41c38e:	89 03                	mov    %eax,(%ebx)
41c390:	89 73 04             	mov    %esi,0x4(%ebx)
41c393:	89 4b 08             	mov    %ecx,0x8(%ebx)
41c396:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41c399:	89 53 0c             	mov    %edx,0xc(%ebx)
41c39c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
41c39f:	f7 c3 00 02 00 00    	test   $0x200,%ebx
41c3a5:	74 0e                	je     0x41c3b5
41c3a7:	83 cf 02             	or     $0x2,%edi
41c3aa:	89 3d 48 58 45 00    	mov    %edi,0x455848
41c3b0:	eb 03                	jmp    0x41c3b5
41c3b2:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41c3b5:	a1 1c 40 45 00       	mov    0x45401c,%eax
41c3ba:	83 c8 02             	or     $0x2,%eax
41c3bd:	c7 05 44 58 45 00 01 	movl   $0x1,0x455844
41c3c4:	00 00 00
41c3c7:	a3 1c 40 45 00       	mov    %eax,0x45401c
41c3cc:	f7 c1 00 00 10 00    	test   $0x100000,%ecx
41c3d2:	0f 84 93 00 00 00    	je     0x41c46b
41c3d8:	83 c8 04             	or     $0x4,%eax
41c3db:	c7 05 44 58 45 00 02 	movl   $0x2,0x455844
41c3e2:	00 00 00
41c3e5:	a3 1c 40 45 00       	mov    %eax,0x45401c
41c3ea:	f7 c1 00 00 00 08    	test   $0x8000000,%ecx
41c3f0:	74 79                	je     0x41c46b
41c3f2:	f7 c1 00 00 00 10    	test   $0x10000000,%ecx
41c3f8:	74 71                	je     0x41c46b
41c3fa:	33 c9                	xor    %ecx,%ecx
41c3fc:	0f 01 d0             	xgetbv
41c3ff:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c402:	89 55 f0             	mov    %edx,-0x10(%ebp)
41c405:	8b 45 ec             	mov    -0x14(%ebp),%eax
41c408:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41c40b:	6a 06                	push   $0x6
41c40d:	5e                   	pop    %esi
41c40e:	23 c6                	and    %esi,%eax
41c410:	3b c6                	cmp    %esi,%eax
41c412:	75 57                	jne    0x41c46b
41c414:	a1 1c 40 45 00       	mov    0x45401c,%eax
41c419:	83 c8 08             	or     $0x8,%eax
41c41c:	c7 05 44 58 45 00 03 	movl   $0x3,0x455844
41c423:	00 00 00
41c426:	a3 1c 40 45 00       	mov    %eax,0x45401c
41c42b:	f6 c3 20             	test   $0x20,%bl
41c42e:	74 3b                	je     0x41c46b
41c430:	83 c8 20             	or     $0x20,%eax
41c433:	c7 05 44 58 45 00 05 	movl   $0x5,0x455844
41c43a:	00 00 00
41c43d:	a3 1c 40 45 00       	mov    %eax,0x45401c
41c442:	b8 00 00 03 d0       	mov    $0xd0030000,%eax
41c447:	23 d8                	and    %eax,%ebx
41c449:	3b d8                	cmp    %eax,%ebx
41c44b:	75 1e                	jne    0x41c46b
41c44d:	8b 45 ec             	mov    -0x14(%ebp),%eax
41c450:	ba e0 00 00 00       	mov    $0xe0,%edx
41c455:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41c458:	23 c2                	and    %edx,%eax
41c45a:	3b c2                	cmp    %edx,%eax
41c45c:	75 0d                	jne    0x41c46b
41c45e:	83 0d 1c 40 45 00 40 	orl    $0x40,0x45401c
41c465:	89 35 44 58 45 00    	mov    %esi,0x455844
41c46b:	5f                   	pop    %edi
41c46c:	5e                   	pop    %esi
41c46d:	5b                   	pop    %ebx
41c46e:	33 c0                	xor    %eax,%eax
41c470:	c9                   	leave
41c471:	c3                   	ret
41c472:	cc                   	int3
41c473:	cc                   	int3
41c474:	cc                   	int3
41c475:	cc                   	int3
41c476:	cc                   	int3
41c477:	cc                   	int3
41c478:	cc                   	int3
41c479:	cc                   	int3
41c47a:	cc                   	int3
41c47b:	cc                   	int3
41c47c:	cc                   	int3
41c47d:	cc                   	int3
41c47e:	cc                   	int3
41c47f:	cc                   	int3
41c480:	8b 44 24 08          	mov    0x8(%esp),%eax
41c484:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41c488:	0b c8                	or     %eax,%ecx
41c48a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
41c48e:	75 09                	jne    0x41c499
41c490:	8b 44 24 04          	mov    0x4(%esp),%eax
41c494:	f7 e1                	mul    %ecx
41c496:	c2 10 00             	ret    $0x10
41c499:	53                   	push   %ebx
41c49a:	f7 e1                	mul    %ecx
41c49c:	8b d8                	mov    %eax,%ebx
41c49e:	8b 44 24 08          	mov    0x8(%esp),%eax
41c4a2:	f7 64 24 14          	mull   0x14(%esp)
41c4a6:	03 d8                	add    %eax,%ebx
41c4a8:	8b 44 24 08          	mov    0x8(%esp),%eax
41c4ac:	f7 e1                	mul    %ecx
41c4ae:	03 d3                	add    %ebx,%edx
41c4b0:	5b                   	pop    %ebx
41c4b1:	c2 10 00             	ret    $0x10
41c4b4:	cc                   	int3
41c4b5:	cc                   	int3
41c4b6:	cc                   	int3
41c4b7:	cc                   	int3
41c4b8:	cc                   	int3
41c4b9:	cc                   	int3
41c4ba:	cc                   	int3
41c4bb:	cc                   	int3
41c4bc:	cc                   	int3
41c4bd:	cc                   	int3
41c4be:	cc                   	int3
41c4bf:	cc                   	int3
41c4c0:	53                   	push   %ebx
41c4c1:	56                   	push   %esi
41c4c2:	8b 44 24 18          	mov    0x18(%esp),%eax
41c4c6:	0b c0                	or     %eax,%eax
41c4c8:	75 18                	jne    0x41c4e2
41c4ca:	8b 4c 24 14          	mov    0x14(%esp),%ecx
41c4ce:	8b 44 24 10          	mov    0x10(%esp),%eax
41c4d2:	33 d2                	xor    %edx,%edx
41c4d4:	f7 f1                	div    %ecx
41c4d6:	8b d8                	mov    %eax,%ebx
41c4d8:	8b 44 24 0c          	mov    0xc(%esp),%eax
41c4dc:	f7 f1                	div    %ecx
41c4de:	8b d3                	mov    %ebx,%edx
41c4e0:	eb 41                	jmp    0x41c523
41c4e2:	8b c8                	mov    %eax,%ecx
41c4e4:	8b 5c 24 14          	mov    0x14(%esp),%ebx
41c4e8:	8b 54 24 10          	mov    0x10(%esp),%edx
41c4ec:	8b 44 24 0c          	mov    0xc(%esp),%eax
41c4f0:	d1 e9                	shr    $1,%ecx
41c4f2:	d1 db                	rcr    $1,%ebx
41c4f4:	d1 ea                	shr    $1,%edx
41c4f6:	d1 d8                	rcr    $1,%eax
41c4f8:	0b c9                	or     %ecx,%ecx
41c4fa:	75 f4                	jne    0x41c4f0
41c4fc:	f7 f3                	div    %ebx
41c4fe:	8b f0                	mov    %eax,%esi
41c500:	f7 64 24 18          	mull   0x18(%esp)
41c504:	8b c8                	mov    %eax,%ecx
41c506:	8b 44 24 14          	mov    0x14(%esp),%eax
41c50a:	f7 e6                	mul    %esi
41c50c:	03 d1                	add    %ecx,%edx
41c50e:	72 0e                	jb     0x41c51e
41c510:	3b 54 24 10          	cmp    0x10(%esp),%edx
41c514:	77 08                	ja     0x41c51e
41c516:	72 07                	jb     0x41c51f
41c518:	3b 44 24 0c          	cmp    0xc(%esp),%eax
41c51c:	76 01                	jbe    0x41c51f
41c51e:	4e                   	dec    %esi
41c51f:	33 d2                	xor    %edx,%edx
41c521:	8b c6                	mov    %esi,%eax
41c523:	5e                   	pop    %esi
41c524:	5b                   	pop    %ebx
41c525:	c2 10 00             	ret    $0x10
41c528:	cc                   	int3
41c529:	cc                   	int3
41c52a:	cc                   	int3
41c52b:	cc                   	int3
41c52c:	cc                   	int3
41c52d:	cc                   	int3
41c52e:	cc                   	int3
41c52f:	cc                   	int3
41c530:	51                   	push   %ecx
41c531:	8d 4c 24 08          	lea    0x8(%esp),%ecx
41c535:	2b c8                	sub    %eax,%ecx
41c537:	83 e1 0f             	and    $0xf,%ecx
41c53a:	03 c1                	add    %ecx,%eax
41c53c:	1b c9                	sbb    %ecx,%ecx
41c53e:	0b c1                	or     %ecx,%eax
41c540:	59                   	pop    %ecx
41c541:	e9 ea 03 00 00       	jmp    0x41c930
41c546:	51                   	push   %ecx
41c547:	8d 4c 24 08          	lea    0x8(%esp),%ecx
41c54b:	2b c8                	sub    %eax,%ecx
41c54d:	83 e1 07             	and    $0x7,%ecx
41c550:	03 c1                	add    %ecx,%eax
41c552:	1b c9                	sbb    %ecx,%ecx
41c554:	0b c1                	or     %ecx,%eax
41c556:	59                   	pop    %ecx
41c557:	e9 d4 03 00 00       	jmp    0x41c930
41c55c:	55                   	push   %ebp
41c55d:	8b ec                	mov    %esp,%ebp
41c55f:	83 ec 14             	sub    $0x14,%esp
41c562:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41c566:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c569:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41c56d:	50                   	push   %eax
41c56e:	ff 15 50 f1 43 00    	call   *0x43f150
41c574:	8b 45 f8             	mov    -0x8(%ebp),%eax
41c577:	33 45 f4             	xor    -0xc(%ebp),%eax
41c57a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41c57d:	ff 15 5c f0 43 00    	call   *0x43f05c
41c583:	31 45 fc             	xor    %eax,-0x4(%ebp)
41c586:	ff 15 40 f0 43 00    	call   *0x43f040
41c58c:	31 45 fc             	xor    %eax,-0x4(%ebp)
41c58f:	8d 45 ec             	lea    -0x14(%ebp),%eax
41c592:	50                   	push   %eax
41c593:	ff 15 4c f1 43 00    	call   *0x43f14c
41c599:	8b 45 f0             	mov    -0x10(%ebp),%eax
41c59c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41c59f:	33 45 ec             	xor    -0x14(%ebp),%eax
41c5a2:	33 45 fc             	xor    -0x4(%ebp),%eax
41c5a5:	33 c1                	xor    %ecx,%eax
41c5a7:	c9                   	leave
41c5a8:	c3                   	ret
41c5a9:	8b 0d 14 40 45 00    	mov    0x454014,%ecx
41c5af:	56                   	push   %esi
41c5b0:	57                   	push   %edi
41c5b1:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
41c5b6:	be 00 00 ff ff       	mov    $0xffff0000,%esi
41c5bb:	3b cf                	cmp    %edi,%ecx
41c5bd:	74 04                	je     0x41c5c3
41c5bf:	85 ce                	test   %ecx,%esi
41c5c1:	75 26                	jne    0x41c5e9
41c5c3:	e8 94 ff ff ff       	call   0x41c55c
41c5c8:	8b c8                	mov    %eax,%ecx
41c5ca:	3b cf                	cmp    %edi,%ecx
41c5cc:	75 07                	jne    0x41c5d5
41c5ce:	b9 4f e6 40 bb       	mov    $0xbb40e64f,%ecx
41c5d3:	eb 0e                	jmp    0x41c5e3
41c5d5:	85 ce                	test   %ecx,%esi
41c5d7:	75 0a                	jne    0x41c5e3
41c5d9:	0d 11 47 00 00       	or     $0x4711,%eax
41c5de:	c1 e0 10             	shl    $0x10,%eax
41c5e1:	0b c8                	or     %eax,%ecx
41c5e3:	89 0d 14 40 45 00    	mov    %ecx,0x454014
41c5e9:	f7 d1                	not    %ecx
41c5eb:	5f                   	pop    %edi
41c5ec:	89 0d 18 40 45 00    	mov    %ecx,0x454018
41c5f2:	5e                   	pop    %esi
41c5f3:	c3                   	ret
41c5f4:	33 c0                	xor    %eax,%eax
41c5f6:	40                   	inc    %eax
41c5f7:	c3                   	ret
41c5f8:	b8 00 40 00 00       	mov    $0x4000,%eax
41c5fd:	c3                   	ret
41c5fe:	68 50 58 45 00       	push   $0x455850
41c603:	ff 15 54 f1 43 00    	call   *0x43f154
41c609:	c3                   	ret
41c60a:	cc                   	int3
41c60b:	cc                   	int3
41c60c:	cc                   	int3
41c60d:	cc                   	int3
41c60e:	cc                   	int3
41c60f:	cc                   	int3
41c610:	b0 01                	mov    $0x1,%al
41c612:	c3                   	ret
41c613:	68 00 00 03 00       	push   $0x30000
41c618:	68 00 00 01 00       	push   $0x10000
41c61d:	6a 00                	push   $0x0
41c61f:	e8 3c f6 00 00       	call   0x42bc60
41c624:	83 c4 0c             	add    $0xc,%esp
41c627:	85 c0                	test   %eax,%eax
41c629:	75 01                	jne    0x41c62c
41c62b:	c3                   	ret
41c62c:	6a 07                	push   $0x7
41c62e:	e8 3c 00 00 00       	call   0x41c66f
41c633:	cc                   	int3
41c634:	b8 58 58 45 00       	mov    $0x455858,%eax
41c639:	c3                   	ret
41c63a:	e8 a1 75 fe ff       	call   0x403be0
41c63f:	8b 48 04             	mov    0x4(%eax),%ecx
41c642:	83 08 24             	orl    $0x24,(%eax)
41c645:	89 48 04             	mov    %ecx,0x4(%eax)
41c648:	e8 e7 ff ff ff       	call   0x41c634
41c64d:	8b 48 04             	mov    0x4(%eax),%ecx
41c650:	83 08 02             	orl    $0x2,(%eax)
41c653:	89 48 04             	mov    %ecx,0x4(%eax)
41c656:	c3                   	ret
41c657:	33 c0                	xor    %eax,%eax
41c659:	39 05 30 40 45 00    	cmp    %eax,0x454030
41c65f:	0f 94 c0             	sete   %al
41c662:	c3                   	ret
41c663:	b8 64 62 45 00       	mov    $0x456264,%eax
41c668:	c3                   	ret
41c669:	b8 60 62 45 00       	mov    $0x456260,%eax
41c66e:	c3                   	ret
41c66f:	55                   	push   %ebp
41c670:	8b ec                	mov    %esp,%ebp
41c672:	81 ec 24 03 00 00    	sub    $0x324,%esp
41c678:	53                   	push   %ebx
41c679:	6a 17                	push   $0x17
41c67b:	ff 15 48 f1 43 00    	call   *0x43f148
41c681:	85 c0                	test   %eax,%eax
41c683:	74 05                	je     0x41c68a
41c685:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c688:	cd 29                	int    $0x29
41c68a:	6a 03                	push   $0x3
41c68c:	e8 d5 01 00 00       	call   0x41c866
41c691:	c7 04 24 cc 02 00 00 	movl   $0x2cc,(%esp)
41c698:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
41c69e:	6a 00                	push   $0x0
41c6a0:	50                   	push   %eax
41c6a1:	e8 3a 13 00 00       	call   0x41d9e0
41c6a6:	83 c4 0c             	add    $0xc,%esp
41c6a9:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
41c6af:	89 8d 88 fd ff ff    	mov    %ecx,-0x278(%ebp)
41c6b5:	89 95 84 fd ff ff    	mov    %edx,-0x27c(%ebp)
41c6bb:	89 9d 80 fd ff ff    	mov    %ebx,-0x280(%ebp)
41c6c1:	89 b5 7c fd ff ff    	mov    %esi,-0x284(%ebp)
41c6c7:	89 bd 78 fd ff ff    	mov    %edi,-0x288(%ebp)
41c6cd:	66 8c 95 a4 fd ff ff 	data16 mov %ss,-0x25c(%ebp)
41c6d4:	66 8c 8d 98 fd ff ff 	data16 mov %cs,-0x268(%ebp)
41c6db:	66 8c 9d 74 fd ff ff 	data16 mov %ds,-0x28c(%ebp)
41c6e2:	66 8c 85 70 fd ff ff 	data16 mov %es,-0x290(%ebp)
41c6e9:	66 8c a5 6c fd ff ff 	data16 mov %fs,-0x294(%ebp)
41c6f0:	66 8c ad 68 fd ff ff 	data16 mov %gs,-0x298(%ebp)
41c6f7:	9c                   	pushf
41c6f8:	8f 85 9c fd ff ff    	pop    -0x264(%ebp)
41c6fe:	8b 45 04             	mov    0x4(%ebp),%eax
41c701:	89 85 94 fd ff ff    	mov    %eax,-0x26c(%ebp)
41c707:	8d 45 04             	lea    0x4(%ebp),%eax
41c70a:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
41c710:	c7 85 dc fc ff ff 01 	movl   $0x10001,-0x324(%ebp)
41c717:	00 01 00
41c71a:	8b 40 fc             	mov    -0x4(%eax),%eax
41c71d:	6a 50                	push   $0x50
41c71f:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
41c725:	8d 45 a8             	lea    -0x58(%ebp),%eax
41c728:	6a 00                	push   $0x0
41c72a:	50                   	push   %eax
41c72b:	e8 b0 12 00 00       	call   0x41d9e0
41c730:	8b 45 04             	mov    0x4(%ebp),%eax
41c733:	83 c4 0c             	add    $0xc,%esp
41c736:	c7 45 a8 15 00 00 40 	movl   $0x40000015,-0x58(%ebp)
41c73d:	c7 45 ac 01 00 00 00 	movl   $0x1,-0x54(%ebp)
41c744:	89 45 b4             	mov    %eax,-0x4c(%ebp)
41c747:	ff 15 58 f1 43 00    	call   *0x43f158
41c74d:	6a 00                	push   $0x0
41c74f:	8d 58 ff             	lea    -0x1(%eax),%ebx
41c752:	f7 db                	neg    %ebx
41c754:	8d 45 a8             	lea    -0x58(%ebp),%eax
41c757:	89 45 f8             	mov    %eax,-0x8(%ebp)
41c75a:	8d 85 dc fc ff ff    	lea    -0x324(%ebp),%eax
41c760:	1a db                	sbb    %bl,%bl
41c762:	89 45 fc             	mov    %eax,-0x4(%ebp)
41c765:	fe c3                	inc    %bl