41a339:	83 0d 1c 50 45 00 01 	orl    $0x1,0x45501c
41a340:	6a 0a                	push   $0xa
41a342:	ff 15 7c e1 43 00    	call   *0x43e17c
41a348:	85 c0                	test   %eax,%eax
41a34a:	0f 84 ac 01 00 00    	je     0x41a4fc
41a350:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
41a354:	33 c0                	xor    %eax,%eax
41a356:	53                   	push   %ebx
41a357:	56                   	push   %esi
41a358:	57                   	push   %edi
41a359:	33 c9                	xor    %ecx,%ecx
41a35b:	8d 7d dc             	lea    -0x24(%ebp),%edi
41a35e:	53                   	push   %ebx
41a35f:	0f a2                	cpuid
41a361:	8b f3                	mov    %ebx,%esi
41a363:	5b                   	pop    %ebx
41a364:	90                   	nop
41a365:	89 07                	mov    %eax,(%edi)
41a367:	89 77 04             	mov    %esi,0x4(%edi)
41a36a:	89 4f 08             	mov    %ecx,0x8(%edi)
41a36d:	33 c9                	xor    %ecx,%ecx
41a36f:	89 57 0c             	mov    %edx,0xc(%edi)
41a372:	8b 45 dc             	mov    -0x24(%ebp),%eax
41a375:	8b 7d e0             	mov    -0x20(%ebp),%edi
41a378:	89 45 f4             	mov    %eax,-0xc(%ebp)
41a37b:	81 f7 47 65 6e 75    	xor    $0x756e6547,%edi
41a381:	8b 45 e8             	mov    -0x18(%ebp),%eax
41a384:	35 69 6e 65 49       	xor    $0x49656e69,%eax
41a389:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a38c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41a38f:	35 6e 74 65 6c       	xor    $0x6c65746e,%eax
41a394:	89 45 f8             	mov    %eax,-0x8(%ebp)
41a397:	33 c0                	xor    %eax,%eax
41a399:	40                   	inc    %eax
41a39a:	53                   	push   %ebx
41a39b:	0f a2                	cpuid
41a39d:	8b f3                	mov    %ebx,%esi
41a39f:	5b                   	pop    %ebx
41a3a0:	90                   	nop
41a3a1:	8d 5d dc             	lea    -0x24(%ebp),%ebx
41a3a4:	89 03                	mov    %eax,(%ebx)
41a3a6:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a3a9:	0b 45 f8             	or     -0x8(%ebp),%eax
41a3ac:	0b c7                	or     %edi,%eax
41a3ae:	89 73 04             	mov    %esi,0x4(%ebx)
41a3b1:	89 4b 08             	mov    %ecx,0x8(%ebx)
41a3b4:	89 53 0c             	mov    %edx,0xc(%ebx)
41a3b7:	75 43                	jne    0x41a3fc
41a3b9:	8b 45 dc             	mov    -0x24(%ebp),%eax
41a3bc:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
41a3c1:	3d c0 06 01 00       	cmp    $0x106c0,%eax
41a3c6:	74 23                	je     0x41a3eb
41a3c8:	3d 60 06 02 00       	cmp    $0x20660,%eax
41a3cd:	74 1c                	je     0x41a3eb
41a3cf:	3d 70 06 02 00       	cmp    $0x20670,%eax
41a3d4:	74 15                	je     0x41a3eb
41a3d6:	3d 50 06 03 00       	cmp    $0x30650,%eax
41a3db:	74 0e                	je     0x41a3eb
41a3dd:	3d 60 06 03 00       	cmp    $0x30660,%eax
41a3e2:	74 07                	je     0x41a3eb
41a3e4:	3d 70 06 03 00       	cmp    $0x30670,%eax
41a3e9:	75 11                	jne    0x41a3fc
41a3eb:	8b 3d c0 68 45 00    	mov    0x4568c0,%edi
41a3f1:	83 cf 01             	or     $0x1,%edi
41a3f4:	89 3d c0 68 45 00    	mov    %edi,0x4568c0
41a3fa:	eb 06                	jmp    0x41a402
41a3fc:	8b 3d c0 68 45 00    	mov    0x4568c0,%edi
41a402:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41a405:	6a 07                	push   $0x7
41a407:	58                   	pop    %eax
41a408:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41a40b:	39 45 f4             	cmp    %eax,-0xc(%ebp)
41a40e:	7c 30                	jl     0x41a440
41a410:	33 c9                	xor    %ecx,%ecx
41a412:	53                   	push   %ebx
41a413:	0f a2                	cpuid
41a415:	8b f3                	mov    %ebx,%esi
41a417:	5b                   	pop    %ebx
41a418:	90                   	nop
41a419:	8d 5d dc             	lea    -0x24(%ebp),%ebx
41a41c:	89 03                	mov    %eax,(%ebx)
41a41e:	89 73 04             	mov    %esi,0x4(%ebx)
41a421:	89 4b 08             	mov    %ecx,0x8(%ebx)
41a424:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41a427:	89 53 0c             	mov    %edx,0xc(%ebx)
41a42a:	8b 5d e0             	mov    -0x20(%ebp),%ebx
41a42d:	f7 c3 00 02 00 00    	test   $0x200,%ebx
41a433:	74 0e                	je     0x41a443
41a435:	83 cf 02             	or     $0x2,%edi
41a438:	89 3d c0 68 45 00    	mov    %edi,0x4568c0
41a43e:	eb 03                	jmp    0x41a443
41a440:	8b 5d f0             	mov    -0x10(%ebp),%ebx
41a443:	a1 1c 50 45 00       	mov    0x45501c,%eax
41a448:	83 c8 02             	or     $0x2,%eax
41a44b:	c7 05 bc 68 45 00 01 	movl   $0x1,0x4568bc
41a452:	00 00 00
41a455:	a3 1c 50 45 00       	mov    %eax,0x45501c
41a45a:	f7 c1 00 00 10 00    	test   $0x100000,%ecx
41a460:	0f 84 93 00 00 00    	je     0x41a4f9
41a466:	83 c8 04             	or     $0x4,%eax
41a469:	c7 05 bc 68 45 00 02 	movl   $0x2,0x4568bc
41a470:	00 00 00
41a473:	a3 1c 50 45 00       	mov    %eax,0x45501c
41a478:	f7 c1 00 00 00 08    	test   $0x8000000,%ecx
41a47e:	74 79                	je     0x41a4f9
41a480:	f7 c1 00 00 00 10    	test   $0x10000000,%ecx
41a486:	74 71                	je     0x41a4f9
41a488:	33 c9                	xor    %ecx,%ecx
41a48a:	0f 01 d0             	xgetbv
41a48d:	89 45 ec             	mov    %eax,-0x14(%ebp)
41a490:	89 55 f0             	mov    %edx,-0x10(%ebp)
41a493:	8b 45 ec             	mov    -0x14(%ebp),%eax
41a496:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a499:	6a 06                	push   $0x6
41a49b:	5e                   	pop    %esi
41a49c:	23 c6                	and    %esi,%eax
41a49e:	3b c6                	cmp    %esi,%eax
41a4a0:	75 57                	jne    0x41a4f9
41a4a2:	a1 1c 50 45 00       	mov    0x45501c,%eax
41a4a7:	83 c8 08             	or     $0x8,%eax
41a4aa:	c7 05 bc 68 45 00 03 	movl   $0x3,0x4568bc
41a4b1:	00 00 00
41a4b4:	a3 1c 50 45 00       	mov    %eax,0x45501c
41a4b9:	f6 c3 20             	test   $0x20,%bl
41a4bc:	74 3b                	je     0x41a4f9
41a4be:	83 c8 20             	or     $0x20,%eax
41a4c1:	c7 05 bc 68 45 00 05 	movl   $0x5,0x4568bc
41a4c8:	00 00 00
41a4cb:	a3 1c 50 45 00       	mov    %eax,0x45501c
41a4d0:	b8 00 00 03 d0       	mov    $0xd0030000,%eax
41a4d5:	23 d8                	and    %eax,%ebx
41a4d7:	3b d8                	cmp    %eax,%ebx
41a4d9:	75 1e                	jne    0x41a4f9
41a4db:	8b 45 ec             	mov    -0x14(%ebp),%eax
41a4de:	ba e0 00 00 00       	mov    $0xe0,%edx
41a4e3:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41a4e6:	23 c2                	and    %edx,%eax
41a4e8:	3b c2                	cmp    %edx,%eax
41a4ea:	75 0d                	jne    0x41a4f9
41a4ec:	83 0d 1c 50 45 00 40 	orl    $0x40,0x45501c
41a4f3:	89 35 bc 68 45 00    	mov    %esi,0x4568bc
41a4f9:	5f                   	pop    %edi
41a4fa:	5e                   	pop    %esi
41a4fb:	5b                   	pop    %ebx
41a4fc:	33 c0                	xor    %eax,%eax
41a4fe:	c9                   	leave
41a4ff:	c3                   	ret
41a500:	8b 44 24 08          	mov    0x8(%esp),%eax
41a504:	8b 4c 24 10          	mov    0x10(%esp),%ecx
41a508:	0b c8                	or     %eax,%ecx
41a50a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
41a50e:	75 09                	jne    0x41a519
41a510:	8b 44 24 04          	mov    0x4(%esp),%eax
41a514:	f7 e1                	mul    %ecx
41a516:	c2 10 00             	ret    $0x10
41a519:	53                   	push   %ebx
41a51a:	f7 e1                	mul    %ecx
41a51c:	8b d8                	mov    %eax,%ebx
41a51e:	8b 44 24 08          	mov    0x8(%esp),%eax
41a522:	f7 64 24 14          	mull   0x14(%esp)
41a526:	03 d8                	add    %eax,%ebx
41a528:	8b 44 24 08          	mov    0x8(%esp),%eax
41a52c:	f7 e1                	mul    %ecx
41a52e:	03 d3                	add    %ebx,%edx
41a530:	5b                   	pop    %ebx
41a531:	c2 10 00             	ret    $0x10
41a534:	cc                   	int3
41a535:	cc                   	int3
41a536:	cc                   	int3
41a537:	cc                   	int3
41a538:	cc                   	int3
41a539:	cc                   	int3
41a53a:	cc                   	int3
41a53b:	cc                   	int3
41a53c:	cc                   	int3
41a53d:	cc                   	int3
41a53e:	cc                   	int3
41a53f:	cc                   	int3
41a540:	53                   	push   %ebx
41a541:	56                   	push   %esi
41a542:	8b 44 24 18          	mov    0x18(%esp),%eax
41a546:	0b c0                	or     %eax,%eax
41a548:	75 18                	jne    0x41a562
41a54a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
41a54e:	8b 44 24 10          	mov    0x10(%esp),%eax
41a552:	33 d2                	xor    %edx,%edx
41a554:	f7 f1                	div    %ecx
41a556:	8b d8                	mov    %eax,%ebx
41a558:	8b 44 24 0c          	mov    0xc(%esp),%eax
41a55c:	f7 f1                	div    %ecx
41a55e:	8b d3                	mov    %ebx,%edx
41a560:	eb 41                	jmp    0x41a5a3
41a562:	8b c8                	mov    %eax,%ecx
41a564:	8b 5c 24 14          	mov    0x14(%esp),%ebx
41a568:	8b 54 24 10          	mov    0x10(%esp),%edx
41a56c:	8b 44 24 0c          	mov    0xc(%esp),%eax
41a570:	d1 e9                	shr    $1,%ecx
41a572:	d1 db                	rcr    $1,%ebx
41a574:	d1 ea                	shr    $1,%edx
41a576:	d1 d8                	rcr    $1,%eax
41a578:	0b c9                	or     %ecx,%ecx
41a57a:	75 f4                	jne    0x41a570
41a57c:	f7 f3                	div    %ebx
41a57e:	8b f0                	mov    %eax,%esi
41a580:	f7 64 24 18          	mull   0x18(%esp)
41a584:	8b c8                	mov    %eax,%ecx
41a586:	8b 44 24 14          	mov    0x14(%esp),%eax
41a58a:	f7 e6                	mul    %esi
41a58c:	03 d1                	add    %ecx,%edx
41a58e:	72 0e                	jb     0x41a59e
41a590:	3b 54 24 10          	cmp    0x10(%esp),%edx
41a594:	77 08                	ja     0x41a59e
41a596:	72 07                	jb     0x41a59f
41a598:	3b 44 24 0c          	cmp    0xc(%esp),%eax
41a59c:	76 01                	jbe    0x41a59f
41a59e:	4e                   	dec    %esi
41a59f:	33 d2                	xor    %edx,%edx
41a5a1:	8b c6                	mov    %esi,%eax
41a5a3:	5e                   	pop    %esi
41a5a4:	5b                   	pop    %ebx
41a5a5:	c2 10 00             	ret    $0x10
41a5a8:	cc                   	int3
41a5a9:	cc                   	int3
41a5aa:	cc                   	int3
41a5ab:	cc                   	int3
41a5ac:	cc                   	int3
41a5ad:	cc                   	int3
41a5ae:	cc                   	int3
41a5af:	cc                   	int3
41a5b0:	51                   	push   %ecx
41a5b1:	8d 4c 24 08          	lea    0x8(%esp),%ecx
41a5b5:	2b c8                	sub    %eax,%ecx
41a5b7:	83 e1 0f             	and    $0xf,%ecx
41a5ba:	03 c1                	add    %ecx,%eax
41a5bc:	1b c9                	sbb    %ecx,%ecx
41a5be:	0b c1                	or     %ecx,%eax
41a5c0:	59                   	pop    %ecx
41a5c1:	e9 aa 03 00 00       	jmp    0x41a970
41a5c6:	51                   	push   %ecx
41a5c7:	8d 4c 24 08          	lea    0x8(%esp),%ecx
41a5cb:	2b c8                	sub    %eax,%ecx
41a5cd:	83 e1 07             	and    $0x7,%ecx
41a5d0:	03 c1                	add    %ecx,%eax
41a5d2:	1b c9                	sbb    %ecx,%ecx
41a5d4:	0b c1                	or     %ecx,%eax
41a5d6:	59                   	pop    %ecx
41a5d7:	e9 94 03 00 00       	jmp    0x41a970
41a5dc:	55                   	push   %ebp
41a5dd:	8b ec                	mov    %esp,%ebp
41a5df:	83 ec 14             	sub    $0x14,%esp
41a5e2:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41a5e6:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a5e9:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41a5ed:	50                   	push   %eax
41a5ee:	ff 15 84 e1 43 00    	call   *0x43e184
41a5f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a5f7:	33 45 f4             	xor    -0xc(%ebp),%eax
41a5fa:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a5fd:	ff 15 f4 e0 43 00    	call   *0x43e0f4
41a603:	31 45 fc             	xor    %eax,-0x4(%ebp)
41a606:	ff 15 3c e0 43 00    	call   *0x43e03c
41a60c:	31 45 fc             	xor    %eax,-0x4(%ebp)
41a60f:	8d 45 ec             	lea    -0x14(%ebp),%eax
41a612:	50                   	push   %eax
41a613:	ff 15 80 e1 43 00    	call   *0x43e180
41a619:	8b 45 f0             	mov    -0x10(%ebp),%eax
41a61c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
41a61f:	33 45 ec             	xor    -0x14(%ebp),%eax
41a622:	33 45 fc             	xor    -0x4(%ebp),%eax
41a625:	33 c1                	xor    %ecx,%eax
41a627:	c9                   	leave
41a628:	c3                   	ret
41a629:	8b 0d 14 50 45 00    	mov    0x455014,%ecx
41a62f:	56                   	push   %esi
41a630:	57                   	push   %edi
41a631:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
41a636:	be 00 00 ff ff       	mov    $0xffff0000,%esi
41a63b:	3b cf                	cmp    %edi,%ecx
41a63d:	74 04                	je     0x41a643
41a63f:	85 ce                	test   %ecx,%esi
41a641:	75 26                	jne    0x41a669
41a643:	e8 94 ff ff ff       	call   0x41a5dc
41a648:	8b c8                	mov    %eax,%ecx
41a64a:	3b cf                	cmp    %edi,%ecx
41a64c:	75 07                	jne    0x41a655
41a64e:	b9 4f e6 40 bb       	mov    $0xbb40e64f,%ecx
41a653:	eb 0e                	jmp    0x41a663
41a655:	85 ce                	test   %ecx,%esi
41a657:	75 0a                	jne    0x41a663
41a659:	0d 11 47 00 00       	or     $0x4711,%eax
41a65e:	c1 e0 10             	shl    $0x10,%eax
41a661:	0b c8                	or     %eax,%ecx
41a663:	89 0d 14 50 45 00    	mov    %ecx,0x455014
41a669:	f7 d1                	not    %ecx
41a66b:	5f                   	pop    %edi
41a66c:	89 0d 18 50 45 00    	mov    %ecx,0x455018
41a672:	5e                   	pop    %esi
41a673:	c3                   	ret
41a674:	33 c0                	xor    %eax,%eax
41a676:	40                   	inc    %eax
41a677:	c3                   	ret
41a678:	b8 00 40 00 00       	mov    $0x4000,%eax
41a67d:	c3                   	ret
41a67e:	cc                   	int3
41a67f:	cc                   	int3
41a680:	b0 01                	mov    $0x1,%al
41a682:	c3                   	ret
41a683:	68 00 00 03 00       	push   $0x30000
41a688:	68 00 00 01 00       	push   $0x10000
41a68d:	6a 00                	push   $0x0
41a68f:	e8 bc f9 00 00       	call   0x42a050
41a694:	83 c4 0c             	add    $0xc,%esp
41a697:	85 c0                	test   %eax,%eax
41a699:	75 01                	jne    0x41a69c
41a69b:	c3                   	ret
41a69c:	6a 07                	push   $0x7
41a69e:	e8 3c 00 00 00       	call   0x41a6df
41a6a3:	cc                   	int3
41a6a4:	b8 c8 68 45 00       	mov    $0x4568c8,%eax
41a6a9:	c3                   	ret
41a6aa:	e8 31 a0 fe ff       	call   0x4046e0
41a6af:	8b 48 04             	mov    0x4(%eax),%ecx
41a6b2:	83 08 24             	orl    $0x24,(%eax)
41a6b5:	89 48 04             	mov    %ecx,0x4(%eax)
41a6b8:	e8 e7 ff ff ff       	call   0x41a6a4
41a6bd:	8b 48 04             	mov    0x4(%eax),%ecx
41a6c0:	83 08 02             	orl    $0x2,(%eax)
41a6c3:	89 48 04             	mov    %ecx,0x4(%eax)
41a6c6:	c3                   	ret
41a6c7:	33 c0                	xor    %eax,%eax
41a6c9:	39 05 30 50 45 00    	cmp    %eax,0x455030
41a6cf:	0f 94 c0             	sete   %al
41a6d2:	c3                   	ret
41a6d3:	b8 c8 7b 45 00       	mov    $0x457bc8,%eax
41a6d8:	c3                   	ret
41a6d9:	b8 c4 7b 45 00       	mov    $0x457bc4,%eax
41a6de:	c3                   	ret
41a6df:	55                   	push   %ebp
41a6e0:	8b ec                	mov    %esp,%ebp
41a6e2:	81 ec 24 03 00 00    	sub    $0x324,%esp
41a6e8:	53                   	push   %ebx
41a6e9:	6a 17                	push   $0x17
41a6eb:	ff 15 7c e1 43 00    	call   *0x43e17c
41a6f1:	85 c0                	test   %eax,%eax
41a6f3:	74 05                	je     0x41a6fa
41a6f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
41a6f8:	cd 29                	int    $0x29
41a6fa:	6a 03                	push   $0x3
41a6fc:	e8 a5 01 00 00       	call   0x41a8a6
41a701:	c7 04 24 cc 02 00 00 	movl   $0x2cc,(%esp)