4013c8:	01 fa                	add    %edi,%edx
4013ca:	89 c7                	mov    %eax,%edi
4013cc:	c1 c2 0b             	rol    $0xb,%edx
4013cf:	01 c2                	add    %eax,%edx
4013d1:	31 df                	xor    %ebx,%edi
4013d3:	31 d7                	xor    %edx,%edi
4013d5:	8d 8c 29 60 4b bb f6 	lea    -0x944b4a0(%ecx,%ebp,1),%ecx
4013dc:	01 f9                	add    %edi,%ecx
4013de:	8b 6e 28             	mov    0x28(%esi),%ebp
4013e1:	c1 c1 10             	rol    $0x10,%ecx
4013e4:	89 d7                	mov    %edx,%edi
4013e6:	01 d1                	add    %edx,%ecx
4013e8:	31 c7                	xor    %eax,%edi
4013ea:	8d 9c 2b 70 bc bf be 	lea    -0x41404390(%ebx,%ebp,1),%ebx
4013f1:	31 cf                	xor    %ecx,%edi
4013f3:	8b 6e 34             	mov    0x34(%esi),%ebp
4013f6:	01 fb                	add    %edi,%ebx
4013f8:	89 cf                	mov    %ecx,%edi
4013fa:	c1 c3 17             	rol    $0x17,%ebx
4013fd:	01 cb                	add    %ecx,%ebx
4013ff:	31 d7                	xor    %edx,%edi
401401:	31 df                	xor    %ebx,%edi
401403:	8d 84 28 c6 7e 9b 28 	lea    0x289b7ec6(%eax,%ebp,1),%eax
40140a:	01 f8                	add    %edi,%eax
40140c:	8b 2e                	mov    (%esi),%ebp
40140e:	c1 c0 04             	rol    $0x4,%eax
401411:	89 df                	mov    %ebx,%edi
401413:	01 d8                	add    %ebx,%eax
401415:	31 cf                	xor    %ecx,%edi
401417:	8d 94 2a fa 27 a1 ea 	lea    -0x155ed806(%edx,%ebp,1),%edx
40141e:	31 c7                	xor    %eax,%edi
401420:	8b 6e 0c             	mov    0xc(%esi),%ebp
401423:	01 fa                	add    %edi,%edx
401425:	89 c7                	mov    %eax,%edi
401427:	c1 c2 0b             	rol    $0xb,%edx
40142a:	01 c2                	add    %eax,%edx
40142c:	31 df                	xor    %ebx,%edi
40142e:	31 d7                	xor    %edx,%edi
401430:	8d 8c 29 85 30 ef d4 	lea    -0x2b10cf7b(%ecx,%ebp,1),%ecx
401437:	01 f9                	add    %edi,%ecx
401439:	8b 6e 18             	mov    0x18(%esi),%ebp
40143c:	c1 c1 10             	rol    $0x10,%ecx
40143f:	89 d7                	mov    %edx,%edi
401441:	01 d1                	add    %edx,%ecx
401443:	31 c7                	xor    %eax,%edi
401445:	8d 9c 2b 05 1d 88 04 	lea    0x4881d05(%ebx,%ebp,1),%ebx
40144c:	31 cf                	xor    %ecx,%edi
40144e:	8b 6e 24             	mov    0x24(%esi),%ebp
401451:	01 fb                	add    %edi,%ebx
401453:	89 cf                	mov    %ecx,%edi
401455:	c1 c3 17             	rol    $0x17,%ebx
401458:	01 cb                	add    %ecx,%ebx
40145a:	31 d7                	xor    %edx,%edi
40145c:	31 df                	xor    %ebx,%edi
40145e:	8d 84 28 39 d0 d4 d9 	lea    -0x262b2fc7(%eax,%ebp,1),%eax
401465:	01 f8                	add    %edi,%eax
401467:	8b 6e 30             	mov    0x30(%esi),%ebp
40146a:	c1 c0 04             	rol    $0x4,%eax
40146d:	89 df                	mov    %ebx,%edi
40146f:	01 d8                	add    %ebx,%eax
401471:	31 cf                	xor    %ecx,%edi
401473:	8d 94 2a e5 99 db e6 	lea    -0x1924661b(%edx,%ebp,1),%edx
40147a:	31 c7                	xor    %eax,%edi
40147c:	8b 6e 3c             	mov    0x3c(%esi),%ebp
40147f:	01 fa                	add    %edi,%edx
401481:	89 c7                	mov    %eax,%edi
401483:	c1 c2 0b             	rol    $0xb,%edx
401486:	01 c2                	add    %eax,%edx
401488:	31 df                	xor    %ebx,%edi
40148a:	31 d7                	xor    %edx,%edi
40148c:	8d 8c 29 f8 7c a2 1f 	lea    0x1fa27cf8(%ecx,%ebp,1),%ecx
401493:	01 f9                	add    %edi,%ecx
401495:	8b 6e 08             	mov    0x8(%esi),%ebp
401498:	c1 c1 10             	rol    $0x10,%ecx
40149b:	89 d7                	mov    %edx,%edi
40149d:	01 d1                	add    %edx,%ecx
40149f:	31 c7                	xor    %eax,%edi
4014a1:	8d 9c 2b 65 56 ac c4 	lea    -0x3b53a99b(%ebx,%ebp,1),%ebx
4014a8:	31 cf                	xor    %ecx,%edi
4014aa:	8b 2e                	mov    (%esi),%ebp
4014ac:	01 fb                	add    %edi,%ebx
4014ae:	bf ff ff ff ff       	mov    $0xffffffff,%edi
4014b3:	c1 c3 17             	rol    $0x17,%ebx
4014b6:	01 cb                	add    %ecx,%ebx
4014b8:	31 d7                	xor    %edx,%edi
4014ba:	09 df                	or     %ebx,%edi
4014bc:	8d 84 28 44 22 29 f4 	lea    -0xbd6ddbc(%eax,%ebp,1),%eax
4014c3:	31 cf                	xor    %ecx,%edi
4014c5:	8b 6e 1c             	mov    0x1c(%esi),%ebp
4014c8:	01 f8                	add    %edi,%eax
4014ca:	bf ff ff ff ff       	mov    $0xffffffff,%edi
4014cf:	c1 c0 06             	rol    $0x6,%eax
4014d2:	31 cf                	xor    %ecx,%edi
4014d4:	01 d8                	add    %ebx,%eax
4014d6:	09 c7                	or     %eax,%edi
4014d8:	8d 94 2a 97 ff 2a 43 	lea    0x432aff97(%edx,%ebp,1),%edx
4014df:	31 df                	xor    %ebx,%edi
4014e1:	8b 6e 38             	mov    0x38(%esi),%ebp
4014e4:	01 fa                	add    %edi,%edx
4014e6:	bf ff ff ff ff       	mov    $0xffffffff,%edi
4014eb:	c1 c2 0a             	rol    $0xa,%edx
4014ee:	31 df                	xor    %ebx,%edi
4014f0:	01 c2                	add    %eax,%edx
4014f2:	09 d7                	or     %edx,%edi
4014f4:	8d 8c 29 a7 23 94 ab 	lea    -0x546bdc59(%ecx,%ebp,1),%ecx
4014fb:	31 c7                	xor    %eax,%edi
4014fd:	8b 6e 14             	mov    0x14(%esi),%ebp
401500:	01 f9                	add    %edi,%ecx
401502:	bf ff ff ff ff       	mov    $0xffffffff,%edi
401507:	c1 c1 0f             	rol    $0xf,%ecx
40150a:	31 c7                	xor    %eax,%edi
40150c:	01 d1                	add    %edx,%ecx
40150e:	09 cf                	or     %ecx,%edi
401510:	8d 9c 2b 39 a0 93 fc 	lea    -0x36c5fc7(%ebx,%ebp,1),%ebx
401517:	31 d7                	xor    %edx,%edi
401519:	8b 6e 30             	mov    0x30(%esi),%ebp
40151c:	01 fb                	add    %edi,%ebx
40151e:	bf ff ff ff ff       	mov    $0xffffffff,%edi
401523:	c1 c3 15             	rol    $0x15,%ebx
401526:	31 d7                	xor    %edx,%edi
401528:	01 cb                	add    %ecx,%ebx
40152a:	09 df                	or     %ebx,%edi
40152c:	8d 84 28 c3 59 5b 65 	lea    0x655b59c3(%eax,%ebp,1),%eax
401533:	31 cf                	xor    %ecx,%edi
401535:	8b 6e 0c             	mov    0xc(%esi),%ebp
401538:	01 f8                	add    %edi,%eax
40153a:	bf ff ff ff ff       	mov    $0xffffffff,%edi
40153f:	c1 c0 06             	rol    $0x6,%eax
401542:	31 cf                	xor    %ecx,%edi
401544:	01 d8                	add    %ebx,%eax
401546:	09 c7                	or     %eax,%edi
401548:	8d 94 2a 92 cc 0c 8f 	lea    -0x70f3336e(%edx,%ebp,1),%edx
40154f:	31 df                	xor    %ebx,%edi
401551:	8b 6e 28             	mov    0x28(%esi),%ebp
401554:	01 fa                	add    %edi,%edx
401556:	bf ff ff ff ff       	mov    $0xffffffff,%edi
40155b:	c1 c2 0a             	rol    $0xa,%edx
40155e:	31 df                	xor    %ebx,%edi
401560:	01 c2                	add    %eax,%edx
401562:	09 d7                	or     %edx,%edi
401564:	8d 8c 29 7d f4 ef ff 	lea    -0x100b83(%ecx,%ebp,1),%ecx
40156b:	31 c7                	xor    %eax,%edi
40156d:	8b 6e 04             	mov    0x4(%esi),%ebp
401570:	01 f9                	add    %edi,%ecx
401572:	bf ff ff ff ff       	mov    $0xffffffff,%edi
401577:	c1 c1 0f             	rol    $0xf,%ecx
40157a:	31 c7                	xor    %eax,%edi
40157c:	01 d1                	add    %edx,%ecx
40157e:	09 cf                	or     %ecx,%edi
401580:	8d 9c 2b d1 5d 84 85 	lea    -0x7a7ba22f(%ebx,%ebp,1),%ebx
401587:	31 d7                	xor    %edx,%edi
401589:	8b 6e 20             	mov    0x20(%esi),%ebp
40158c:	01 fb                	add    %edi,%ebx
40158e:	bf ff ff ff ff       	mov    $0xffffffff,%edi
401593:	c1 c3 15             	rol    $0x15,%ebx
401596:	31 d7                	xor    %edx,%edi
401598:	01 cb                	add    %ecx,%ebx
40159a:	09 df                	or     %ebx,%edi
40159c:	8d 84 28 4f 7e a8 6f 	lea    0x6fa87e4f(%eax,%ebp,1),%eax
4015a3:	31 cf                	xor    %ecx,%edi
4015a5:	8b 6e 3c             	mov    0x3c(%esi),%ebp
4015a8:	01 f8                	add    %edi,%eax
4015aa:	bf ff ff ff ff       	mov    $0xffffffff,%edi
4015af:	c1 c0 06             	rol    $0x6,%eax
4015b2:	31 cf                	xor    %ecx,%edi
4015b4:	01 d8                	add    %ebx,%eax
4015b6:	09 c7                	or     %eax,%edi
4015b8:	8d 94 2a e0 e6 2c fe 	lea    -0x1d31920(%edx,%ebp,1),%edx
4015bf:	31 df                	xor    %ebx,%edi
4015c1:	8b 6e 18             	mov    0x18(%esi),%ebp
4015c4:	01 fa                	add    %edi,%edx
4015c6:	bf ff ff ff ff       	mov    $0xffffffff,%edi
4015cb:	c1 c2 0a             	rol    $0xa,%edx
4015ce:	31 df                	xor    %ebx,%edi
4015d0:	01 c2                	add    %eax,%edx
4015d2:	09 d7                	or     %edx,%edi
4015d4:	8d 8c 29 14 43 01 a3 	lea    -0x5cfebcec(%ecx,%ebp,1),%ecx
4015db:	31 c7                	xor    %eax,%edi
4015dd:	8b 6e 34             	mov    0x34(%esi),%ebp
4015e0:	01 f9                	add    %edi,%ecx
4015e2:	bf ff ff ff ff       	mov    $0xffffffff,%edi
4015e7:	c1 c1 0f             	rol    $0xf,%ecx
4015ea:	31 c7                	xor    %eax,%edi
4015ec:	01 d1                	add    %edx,%ecx
4015ee:	09 cf                	or     %ecx,%edi
4015f0:	8d 9c 2b a1 11 08 4e 	lea    0x4e0811a1(%ebx,%ebp,1),%ebx
4015f7:	31 d7                	xor    %edx,%edi
4015f9:	8b 6e 10             	mov    0x10(%esi),%ebp
4015fc:	01 fb                	add    %edi,%ebx
4015fe:	bf ff ff ff ff       	mov    $0xffffffff,%edi
401603:	c1 c3 15             	rol    $0x15,%ebx
401606:	31 d7                	xor    %edx,%edi
401608:	01 cb                	add    %ecx,%ebx
40160a:	09 df                	or     %ebx,%edi
40160c:	8d 84 28 82 7e 53 f7 	lea    -0x8ac817e(%eax,%ebp,1),%eax
401613:	31 cf                	xor    %ecx,%edi
401615:	8b 6e 2c             	mov    0x2c(%esi),%ebp
401618:	01 f8                	add    %edi,%eax
40161a:	bf ff ff ff ff       	mov    $0xffffffff,%edi
40161f:	c1 c0 06             	rol    $0x6,%eax
401622:	31 cf                	xor    %ecx,%edi
401624:	01 d8                	add    %ebx,%eax
401626:	09 c7                	or     %eax,%edi
401628:	8d 94 2a 35 f2 3a bd 	lea    -0x42c50dcb(%edx,%ebp,1),%edx
40162f:	31 df                	xor    %ebx,%edi
401631:	8b 6e 08             	mov    0x8(%esi),%ebp
401634:	01 fa                	add    %edi,%edx
401636:	bf ff ff ff ff       	mov    $0xffffffff,%edi
40163b:	c1 c2 0a             	rol    $0xa,%edx
40163e:	31 df                	xor    %ebx,%edi
401640:	01 c2                	add    %eax,%edx
401642:	09 d7                	or     %edx,%edi
401644:	8d 8c 29 bb d2 d7 2a 	lea    0x2ad7d2bb(%ecx,%ebp,1),%ecx
40164b:	31 c7                	xor    %eax,%edi
40164d:	8b 6e 24             	mov    0x24(%esi),%ebp
401650:	01 f9                	add    %edi,%ecx
401652:	bf ff ff ff ff       	mov    $0xffffffff,%edi
401657:	c1 c1 0f             	rol    $0xf,%ecx
40165a:	31 c7                	xor    %eax,%edi
40165c:	01 d1                	add    %edx,%ecx
40165e:	09 cf                	or     %ecx,%edi
401660:	8d 9c 2b 91 d3 86 eb 	lea    -0x14792c6f(%ebx,%ebp,1),%ebx
401667:	31 d7                	xor    %edx,%edi
401669:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40166d:	01 fb                	add    %edi,%ebx
40166f:	83 c6 40             	add    $0x40,%esi
401672:	c1 c3 15             	rol    $0x15,%ebx
401675:	8b 7d 00             	mov    0x0(%ebp),%edi
401678:	01 cb                	add    %ecx,%ebx
40167a:	01 f8                	add    %edi,%eax
40167c:	8b 7d 04             	mov    0x4(%ebp),%edi
40167f:	01 fb                	add    %edi,%ebx
401681:	8b 7d 08             	mov    0x8(%ebp),%edi
401684:	01 f9                	add    %edi,%ecx
401686:	8b 7d 0c             	mov    0xc(%ebp),%edi
401689:	01 fa                	add    %edi,%edx
40168b:	89 45 00             	mov    %eax,0x0(%ebp)
40168e:	89 5d 04             	mov    %ebx,0x4(%ebp)
401691:	8b 3c 24             	mov    (%esp),%edi
401694:	89 4d 08             	mov    %ecx,0x8(%ebp)
401697:	89 55 0c             	mov    %edx,0xc(%ebp)
40169a:	39 f7                	cmp    %esi,%edi
40169c:	0f 83 82 f9 ff ff    	jae    0x401024
4016a2:	58                   	pop    %eax
4016a3:	5b                   	pop    %ebx
4016a4:	5d                   	pop    %ebp
4016a5:	5f                   	pop    %edi
4016a6:	5e                   	pop    %esi
4016a7:	c3                   	ret
4016a8:	cc                   	int3
4016a9:	cc                   	int3
4016aa:	cc                   	int3
4016ab:	cc                   	int3
4016ac:	cc                   	int3
4016ad:	cc                   	int3
4016ae:	cc                   	int3
4016af:	cc                   	int3
4016b0:	cc                   	int3
4016b1:	cc                   	int3
4016b2:	cc                   	int3
4016b3:	cc                   	int3
4016b4:	cc                   	int3
4016b5:	cc                   	int3
4016b6:	cc                   	int3
4016b7:	cc                   	int3
4016b8:	cc                   	int3
4016b9:	cc                   	int3
4016ba:	cc                   	int3
4016bb:	cc                   	int3
4016bc:	cc                   	int3
4016bd:	cc                   	int3
4016be:	cc                   	int3
4016bf:	cc                   	int3
4016c0:	55                   	push   %ebp
4016c1:	53                   	push   %ebx
4016c2:	56                   	push   %esi
4016c3:	57                   	push   %edi
4016c4:	31 d2                	xor    %edx,%edx
4016c6:	9c                   	pushf
4016c7:	58                   	pop    %eax
4016c8:	89 c1                	mov    %eax,%ecx
4016ca:	35 00 00 20 00       	xor    $0x200000,%eax
4016cf:	50                   	push   %eax
4016d0:	9d                   	popf
4016d1:	9c                   	pushf
4016d2:	58                   	pop    %eax
4016d3:	31 c1                	xor    %eax,%ecx
4016d5:	31 c0                	xor    %eax,%eax
4016d7:	8b 74 24 14          	mov    0x14(%esp),%esi
4016db:	89 46 08             	mov    %eax,0x8(%esi)
4016de:	0f ba e1 15          	bt     $0x15,%ecx
4016e2:	0f 83 aa 01 00 00    	jae    0x401892
4016e8:	0f a2                	cpuid
4016ea:	89 c7                	mov    %eax,%edi
4016ec:	31 c0                	xor    %eax,%eax
4016ee:	81 fb 47 65 6e 75    	cmp    $0x756e6547,%ebx
4016f4:	0f 95 c0             	setne  %al
4016f7:	89 c5                	mov    %eax,%ebp
4016f9:	81 fa 69 6e 65 49    	cmp    $0x49656e69,%edx
4016ff:	0f 95 c0             	setne  %al
401702:	09 c5                	or     %eax,%ebp
401704:	81 f9 6e 74 65 6c    	cmp    $0x6c65746e,%ecx
40170a:	0f 95 c0             	setne  %al
40170d:	09 c5                	or     %eax,%ebp
40170f:	0f 84 90 00 00 00    	je     0x4017a5
401715:	81 fb 41 75 74 68    	cmp    $0x68747541,%ebx
40171b:	0f 95 c0             	setne  %al
40171e:	89 c6                	mov    %eax,%esi
401720:	81 fa 65 6e 74 69    	cmp    $0x69746e65,%edx
401726:	0f 95 c0             	setne  %al
401729:	09 c6                	or     %eax,%esi
40172b:	81 f9 63 41 4d 44    	cmp    $0x444d4163,%ecx
401731:	0f 95 c0             	setne  %al
401734:	09 c6                	or     %eax,%esi
401736:	0f 85 69 00 00 00    	jne    0x4017a5
40173c:	b8 00 00 00 80       	mov    $0x80000000,%eax
401741:	0f a2                	cpuid
401743:	3d 01 00 00 80       	cmp    $0x80000001,%eax
401748:	0f 82 57 00 00 00    	jb     0x4017a5
40174e:	89 c6                	mov    %eax,%esi
401750:	b8 01 00 00 80       	mov    $0x80000001,%eax
401755:	0f a2                	cpuid
401757:	09 cd                	or     %ecx,%ebp
401759:	81 e5 01 08 00 00    	and    $0x801,%ebp
40175f:	81 fe 08 00 00 80    	cmp    $0x80000008,%esi
401765:	0f 82 3a 00 00 00    	jb     0x4017a5
40176b:	b8 08 00 00 80       	mov    $0x80000008,%eax
401770:	0f a2                	cpuid
401772:	0f b6 f1             	movzbl %cl,%esi
401775:	46                   	inc    %esi
401776:	b8 01 00 00 00       	mov    $0x1,%eax
40177b:	31 c9                	xor    %ecx,%ecx
40177d:	0f a2                	cpuid
40177f:	0f ba e2 1c          	bt     $0x1c,%edx
401783:	0f 83 a2 00 00 00    	jae    0x40182b
401789:	c1 eb 10             	shr    $0x10,%ebx
40178c:	81 e3 ff 00 00 00    	and    $0xff,%ebx
401792:	39 f3                	cmp    %esi,%ebx
401794:	0f 87 91 00 00 00    	ja     0x40182b
40179a:	81 e2 ff ff ff ef    	and    $0xefffffff,%edx
4017a0:	e9 86 00 00 00       	jmp    0x40182b
4017a5:	83 ff 04             	cmp    $0x4,%edi
4017a8:	be ff ff ff ff       	mov    $0xffffffff,%esi
4017ad:	0f 82 17 00 00 00    	jb     0x4017ca
4017b3:	b8 04 00 00 00       	mov    $0x4,%eax
4017b8:	b9 00 00 00 00       	mov    $0x0,%ecx
4017bd:	0f a2                	cpuid
4017bf:	89 c6                	mov    %eax,%esi
4017c1:	c1 ee 0e             	shr    $0xe,%esi
4017c4:	81 e6 ff 0f 00 00    	and    $0xfff,%esi