42246f:	0f a2                	cpuid
422471:	8b f3                	mov    %ebx,%esi
422473:	5b                   	pop    %ebx
422474:	90                   	nop
422475:	89 07                	mov    %eax,(%edi)
422477:	89 77 04             	mov    %esi,0x4(%edi)
42247a:	89 4f 08             	mov    %ecx,0x8(%edi)
42247d:	33 c9                	xor    %ecx,%ecx
42247f:	89 57 0c             	mov    %edx,0xc(%edi)
422482:	8b 45 dc             	mov    -0x24(%ebp),%eax
422485:	8b 7d e0             	mov    -0x20(%ebp),%edi
422488:	89 45 f4             	mov    %eax,-0xc(%ebp)
42248b:	81 f7 47 65 6e 75    	xor    $0x756e6547,%edi
422491:	8b 45 e8             	mov    -0x18(%ebp),%eax
422494:	35 69 6e 65 49       	xor    $0x49656e69,%eax
422499:	89 45 f8             	mov    %eax,-0x8(%ebp)
42249c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
42249f:	35 6e 74 65 6c       	xor    $0x6c65746e,%eax
4224a4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4224a7:	33 c0                	xor    %eax,%eax
4224a9:	40                   	inc    %eax
4224aa:	53                   	push   %ebx
4224ab:	0f a2                	cpuid
4224ad:	8b f3                	mov    %ebx,%esi
4224af:	5b                   	pop    %ebx
4224b0:	90                   	nop
4224b1:	8d 5d dc             	lea    -0x24(%ebp),%ebx
4224b4:	89 03                	mov    %eax,(%ebx)
4224b6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4224b9:	0b 45 f8             	or     -0x8(%ebp),%eax
4224bc:	0b c7                	or     %edi,%eax
4224be:	89 73 04             	mov    %esi,0x4(%ebx)
4224c1:	89 4b 08             	mov    %ecx,0x8(%ebx)
4224c4:	89 53 0c             	mov    %edx,0xc(%ebx)
4224c7:	75 43                	jne    0x42250c
4224c9:	8b 45 dc             	mov    -0x24(%ebp),%eax
4224cc:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
4224d1:	3d c0 06 01 00       	cmp    $0x106c0,%eax
4224d6:	74 23                	je     0x4224fb
4224d8:	3d 60 06 02 00       	cmp    $0x20660,%eax
4224dd:	74 1c                	je     0x4224fb
4224df:	3d 70 06 02 00       	cmp    $0x20670,%eax
4224e4:	74 15                	je     0x4224fb
4224e6:	3d 50 06 03 00       	cmp    $0x30650,%eax
4224eb:	74 0e                	je     0x4224fb
4224ed:	3d 60 06 03 00       	cmp    $0x30660,%eax
4224f2:	74 07                	je     0x4224fb
4224f4:	3d 70 06 03 00       	cmp    $0x30670,%eax
4224f9:	75 11                	jne    0x42250c
4224fb:	8b 3d 58 4c 42 00    	mov    0x424c58,%edi
422501:	83 cf 01             	or     $0x1,%edi
422504:	89 3d 58 4c 42 00    	mov    %edi,0x424c58
42250a:	eb 06                	jmp    0x422512
42250c:	8b 3d 58 4c 42 00    	mov    0x424c58,%edi
422512:	83 7d f4 07          	cmpl   $0x7,-0xc(%ebp)
422516:	8b 45 e4             	mov    -0x1c(%ebp),%eax
422519:	89 45 fc             	mov    %eax,-0x4(%ebp)
42251c:	7c 33                	jl     0x422551
42251e:	6a 07                	push   $0x7
422520:	58                   	pop    %eax
422521:	33 c9                	xor    %ecx,%ecx
422523:	53                   	push   %ebx
422524:	0f a2                	cpuid
422526:	8b f3                	mov    %ebx,%esi
422528:	5b                   	pop    %ebx
422529:	90                   	nop
42252a:	8d 5d dc             	lea    -0x24(%ebp),%ebx
42252d:	89 03                	mov    %eax,(%ebx)
42252f:	8b 45 fc             	mov    -0x4(%ebp),%eax
422532:	89 73 04             	mov    %esi,0x4(%ebx)
422535:	89 4b 08             	mov    %ecx,0x8(%ebx)
422538:	89 53 0c             	mov    %edx,0xc(%ebx)
42253b:	8b 5d e0             	mov    -0x20(%ebp),%ebx
42253e:	f7 c3 00 02 00 00    	test   $0x200,%ebx
422544:	74 0e                	je     0x422554
422546:	83 cf 02             	or     $0x2,%edi
422549:	89 3d 58 4c 42 00    	mov    %edi,0x424c58
42254f:	eb 03                	jmp    0x422554
422551:	8b 5d f0             	mov    -0x10(%ebp),%ebx
422554:	5f                   	pop    %edi
422555:	5e                   	pop    %esi
422556:	a9 00 00 10 00       	test   $0x100000,%eax
42255b:	74 66                	je     0x4225c3
42255d:	83 0d 18 42 42 00 04 	orl    $0x4,0x424218
422564:	c7 05 54 4c 42 00 02 	movl   $0x2,0x424c54
42256b:	00 00 00
42256e:	a9 00 00 00 08       	test   $0x8000000,%eax
422573:	74 4e                	je     0x4225c3
422575:	a9 00 00 00 10       	test   $0x10000000,%eax
42257a:	74 47                	je     0x4225c3
42257c:	33 c9                	xor    %ecx,%ecx
42257e:	0f 01 d0             	xgetbv
422581:	89 45 ec             	mov    %eax,-0x14(%ebp)
422584:	89 55 f0             	mov    %edx,-0x10(%ebp)
422587:	8b 45 ec             	mov    -0x14(%ebp),%eax
42258a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42258d:	83 e0 06             	and    $0x6,%eax
422590:	83 f8 06             	cmp    $0x6,%eax
422593:	75 2e                	jne    0x4225c3
422595:	a1 18 42 42 00       	mov    0x424218,%eax
42259a:	83 c8 08             	or     $0x8,%eax
42259d:	c7 05 54 4c 42 00 03 	movl   $0x3,0x424c54
4225a4:	00 00 00
4225a7:	a3 18 42 42 00       	mov    %eax,0x424218
4225ac:	f6 c3 20             	test   $0x20,%bl
4225af:	74 12                	je     0x4225c3
4225b1:	83 c8 20             	or     $0x20,%eax
4225b4:	c7 05 54 4c 42 00 05 	movl   $0x5,0x424c54
4225bb:	00 00 00
4225be:	a3 18 42 42 00       	mov    %eax,0x424218
4225c3:	33 c0                	xor    %eax,%eax
4225c5:	5b                   	pop    %ebx
4225c6:	c9                   	leave
4225c7:	c3                   	ret
4225c8:	33 c0                	xor    %eax,%eax
4225ca:	39 05 1c 42 42 00    	cmp    %eax,0x42421c
4225d0:	0f 95 c0             	setne  %al
4225d3:	c3                   	ret
4225d4:	e9 51 02 00 00       	jmp    0x42282a
4225d9:	8b ff                	mov    %edi,%edi
4225db:	55                   	push   %ebp
4225dc:	8b ec                	mov    %esp,%ebp
4225de:	eb 0d                	jmp    0x4225ed
4225e0:	ff 75 08             	push   0x8(%ebp)
4225e3:	e8 ca 01 00 00       	call   0x4227b2
4225e8:	59                   	pop    %ecx
4225e9:	85 c0                	test   %eax,%eax
4225eb:	74 0f                	je     0x4225fc
4225ed:	ff 75 08             	push   0x8(%ebp)
4225f0:	e8 3b 02 00 00       	call   0x422830
4225f5:	59                   	pop    %ecx
4225f6:	85 c0                	test   %eax,%eax
4225f8:	74 e6                	je     0x4225e0
4225fa:	5d                   	pop    %ebp
4225fb:	c3                   	ret
4225fc:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
422600:	0f 84 25 01 00 00    	je     0x42272b
422606:	e9 01 01 00 00       	jmp    0x42270c
42260b:	cc                   	int3
42260c:	cc                   	int3
42260d:	cc                   	int3
42260e:	cc                   	int3
42260f:	cc                   	int3
422610:	8b ff                	mov    %edi,%edi
422612:	55                   	push   %ebp
422613:	8b ec                	mov    %esp,%ebp
422615:	56                   	push   %esi
422616:	ff 75 08             	push   0x8(%ebp)
422619:	8b f1                	mov    %ecx,%esi
42261b:	e8 70 00 00 00       	call   0x422690
422620:	c7 06 18 10 40 00    	movl   $0x401018,(%esi)
422626:	8b c6                	mov    %esi,%eax
422628:	5e                   	pop    %esi
422629:	5d                   	pop    %ebp
42262a:	c2 04 00             	ret    $0x4
42262d:	83 61 04 00          	andl   $0x0,0x4(%ecx)
422631:	8b c1                	mov    %ecx,%eax
422633:	83 61 08 00          	andl   $0x0,0x8(%ecx)
422637:	c7 41 04 98 18 40 00 	movl   $0x401898,0x4(%ecx)
42263e:	c7 01 18 10 40 00    	movl   $0x401018,(%ecx)
422644:	c3                   	ret
422645:	cc                   	int3
422646:	cc                   	int3
422647:	cc                   	int3
422648:	cc                   	int3
422649:	cc                   	int3
42264a:	cc                   	int3
42264b:	cc                   	int3
42264c:	cc                   	int3
42264d:	cc                   	int3
42264e:	cc                   	int3
42264f:	cc                   	int3
422650:	8b ff                	mov    %edi,%edi
422652:	55                   	push   %ebp
422653:	8b ec                	mov    %esp,%ebp
422655:	56                   	push   %esi
422656:	ff 75 08             	push   0x8(%ebp)
422659:	8b f1                	mov    %ecx,%esi
42265b:	e8 30 00 00 00       	call   0x422690
422660:	c7 06 24 10 40 00    	movl   $0x401024,(%esi)
422666:	8b c6                	mov    %esi,%eax
422668:	5e                   	pop    %esi
422669:	5d                   	pop    %ebp
42266a:	c2 04 00             	ret    $0x4
42266d:	83 61 04 00          	andl   $0x0,0x4(%ecx)
422671:	8b c1                	mov    %ecx,%eax
422673:	83 61 08 00          	andl   $0x0,0x8(%ecx)
422677:	c7 41 04 a8 18 40 00 	movl   $0x4018a8,0x4(%ecx)
42267e:	c7 01 24 10 40 00    	movl   $0x401024,(%ecx)
422684:	c3                   	ret
422685:	cc                   	int3
422686:	cc                   	int3
422687:	cc                   	int3
422688:	cc                   	int3
422689:	cc                   	int3
42268a:	cc                   	int3
42268b:	cc                   	int3
42268c:	cc                   	int3
42268d:	cc                   	int3
42268e:	cc                   	int3
42268f:	cc                   	int3
422690:	8b ff                	mov    %edi,%edi
422692:	55                   	push   %ebp
422693:	8b ec                	mov    %esp,%ebp
422695:	56                   	push   %esi
422696:	8b f1                	mov    %ecx,%esi
422698:	8d 46 04             	lea    0x4(%esi),%eax
42269b:	c7 06 0c 10 40 00    	movl   $0x40100c,(%esi)
4226a1:	83 20 00             	andl   $0x0,(%eax)
4226a4:	83 60 04 00          	andl   $0x0,0x4(%eax)
4226a8:	50                   	push   %eax
4226a9:	8b 45 08             	mov    0x8(%ebp),%eax
4226ac:	83 c0 04             	add    $0x4,%eax
4226af:	50                   	push   %eax
4226b0:	e8 eb 00 00 00       	call   0x4227a0
4226b5:	59                   	pop    %ecx
4226b6:	59                   	pop    %ecx
4226b7:	8b c6                	mov    %esi,%eax
4226b9:	5e                   	pop    %esi
4226ba:	5d                   	pop    %ebp
4226bb:	c2 04 00             	ret    $0x4
4226be:	cc                   	int3
4226bf:	cc                   	int3
4226c0:	8d 41 04             	lea    0x4(%ecx),%eax
4226c3:	c7 01 0c 10 40 00    	movl   $0x40100c,(%ecx)
4226c9:	50                   	push   %eax
4226ca:	e8 d7 00 00 00       	call   0x4227a6
4226cf:	59                   	pop    %ecx
4226d0:	c3                   	ret
4226d1:	cc                   	int3
4226d2:	cc                   	int3
4226d3:	cc                   	int3
4226d4:	cc                   	int3
4226d5:	cc                   	int3
4226d6:	cc                   	int3
4226d7:	cc                   	int3
4226d8:	cc                   	int3
4226d9:	cc                   	int3
4226da:	cc                   	int3
4226db:	cc                   	int3
4226dc:	cc                   	int3
4226dd:	cc                   	int3
4226de:	cc                   	int3
4226df:	cc                   	int3
4226e0:	8b ff                	mov    %edi,%edi
4226e2:	55                   	push   %ebp
4226e3:	8b ec                	mov    %esp,%ebp
4226e5:	56                   	push   %esi
4226e6:	8b f1                	mov    %ecx,%esi
4226e8:	8d 46 04             	lea    0x4(%esi),%eax
4226eb:	c7 06 0c 10 40 00    	movl   $0x40100c,(%esi)
4226f1:	50                   	push   %eax
4226f2:	e8 af 00 00 00       	call   0x4227a6
4226f7:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4226fb:	59                   	pop    %ecx
4226fc:	74 07                	je     0x422705
4226fe:	56                   	push   %esi
4226ff:	e8 d0 fe ff ff       	call   0x4225d4
422704:	59                   	pop    %ecx
422705:	8b c6                	mov    %esi,%eax
422707:	5e                   	pop    %esi
422708:	5d                   	pop    %ebp
422709:	c2 04 00             	ret    $0x4
42270c:	8b ff                	mov    %edi,%edi
42270e:	55                   	push   %ebp
42270f:	8b ec                	mov    %esp,%ebp
422711:	83 ec 0c             	sub    $0xc,%esp
422714:	8d 4d f4             	lea    -0xc(%ebp),%ecx
422717:	e8 11 ff ff ff       	call   0x42262d
42271c:	68 b8 2d 42 00       	push   $0x422db8
422721:	8d 45 f4             	lea    -0xc(%ebp),%eax
422724:	50                   	push   %eax
422725:	e8 24 01 00 00       	call   0x42284e
42272a:	cc                   	int3
42272b:	8b ff                	mov    %edi,%edi
42272d:	55                   	push   %ebp
42272e:	8b ec                	mov    %esp,%ebp
422730:	83 ec 0c             	sub    $0xc,%esp
422733:	8d 4d f4             	lea    -0xc(%ebp),%ecx
422736:	e8 32 ff ff ff       	call   0x42266d
42273b:	68 0c 2e 42 00       	push   $0x422e0c
422740:	8d 45 f4             	lea    -0xc(%ebp),%eax
422743:	50                   	push   %eax
422744:	e8 05 01 00 00       	call   0x42284e
422749:	cc                   	int3
42274a:	cc                   	int3
42274b:	cc                   	int3
42274c:	cc                   	int3
42274d:	cc                   	int3
42274e:	cc                   	int3
42274f:	cc                   	int3
422750:	8b 41 04             	mov    0x4(%ecx),%eax
422753:	85 c0                	test   %eax,%eax
422755:	75 05                	jne    0x42275c
422757:	b8 84 18 40 00       	mov    $0x401884,%eax
42275c:	c3                   	ret
42275d:	cc                   	int3
42275e:	cc                   	int3
42275f:	cc                   	int3
422760:	8b ff                	mov    %edi,%edi
422762:	55                   	push   %ebp
422763:	8b ec                	mov    %esp,%ebp
422765:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
422769:	56                   	push   %esi
42276a:	8b f1                	mov    %ecx,%esi
42276c:	c7 06 30 10 40 00    	movl   $0x401030,(%esi)
422772:	74 07                	je     0x42277b
422774:	56                   	push   %esi
422775:	e8 5a fe ff ff       	call   0x4225d4
42277a:	59                   	pop    %ecx
42277b:	8b c6                	mov    %esi,%eax
42277d:	5e                   	pop    %esi
42277e:	5d                   	pop    %ebp
42277f:	c2 04 00             	ret    $0x4
422782:	ff 25 44 64 42 00    	jmp    *0x426444
422788:	ff 25 38 64 42 00    	jmp    *0x426438
42278e:	ff 25 3c 64 42 00    	jmp    *0x42643c
422794:	ff 25 40 64 42 00    	jmp    *0x426440
42279a:	ff 25 18 64 42 00    	jmp    *0x426418
4227a0:	ff 25 20 64 42 00    	jmp    *0x426420
4227a6:	ff 25 1c 64 42 00    	jmp    *0x42641c
4227ac:	ff 25 a4 63 42 00    	jmp    *0x4263a4
4227b2:	ff 25 a8 63 42 00    	jmp    *0x4263a8
4227b8:	ff 25 ac 63 42 00    	jmp    *0x4263ac
4227be:	ff 25 b0 63 42 00    	jmp    *0x4263b0
4227c4:	ff 25 b4 63 42 00    	jmp    *0x4263b4
4227ca:	ff 25 b8 63 42 00    	jmp    *0x4263b8
4227d0:	ff 25 bc 63 42 00    	jmp    *0x4263bc
4227d6:	ff 25 c4 63 42 00    	jmp    *0x4263c4
4227dc:	ff 25 c8 63 42 00    	jmp    *0x4263c8
4227e2:	ff 25 cc 63 42 00    	jmp    *0x4263cc
4227e8:	ff 25 d0 63 42 00    	jmp    *0x4263d0
4227ee:	ff 25 d4 63 42 00    	jmp    *0x4263d4
4227f4:	cc                   	int3
4227f5:	cc                   	int3
4227f6:	cc                   	int3
4227f7:	cc                   	int3
4227f8:	cc                   	int3
4227f9:	cc                   	int3
4227fa:	cc                   	int3
4227fb:	cc                   	int3
4227fc:	cc                   	int3
4227fd:	cc                   	int3
4227fe:	cc                   	int3
4227ff:	cc                   	int3
422800:	ff 25 d8 63 42 00    	jmp    *0x4263d8
422806:	ff 25 dc 63 42 00    	jmp    *0x4263dc
42280c:	ff 25 e0 63 42 00    	jmp    *0x4263e0
422812:	ff 25 e4 63 42 00    	jmp    *0x4263e4
422818:	ff 25 24 64 42 00    	jmp    *0x426424