4114a6:	55                   	push   %ebp
4114a7:	8b ec                	mov    %esp,%ebp
4114a9:	51                   	push   %ecx
4114aa:	8b 45 10             	mov    0x10(%ebp),%eax
4114ad:	56                   	push   %esi
4114ae:	57                   	push   %edi
4114af:	8b 7d 0c             	mov    0xc(%ebp),%edi
4114b2:	8b cf                	mov    %edi,%ecx
4114b4:	8b f7                	mov    %edi,%esi
4114b6:	8d 14 47             	lea    (%edi,%eax,2),%edx
4114b9:	3b fa                	cmp    %edx,%edi
4114bb:	73 5a                	jae    0x411517
4114bd:	53                   	push   %ebx
4114be:	0f b7 01             	movzwl (%ecx),%eax
4114c1:	83 f8 1a             	cmp    $0x1a,%eax
4114c4:	74 36                	je     0x4114fc
4114c6:	83 f8 0d             	cmp    $0xd,%eax
4114c9:	75 15                	jne    0x4114e0
4114cb:	8d 59 02             	lea    0x2(%ecx),%ebx
4114ce:	3b da                	cmp    %edx,%ebx
4114d0:	73 0e                	jae    0x4114e0
4114d2:	6a 0a                	push   $0xa
4114d4:	5f                   	pop    %edi
4114d5:	66 39 3b             	cmp    %di,(%ebx)
4114d8:	75 06                	jne    0x4114e0
4114da:	8b c7                	mov    %edi,%eax
4114dc:	6a 04                	push   $0x4
4114de:	eb 02                	jmp    0x4114e2
4114e0:	6a 02                	push   $0x2
4114e2:	8d 7e 02             	lea    0x2(%esi),%edi
4114e5:	66 89 06             	mov    %ax,(%esi)
4114e8:	5b                   	pop    %ebx
4114e9:	89 7d fc             	mov    %edi,-0x4(%ebp)
4114ec:	03 cb                	add    %ebx,%ecx
4114ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
4114f1:	8b f0                	mov    %eax,%esi
4114f3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4114f6:	3b ca                	cmp    %edx,%ecx
4114f8:	72 c4                	jb     0x4114be
4114fa:	eb 1a                	jmp    0x411516
4114fc:	8b 45 08             	mov    0x8(%ebp),%eax
4114ff:	8b c8                	mov    %eax,%ecx
411501:	83 e0 3f             	and    $0x3f,%eax
411504:	c1 f9 06             	sar    $0x6,%ecx
411507:	6b d0 38             	imul   $0x38,%eax,%edx
41150a:	8b 0c 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%ecx
411511:	80 4c 11 28 02       	orb    $0x2,0x28(%ecx,%edx,1)
411516:	5b                   	pop    %ebx
411517:	2b f7                	sub    %edi,%esi
411519:	83 e6 fe             	and    $0xfffffffe,%esi
41151c:	5f                   	pop    %edi
41151d:	8b c6                	mov    %esi,%eax
41151f:	5e                   	pop    %esi
411520:	c9                   	leave
411521:	c3                   	ret
411522:	6a 14                	push   $0x14
411524:	68 c8 02 42 00       	push   $0x4202c8
411529:	e8 72 29 ff ff       	call   0x403ea0
41152e:	8b 75 08             	mov    0x8(%ebp),%esi
411531:	83 fe fe             	cmp    $0xfffffffe,%esi
411534:	75 1b                	jne    0x411551
411536:	e8 e1 91 ff ff       	call   0x40a71c
41153b:	83 20 00             	andl   $0x0,(%eax)
41153e:	e8 ec 91 ff ff       	call   0x40a72f
411543:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
411549:	83 c8 ff             	or     $0xffffffff,%eax
41154c:	e9 cc 00 00 00       	jmp    0x41161d
411551:	85 f6                	test   %esi,%esi
411553:	78 0d                	js     0x411562
411555:	3b 35 a8 23 42 00    	cmp    0x4223a8,%esi
41155b:	73 05                	jae    0x411562
41155d:	33 c0                	xor    %eax,%eax
41155f:	40                   	inc    %eax
411560:	eb 02                	jmp    0x411564
411562:	33 c0                	xor    %eax,%eax
411564:	85 c0                	test   %eax,%eax
411566:	75 1a                	jne    0x411582
411568:	e8 af 91 ff ff       	call   0x40a71c
41156d:	83 20 00             	andl   $0x0,(%eax)
411570:	e8 ba 91 ff ff       	call   0x40a72f
411575:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41157b:	e8 49 5f ff ff       	call   0x4074c9
411580:	eb c7                	jmp    0x411549
411582:	8b ce                	mov    %esi,%ecx
411584:	c1 f9 06             	sar    $0x6,%ecx
411587:	89 4d e0             	mov    %ecx,-0x20(%ebp)
41158a:	8b c6                	mov    %esi,%eax
41158c:	83 e0 3f             	and    $0x3f,%eax
41158f:	6b d0 38             	imul   $0x38,%eax,%edx
411592:	89 55 dc             	mov    %edx,-0x24(%ebp)
411595:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
41159c:	f6 44 10 28 01       	testb  $0x1,0x28(%eax,%edx,1)
4115a1:	74 c5                	je     0x411568
4115a3:	81 7d 10 ff ff ff 7f 	cmpl   $0x7fffffff,0x10(%ebp)
4115aa:	76 15                	jbe    0x4115c1
4115ac:	e8 6b 91 ff ff       	call   0x40a71c
4115b1:	83 20 00             	andl   $0x0,(%eax)
4115b4:	e8 76 91 ff ff       	call   0x40a72f
4115b9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4115bf:	eb ba                	jmp    0x41157b
4115c1:	56                   	push   %esi
4115c2:	e8 b8 e0 ff ff       	call   0x40f67f
4115c7:	59                   	pop    %ecx
4115c8:	83 cb ff             	or     $0xffffffff,%ebx
4115cb:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4115ce:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4115d2:	8b 45 e0             	mov    -0x20(%ebp),%eax
4115d5:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
4115dc:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4115df:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
4115e4:	75 15                	jne    0x4115fb
4115e6:	e8 44 91 ff ff       	call   0x40a72f
4115eb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4115f1:	e8 26 91 ff ff       	call   0x40a71c
4115f6:	83 20 00             	andl   $0x0,(%eax)
4115f9:	eb 14                	jmp    0x41160f
4115fb:	ff 75 10             	push   0x10(%ebp)
4115fe:	ff 75 0c             	push   0xc(%ebp)
411601:	56                   	push   %esi
411602:	e8 34 00 00 00       	call   0x41163b
411607:	83 c4 0c             	add    $0xc,%esp
41160a:	8b d8                	mov    %eax,%ebx
41160c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41160f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
411616:	e8 18 00 00 00       	call   0x411633
41161b:	8b c3                	mov    %ebx,%eax
41161d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
411620:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
411627:	59                   	pop    %ecx
411628:	5f                   	pop    %edi
411629:	5e                   	pop    %esi
41162a:	5b                   	pop    %ebx
41162b:	c9                   	leave
41162c:	c3                   	ret
41162d:	8b 75 08             	mov    0x8(%ebp),%esi
411630:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
411633:	56                   	push   %esi
411634:	e8 fb e0 ff ff       	call   0x40f734
411639:	59                   	pop    %ecx
41163a:	c3                   	ret
41163b:	8b ff                	mov    %edi,%edi
41163d:	55                   	push   %ebp
41163e:	8b ec                	mov    %esp,%ebp
411640:	8b 55 08             	mov    0x8(%ebp),%edx
411643:	83 ec 24             	sub    $0x24,%esp
411646:	53                   	push   %ebx
411647:	57                   	push   %edi
411648:	83 fa fe             	cmp    $0xfffffffe,%edx
41164b:	75 18                	jne    0x411665
41164d:	e8 ca 90 ff ff       	call   0x40a71c
411652:	83 20 00             	andl   $0x0,(%eax)
411655:	e8 d5 90 ff ff       	call   0x40a72f
41165a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
411660:	e9 5a 03 00 00       	jmp    0x4119bf
411665:	85 d2                	test   %edx,%edx
411667:	0f 88 3a 03 00 00    	js     0x4119a7
41166d:	3b 15 a8 23 42 00    	cmp    0x4223a8,%edx
411673:	0f 83 2e 03 00 00    	jae    0x4119a7
411679:	8b c2                	mov    %edx,%eax
41167b:	8b ca                	mov    %edx,%ecx
41167d:	c1 e9 06             	shr    $0x6,%ecx
411680:	83 e0 3f             	and    $0x3f,%eax
411683:	6b f8 38             	imul   $0x38,%eax,%edi
411686:	33 db                	xor    %ebx,%ebx
411688:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41168b:	43                   	inc    %ebx
41168c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41168f:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
411696:	89 7d f0             	mov    %edi,-0x10(%ebp)
411699:	8a 4c 07 28          	mov    0x28(%edi,%eax,1),%cl
41169d:	88 4d ff             	mov    %cl,-0x1(%ebp)
4116a0:	84 cb                	test   %cl,%bl
4116a2:	0f 84 ff 02 00 00    	je     0x4119a7
4116a8:	8b 4d 10             	mov    0x10(%ebp),%ecx
4116ab:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
4116b1:	76 18                	jbe    0x4116cb
4116b3:	e8 64 90 ff ff       	call   0x40a71c
4116b8:	83 20 00             	andl   $0x0,(%eax)
4116bb:	e8 6f 90 ff ff       	call   0x40a72f
4116c0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4116c6:	e9 ef 02 00 00       	jmp    0x4119ba
4116cb:	85 c9                	test   %ecx,%ecx
4116cd:	0f 84 d0 02 00 00    	je     0x4119a3
4116d3:	f6 45 ff 02          	testb  $0x2,-0x1(%ebp)
4116d7:	0f 85 c6 02 00 00    	jne    0x4119a3
4116dd:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4116e1:	74 d0                	je     0x4116b3
4116e3:	56                   	push   %esi
4116e4:	8b 74 07 18          	mov    0x18(%edi,%eax,1),%esi
4116e8:	8a 44 07 29          	mov    0x29(%edi,%eax,1),%al
4116ec:	88 45 ff             	mov    %al,-0x1(%ebp)
4116ef:	89 75 ec             	mov    %esi,-0x14(%ebp)
4116f2:	33 f6                	xor    %esi,%esi
4116f4:	0f be c0             	movsbl %al,%eax
4116f7:	83 e8 01             	sub    $0x1,%eax
4116fa:	74 33                	je     0x41172f
4116fc:	83 e8 01             	sub    $0x1,%eax
4116ff:	75 24                	jne    0x411725
411701:	8b c1                	mov    %ecx,%eax
411703:	f7 d0                	not    %eax
411705:	84 c3                	test   %al,%bl
411707:	75 1c                	jne    0x411725
411709:	e8 0e 90 ff ff       	call   0x40a71c
41170e:	21 30                	and    %esi,(%eax)
411710:	e8 1a 90 ff ff       	call   0x40a72f
411715:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41171b:	e8 a9 5d ff ff       	call   0x4074c9
411720:	e9 b5 01 00 00       	jmp    0x4118da
411725:	8b d9                	mov    %ecx,%ebx
411727:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41172a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41172d:	eb 73                	jmp    0x4117a2
41172f:	8b c1                	mov    %ecx,%eax
411731:	f7 d0                	not    %eax
411733:	84 c3                	test   %al,%bl
411735:	74 d2                	je     0x411709
411737:	6a 04                	push   $0x4
411739:	d1 e9                	shr    $1,%ecx
41173b:	5b                   	pop    %ebx
41173c:	3b cb                	cmp    %ebx,%ecx
41173e:	72 02                	jb     0x411742
411740:	8b d9                	mov    %ecx,%ebx
411742:	53                   	push   %ebx
411743:	e8 8a b8 ff ff       	call   0x40cfd2
411748:	6a 00                	push   $0x0
41174a:	8b f0                	mov    %eax,%esi
41174c:	e8 4e 90 ff ff       	call   0x40a79f
411751:	6a 00                	push   $0x0
411753:	e8 47 90 ff ff       	call   0x40a79f
411758:	83 c4 0c             	add    $0xc,%esp
41175b:	89 75 f4             	mov    %esi,-0xc(%ebp)
41175e:	85 f6                	test   %esi,%esi
411760:	75 1b                	jne    0x41177d
411762:	e8 c8 8f ff ff       	call   0x40a72f
411767:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
41176d:	e8 aa 8f ff ff       	call   0x40a71c
411772:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
411778:	e9 5d 01 00 00       	jmp    0x4118da
41177d:	6a 01                	push   $0x1
41177f:	6a 00                	push   $0x0
411781:	6a 00                	push   $0x0
411783:	ff 75 08             	push   0x8(%ebp)
411786:	e8 b4 f6 ff ff       	call   0x410e3f
41178b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41178e:	83 c4 10             	add    $0x10,%esp
411791:	8b 0c 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%ecx
411798:	89 44 0f 20          	mov    %eax,0x20(%edi,%ecx,1)
41179c:	89 54 0f 24          	mov    %edx,0x24(%edi,%ecx,1)
4117a0:	8b ce                	mov    %esi,%ecx
4117a2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4117a5:	33 ff                	xor    %edi,%edi
4117a7:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4117aa:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
4117b1:	89 45 e8             	mov    %eax,-0x18(%ebp)
4117b4:	8b d0                	mov    %eax,%edx
4117b6:	8b 45 f0             	mov    -0x10(%ebp),%eax
4117b9:	f6 44 10 28 48       	testb  $0x48,0x28(%eax,%edx,1)
4117be:	8b 55 08             	mov    0x8(%ebp),%edx
4117c1:	0f 84 b6 00 00 00    	je     0x41187d
4117c7:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4117ca:	8a 44 08 2a          	mov    0x2a(%eax,%ecx,1),%al
4117ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4117d1:	3c 0a                	cmp    $0xa,%al
4117d3:	0f 84 a4 00 00 00    	je     0x41187d
4117d9:	85 db                	test   %ebx,%ebx
4117db:	0f 84 9c 00 00 00    	je     0x41187d
4117e1:	8b 55 f0             	mov    -0x10(%ebp),%edx
4117e4:	47                   	inc    %edi
4117e5:	88 01                	mov    %al,(%ecx)
4117e7:	41                   	inc    %ecx
4117e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4117eb:	4b                   	dec    %ebx
4117ec:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4117f0:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4117f3:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
4117fa:	c6 44 02 2a 0a       	movb   $0xa,0x2a(%edx,%eax,1)
4117ff:	8b 55 08             	mov    0x8(%ebp),%edx
411802:	74 79                	je     0x41187d
411804:	8b 45 f8             	mov    -0x8(%ebp),%eax
411807:	8b 55 f0             	mov    -0x10(%ebp),%edx
41180a:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411811:	8a 44 02 2b          	mov    0x2b(%edx,%eax,1),%al
411815:	8b 55 08             	mov    0x8(%ebp),%edx
411818:	3c 0a                	cmp    $0xa,%al
41181a:	74 61                	je     0x41187d
41181c:	85 db                	test   %ebx,%ebx
41181e:	74 5d                	je     0x41187d
411820:	8b 55 f0             	mov    -0x10(%ebp),%edx
411823:	88 01                	mov    %al,(%ecx)
411825:	41                   	inc    %ecx
411826:	8b 45 f8             	mov    -0x8(%ebp),%eax
411829:	4b                   	dec    %ebx
41182a:	80 7d ff 01          	cmpb   $0x1,-0x1(%ebp)
41182e:	6a 02                	push   $0x2
411830:	89 4d f4             	mov    %ecx,-0xc(%ebp)
411833:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
41183a:	5f                   	pop    %edi
41183b:	c6 44 02 2b 0a       	movb   $0xa,0x2b(%edx,%eax,1)
411840:	8b 55 08             	mov    0x8(%ebp),%edx
411843:	75 38                	jne    0x41187d
411845:	8b 45 f8             	mov    -0x8(%ebp),%eax
411848:	8b 55 f0             	mov    -0x10(%ebp),%edx
41184b:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411852:	8a 44 02 2c          	mov    0x2c(%edx,%eax,1),%al
411856:	8b 55 08             	mov    0x8(%ebp),%edx
411859:	3c 0a                	cmp    $0xa,%al
41185b:	74 20                	je     0x41187d
41185d:	85 db                	test   %ebx,%ebx
41185f:	74 1c                	je     0x41187d
411861:	88 01                	mov    %al,(%ecx)
411863:	41                   	inc    %ecx
411864:	8b 45 f8             	mov    -0x8(%ebp),%eax
411867:	4b                   	dec    %ebx
411868:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41186b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41186e:	6a 03                	push   $0x3
411870:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411877:	5f                   	pop    %edi
411878:	c6 44 01 2c 0a       	movb   $0xa,0x2c(%ecx,%eax,1)
41187d:	52                   	push   %edx
41187e:	e8 7e f3 ff ff       	call   0x410c01
411883:	59                   	pop    %ecx
411884:	85 c0                	test   %eax,%eax
411886:	74 6f                	je     0x4118f7
411888:	8b 45 f8             	mov    -0x8(%ebp),%eax
41188b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41188e:	8b 04 85 a8 21 42 00 	mov    0x4221a8(,%eax,4),%eax
411895:	80 7c 01 28 00       	cmpb   $0x0,0x28(%ecx,%eax,1)
41189a:	7d 5b                	jge    0x4118f7
41189c:	8d 45 dc             	lea    -0x24(%ebp),%eax
41189f:	50                   	push   %eax
4118a0:	ff 75 ec             	push   -0x14(%ebp)
4118a3:	ff 15 e8 90 41 00    	call   *0x4190e8
4118a9:	85 c0                	test   %eax,%eax
4118ab:	74 4a                	je     0x4118f7
4118ad:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
4118b1:	75 48                	jne    0x4118fb
4118b3:	6a 00                	push   $0x0
4118b5:	8d 45 e8             	lea    -0x18(%ebp),%eax
4118b8:	d1 eb                	shr    $1,%ebx
4118ba:	50                   	push   %eax
4118bb:	53                   	push   %ebx
4118bc:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4118bf:	53                   	push   %ebx
4118c0:	ff 75 ec             	push   -0x14(%ebp)
4118c3:	ff 15 38 91 41 00    	call   *0x419138
4118c9:	85 c0                	test   %eax,%eax
4118cb:	75 1f                	jne    0x4118ec
4118cd:	ff 15 28 90 41 00    	call   *0x419028
4118d3:	50                   	push   %eax