40a1fe:	cc                   	int3
40a1ff:	cc                   	int3
40a200:	56                   	push   %esi
40a201:	be f4 77 4b 00       	mov    $0x4b77f4,%esi
40a206:	8b c6                	mov    %esi,%eax
40a208:	3d f4 78 4b 00       	cmp    $0x4b78f4,%eax
40a20d:	73 1d                	jae    0x40a22c
40a20f:	57                   	push   %edi
40a210:	8b 3e                	mov    (%esi),%edi
40a212:	85 ff                	test   %edi,%edi
40a214:	74 0a                	je     0x40a220
40a216:	8b cf                	mov    %edi,%ecx
40a218:	ff 15 00 f0 4f 00    	call   *0x4ff000
40a21e:	ff d7                	call   *%edi
40a220:	83 c6 04             	add    $0x4,%esi
40a223:	81 fe f4 78 4b 00    	cmp    $0x4b78f4,%esi
40a229:	72 e5                	jb     0x40a210
40a22b:	5f                   	pop    %edi
40a22c:	5e                   	pop    %esi
40a22d:	c3                   	ret
40a22e:	cc                   	int3
40a22f:	cc                   	int3
40a230:	cc                   	int3
40a231:	cc                   	int3
40a232:	cc                   	int3
40a233:	cc                   	int3
40a234:	cc                   	int3
40a235:	cc                   	int3
40a236:	cc                   	int3
40a237:	cc                   	int3
40a238:	cc                   	int3
40a239:	cc                   	int3
40a23a:	cc                   	int3
40a23b:	cc                   	int3
40a23c:	cc                   	int3
40a23d:	cc                   	int3
40a23e:	cc                   	int3
40a23f:	cc                   	int3
40a240:	55                   	push   %ebp
40a241:	8b ec                	mov    %esp,%ebp
40a243:	51                   	push   %ecx
40a244:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a247:	8b e5                	mov    %ebp,%esp
40a249:	5d                   	pop    %ebp
40a24a:	c3                   	ret
40a24b:	cc                   	int3
40a24c:	cc                   	int3
40a24d:	cc                   	int3
40a24e:	cc                   	int3
40a24f:	cc                   	int3
40a250:	55                   	push   %ebp
40a251:	8b ec                	mov    %esp,%ebp
40a253:	51                   	push   %ecx
40a254:	8b 45 08             	mov    0x8(%ebp),%eax
40a257:	8b 08                	mov    (%eax),%ecx
40a259:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a25c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a25f:	8b e5                	mov    %ebp,%esp
40a261:	5d                   	pop    %ebp
40a262:	c3                   	ret
40a263:	cc                   	int3
40a264:	cc                   	int3
40a265:	cc                   	int3
40a266:	cc                   	int3
40a267:	cc                   	int3
40a268:	cc                   	int3
40a269:	cc                   	int3
40a26a:	cc                   	int3
40a26b:	cc                   	int3
40a26c:	cc                   	int3
40a26d:	cc                   	int3
40a26e:	cc                   	int3
40a26f:	cc                   	int3
40a270:	55                   	push   %ebp
40a271:	8b ec                	mov    %esp,%ebp
40a273:	8b 45 08             	mov    0x8(%ebp),%eax
40a276:	50                   	push   %eax
40a277:	e8 d7 6f ff ff       	call   0x401253
40a27c:	83 c4 04             	add    $0x4,%esp
40a27f:	5d                   	pop    %ebp
40a280:	c3                   	ret
40a281:	cc                   	int3
40a282:	cc                   	int3
40a283:	cc                   	int3
40a284:	cc                   	int3
40a285:	cc                   	int3
40a286:	cc                   	int3
40a287:	cc                   	int3
40a288:	cc                   	int3
40a289:	cc                   	int3
40a28a:	cc                   	int3
40a28b:	cc                   	int3
40a28c:	cc                   	int3
40a28d:	cc                   	int3
40a28e:	cc                   	int3
40a28f:	cc                   	int3
40a290:	55                   	push   %ebp
40a291:	8b ec                	mov    %esp,%ebp
40a293:	51                   	push   %ecx
40a294:	68 00 f0 4f 00       	push   $0x4ff000
40a299:	e8 c3 93 ff ff       	call   0x403661
40a29e:	83 c4 04             	add    $0x4,%esp
40a2a1:	3d 0c 27 40 00       	cmp    $0x40270c,%eax
40a2a6:	74 09                	je     0x40a2b1
40a2a8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40a2af:	eb 07                	jmp    0x40a2b8
40a2b1:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a2b8:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a2bb:	8b e5                	mov    %ebp,%esp
40a2bd:	5d                   	pop    %ebp
40a2be:	c3                   	ret
40a2bf:	cc                   	int3
40a2c0:	cc                   	int3
40a2c1:	cc                   	int3
40a2c2:	cc                   	int3
40a2c3:	cc                   	int3
40a2c4:	cc                   	int3
40a2c5:	cc                   	int3
40a2c6:	cc                   	int3
40a2c7:	cc                   	int3
40a2c8:	cc                   	int3
40a2c9:	cc                   	int3
40a2ca:	cc                   	int3
40a2cb:	cc                   	int3
40a2cc:	cc                   	int3
40a2cd:	cc                   	int3
40a2ce:	cc                   	int3
40a2cf:	cc                   	int3
40a2d0:	55                   	push   %ebp
40a2d1:	8b ec                	mov    %esp,%ebp
40a2d3:	83 ec 40             	sub    $0x40,%esp
40a2d6:	a1 9c 90 4f 00       	mov    0x4f909c,%eax
40a2db:	33 c5                	xor    %ebp,%eax
40a2dd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a2e0:	53                   	push   %ebx
40a2e1:	56                   	push   %esi
40a2e2:	c7 05 a0 a3 4f 00 00 	movl   $0x0,0x4fa3a0
40a2e9:	00 00 00
40a2ec:	a1 ac 90 4f 00       	mov    0x4f90ac,%eax
40a2f1:	83 c8 01             	or     $0x1,%eax
40a2f4:	a3 ac 90 4f 00       	mov    %eax,0x4f90ac
40a2f9:	6a 0a                	push   $0xa
40a2fb:	e8 20 4b 08 00       	call   0x48ee20
40a300:	85 c0                	test   %eax,%eax
40a302:	75 07                	jne    0x40a30b
40a304:	33 c0                	xor    %eax,%eax
40a306:	e9 88 02 00 00       	jmp    0x40a593
40a30b:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40a312:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40a319:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40a320:	c7 05 a0 a3 4f 00 01 	movl   $0x1,0x4fa3a0
40a327:	00 00 00
40a32a:	8b 0d ac 90 4f 00    	mov    0x4f90ac,%ecx
40a330:	83 c9 02             	or     $0x2,%ecx
40a333:	89 0d ac 90 4f 00    	mov    %ecx,0x4f90ac
40a339:	8d 75 e0             	lea    -0x20(%ebp),%esi
40a33c:	33 c0                	xor    %eax,%eax
40a33e:	33 c9                	xor    %ecx,%ecx
40a340:	0f a2                	cpuid
40a342:	89 06                	mov    %eax,(%esi)
40a344:	89 5e 04             	mov    %ebx,0x4(%esi)
40a347:	89 4e 08             	mov    %ecx,0x8(%esi)
40a34a:	89 56 0c             	mov    %edx,0xc(%esi)
40a34d:	ba 04 00 00 00       	mov    $0x4,%edx
40a352:	6b c2 00             	imul   $0x0,%edx,%eax
40a355:	8b 4c 05 e0          	mov    -0x20(%ebp,%eax,1),%ecx
40a359:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40a35c:	ba 04 00 00 00       	mov    $0x4,%edx
40a361:	c1 e2 00             	shl    $0x0,%edx
40a364:	8b 44 15 e0          	mov    -0x20(%ebp,%edx,1),%eax
40a368:	35 47 65 6e 75       	xor    $0x756e6547,%eax
40a36d:	b9 04 00 00 00       	mov    $0x4,%ecx
40a372:	6b d1 03             	imul   $0x3,%ecx,%edx
40a375:	8b 4c 15 e0          	mov    -0x20(%ebp,%edx,1),%ecx
40a379:	81 f1 69 6e 65 49    	xor    $0x49656e69,%ecx
40a37f:	0b c1                	or     %ecx,%eax
40a381:	ba 04 00 00 00       	mov    $0x4,%edx
40a386:	d1 e2                	shl    $1,%edx
40a388:	8b 4c 15 e0          	mov    -0x20(%ebp,%edx,1),%ecx
40a38c:	81 f1 6e 74 65 6c    	xor    $0x6c65746e,%ecx
40a392:	0b c1                	or     %ecx,%eax
40a394:	75 09                	jne    0x40a39f
40a396:	c7 45 d4 01 00 00 00 	movl   $0x1,-0x2c(%ebp)
40a39d:	eb 07                	jmp    0x40a3a6
40a39f:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
40a3a6:	8a 55 d4             	mov    -0x2c(%ebp),%dl
40a3a9:	88 55 df             	mov    %dl,-0x21(%ebp)
40a3ac:	8d 75 e0             	lea    -0x20(%ebp),%esi
40a3af:	b8 01 00 00 00       	mov    $0x1,%eax
40a3b4:	33 c9                	xor    %ecx,%ecx
40a3b6:	0f a2                	cpuid
40a3b8:	89 06                	mov    %eax,(%esi)
40a3ba:	89 5e 04             	mov    %ebx,0x4(%esi)
40a3bd:	89 4e 08             	mov    %ecx,0x8(%esi)
40a3c0:	89 56 0c             	mov    %edx,0xc(%esi)
40a3c3:	b8 04 00 00 00       	mov    $0x4,%eax
40a3c8:	6b c8 00             	imul   $0x0,%eax,%ecx
40a3cb:	8b 54 0d e0          	mov    -0x20(%ebp,%ecx,1),%edx
40a3cf:	89 55 d8             	mov    %edx,-0x28(%ebp)
40a3d2:	0f b6 45 df          	movzbl -0x21(%ebp),%eax
40a3d6:	85 c0                	test   %eax,%eax
40a3d8:	74 71                	je     0x40a44b
40a3da:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40a3dd:	81 e1 f0 3f ff 0f    	and    $0xfff3ff0,%ecx
40a3e3:	81 f9 c0 06 01 00    	cmp    $0x106c0,%ecx
40a3e9:	74 51                	je     0x40a43c
40a3eb:	8b 55 d8             	mov    -0x28(%ebp),%edx
40a3ee:	81 e2 f0 3f ff 0f    	and    $0xfff3ff0,%edx
40a3f4:	81 fa 60 06 02 00    	cmp    $0x20660,%edx
40a3fa:	74 40                	je     0x40a43c
40a3fc:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a3ff:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
40a404:	3d 70 06 02 00       	cmp    $0x20670,%eax
40a409:	74 31                	je     0x40a43c
40a40b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40a40e:	81 e1 f0 3f ff 0f    	and    $0xfff3ff0,%ecx
40a414:	81 f9 50 06 03 00    	cmp    $0x30650,%ecx
40a41a:	74 20                	je     0x40a43c
40a41c:	8b 55 d8             	mov    -0x28(%ebp),%edx
40a41f:	81 e2 f0 3f ff 0f    	and    $0xfff3ff0,%edx
40a425:	81 fa 60 06 03 00    	cmp    $0x30660,%edx
40a42b:	74 0f                	je     0x40a43c
40a42d:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a430:	25 f0 3f ff 0f       	and    $0xfff3ff0,%eax
40a435:	3d 70 06 03 00       	cmp    $0x30670,%eax
40a43a:	75 0f                	jne    0x40a44b
40a43c:	8b 0d a4 a3 4f 00    	mov    0x4fa3a4,%ecx
40a442:	83 c9 01             	or     $0x1,%ecx
40a445:	89 0d a4 a3 4f 00    	mov    %ecx,0x4fa3a4
40a44b:	ba 04 00 00 00       	mov    $0x4,%edx
40a450:	6b c2 03             	imul   $0x3,%edx,%eax
40a453:	b9 04 00 00 00       	mov    $0x4,%ecx
40a458:	6b d1 00             	imul   $0x0,%ecx,%edx
40a45b:	8b 44 05 e0          	mov    -0x20(%ebp,%eax,1),%eax
40a45f:	89 44 15 f0          	mov    %eax,-0x10(%ebp,%edx,1)
40a463:	b9 04 00 00 00       	mov    $0x4,%ecx
40a468:	d1 e1                	shl    $1,%ecx
40a46a:	ba 04 00 00 00       	mov    $0x4,%edx
40a46f:	c1 e2 00             	shl    $0x0,%edx
40a472:	8b 44 0d e0          	mov    -0x20(%ebp,%ecx,1),%eax
40a476:	89 44 15 f0          	mov    %eax,-0x10(%ebp,%edx,1)
40a47a:	83 7d d0 07          	cmpl   $0x7,-0x30(%ebp)
40a47e:	7c 4f                	jl     0x40a4cf
40a480:	8d 75 e0             	lea    -0x20(%ebp),%esi
40a483:	b8 07 00 00 00       	mov    $0x7,%eax
40a488:	33 c9                	xor    %ecx,%ecx
40a48a:	0f a2                	cpuid
40a48c:	89 06                	mov    %eax,(%esi)
40a48e:	89 5e 04             	mov    %ebx,0x4(%esi)
40a491:	89 4e 08             	mov    %ecx,0x8(%esi)
40a494:	89 56 0c             	mov    %edx,0xc(%esi)
40a497:	b9 04 00 00 00       	mov    $0x4,%ecx
40a49c:	c1 e1 00             	shl    $0x0,%ecx
40a49f:	ba 04 00 00 00       	mov    $0x4,%edx
40a4a4:	d1 e2                	shl    $1,%edx
40a4a6:	8b 44 0d e0          	mov    -0x20(%ebp,%ecx,1),%eax
40a4aa:	89 44 15 f0          	mov    %eax,-0x10(%ebp,%edx,1)
40a4ae:	b9 04 00 00 00       	mov    $0x4,%ecx
40a4b3:	c1 e1 00             	shl    $0x0,%ecx
40a4b6:	8b 54 0d e0          	mov    -0x20(%ebp,%ecx,1),%edx
40a4ba:	81 e2 00 02 00 00    	and    $0x200,%edx
40a4c0:	74 0d                	je     0x40a4cf
40a4c2:	a1 a4 a3 4f 00       	mov    0x4fa3a4,%eax
40a4c7:	83 c8 02             	or     $0x2,%eax
40a4ca:	a3 a4 a3 4f 00       	mov    %eax,0x4fa3a4
40a4cf:	b9 04 00 00 00       	mov    $0x4,%ecx
40a4d4:	c1 e1 00             	shl    $0x0,%ecx
40a4d7:	8b 54 0d f0          	mov    -0x10(%ebp,%ecx,1),%edx
40a4db:	81 e2 00 00 10 00    	and    $0x100000,%edx
40a4e1:	0f 84 aa 00 00 00    	je     0x40a591
40a4e7:	c7 05 a0 a3 4f 00 02 	movl   $0x2,0x4fa3a0
40a4ee:	00 00 00
40a4f1:	a1 ac 90 4f 00       	mov    0x4f90ac,%eax
40a4f6:	83 c8 04             	or     $0x4,%eax
40a4f9:	a3 ac 90 4f 00       	mov    %eax,0x4f90ac
40a4fe:	b9 04 00 00 00       	mov    $0x4,%ecx
40a503:	c1 e1 00             	shl    $0x0,%ecx
40a506:	8b 54 0d f0          	mov    -0x10(%ebp,%ecx,1),%edx
40a50a:	81 e2 00 00 00 08    	and    $0x8000000,%edx
40a510:	74 7f                	je     0x40a591
40a512:	b8 04 00 00 00       	mov    $0x4,%eax
40a517:	c1 e0 00             	shl    $0x0,%eax
40a51a:	8b 4c 05 f0          	mov    -0x10(%ebp,%eax,1),%ecx
40a51e:	81 e1 00 00 00 10    	and    $0x10000000,%ecx
40a524:	74 6b                	je     0x40a591
40a526:	33 c9                	xor    %ecx,%ecx
40a528:	0f 01 d0             	xgetbv
40a52b:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a52e:	89 55 cc             	mov    %edx,-0x34(%ebp)
40a531:	8b 55 c8             	mov    -0x38(%ebp),%edx
40a534:	8b 45 cc             	mov    -0x34(%ebp),%eax
40a537:	83 e2 06             	and    $0x6,%edx
40a53a:	83 e0 00             	and    $0x0,%eax
40a53d:	89 55 c0             	mov    %edx,-0x40(%ebp)
40a540:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40a543:	83 7d c0 06          	cmpl   $0x6,-0x40(%ebp)
40a547:	75 48                	jne    0x40a591
40a549:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
40a54d:	75 42                	jne    0x40a591
40a54f:	c7 05 a0 a3 4f 00 03 	movl   $0x3,0x4fa3a0
40a556:	00 00 00
40a559:	8b 0d ac 90 4f 00    	mov    0x4f90ac,%ecx
40a55f:	83 c9 08             	or     $0x8,%ecx
40a562:	89 0d ac 90 4f 00    	mov    %ecx,0x4f90ac
40a568:	ba 04 00 00 00       	mov    $0x4,%edx
40a56d:	d1 e2                	shl    $1,%edx
40a56f:	8b 44 15 f0          	mov    -0x10(%ebp,%edx,1),%eax
40a573:	83 e0 20             	and    $0x20,%eax
40a576:	74 19                	je     0x40a591
40a578:	c7 05 a0 a3 4f 00 05 	movl   $0x5,0x4fa3a0
40a57f:	00 00 00
40a582:	8b 0d ac 90 4f 00    	mov    0x4f90ac,%ecx
40a588:	83 c9 20             	or     $0x20,%ecx
40a58b:	89 0d ac 90 4f 00    	mov    %ecx,0x4f90ac
40a591:	33 c0                	xor    %eax,%eax
40a593:	5e                   	pop    %esi
40a594:	5b                   	pop    %ebx
40a595:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a598:	33 cd                	xor    %ebp,%ecx
40a59a:	e8 fb 84 ff ff       	call   0x402a9a
40a59f:	8b e5                	mov    %ebp,%esp
40a5a1:	5d                   	pop    %ebp
40a5a2:	c3                   	ret
40a5a3:	cc                   	int3
40a5a4:	cc                   	int3
40a5a5:	cc                   	int3
40a5a6:	cc                   	int3
40a5a7:	cc                   	int3
40a5a8:	cc                   	int3
40a5a9:	cc                   	int3
40a5aa:	cc                   	int3
40a5ab:	cc                   	int3
40a5ac:	cc                   	int3
40a5ad:	cc                   	int3
40a5ae:	cc                   	int3
40a5af:	cc                   	int3
40a5b0:	cc                   	int3
40a5b1:	cc                   	int3
40a5b2:	cc                   	int3
40a5b3:	cc                   	int3
40a5b4:	cc                   	int3
40a5b5:	cc                   	int3
40a5b6:	cc                   	int3
40a5b7:	cc                   	int3
40a5b8:	cc                   	int3
40a5b9:	cc                   	int3
40a5ba:	cc                   	int3
40a5bb:	cc                   	int3
40a5bc:	cc                   	int3
40a5bd:	cc                   	int3