402641:	8b cb                	mov    %ebx,%ecx
402643:	e8 74 65 00 00       	call   0x408bbc
402648:	84 c0                	test   %al,%al
40264a:	74 04                	je     0x402650
40264c:	c6 45 f3 00          	movb   $0x0,-0xd(%ebp)
402650:	4e                   	dec    %esi
402651:	75 ee                	jne    0x402641
402653:	8b 4d a8             	mov    -0x58(%ebp),%ecx
402656:	8b 01                	mov    (%ecx),%eax
402658:	57                   	push   %edi
402659:	ff 75 b4             	push   -0x4c(%ebp)
40265c:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
402660:	ff 75 b0             	push   -0x50(%ebp)
402663:	ff 50 0c             	call   *0xc(%eax)
402666:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
40266a:	75 31                	jne    0x40269d
40266c:	6a 03                	push   $0x3
40266e:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
402673:	c6 83 44 a2 00 00 01 	movb   $0x1,0xa244(%ebx)
40267a:	e8 8b 3d 00 00       	call   0x40640a
40267f:	80 7d f2 00          	cmpb   $0x0,-0xe(%ebp)
402683:	74 18                	je     0x40269d
402685:	8d 43 1e             	lea    0x1e(%ebx),%eax
402688:	50                   	push   %eax
402689:	50                   	push   %eax
40268a:	6a 04                	push   $0x4
40268c:	e8 48 3e 00 00       	call   0x4064d9
402691:	c6 83 45 a2 00 00 01 	movb   $0x1,0xa245(%ebx)
402698:	e9 52 f6 ff ff       	jmp    0x401cef
40269d:	8b 83 2c a2 00 00    	mov    0xa22c(%ebx),%eax
4026a3:	3b 83 24 a2 00 00    	cmp    0xa224(%ebx),%eax
4026a9:	7f 18                	jg     0x4026c3
4026ab:	0f 8c ea f6 ff ff    	jl     0x401d9b
4026b1:	8b 83 28 a2 00 00    	mov    0xa228(%ebx),%eax
4026b7:	3b 83 20 a2 00 00    	cmp    0xa220(%ebx),%eax
4026bd:	0f 86 d8 f6 ff ff    	jbe    0x401d9b
4026c3:	8b 75 cc             	mov    -0x34(%ebp),%esi
4026c6:	39 7d b8             	cmp    %edi,-0x48(%ebp)
4026c9:	74 09                	je     0x4026d4
4026cb:	ff 75 b8             	push   -0x48(%ebp)
4026ce:	e8 0f 78 01 00       	call   0x419ee2
4026d3:	59                   	pop    %ecx
4026d4:	8b c6                	mov    %esi,%eax
4026d6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4026d9:	5f                   	pop    %edi
4026da:	5e                   	pop    %esi
4026db:	5b                   	pop    %ebx
4026dc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4026e3:	c9                   	leave
4026e4:	c3                   	ret
4026e5:	55                   	push   %ebp
4026e6:	8d 6c 24 94          	lea    -0x6c(%esp),%ebp
4026ea:	b8 c0 20 00 00       	mov    $0x20c0,%eax
4026ef:	e8 dc 7d 01 00       	call   0x41a4d0
4026f4:	57                   	push   %edi
4026f5:	8b 7d 74             	mov    0x74(%ebp),%edi
4026f8:	89 4d 68             	mov    %ecx,0x68(%ebp)
4026fb:	8b 4f 14             	mov    0x14(%edi),%ecx
4026fe:	8b c1                	mov    %ecx,%eax
402700:	2b 45 78             	sub    0x78(%ebp),%eax
402703:	3b 47 18             	cmp    0x18(%edi),%eax
402706:	0f 82 e0 04 00 00    	jb     0x402bec
40270c:	2b c8                	sub    %eax,%ecx
40270e:	89 47 18             	mov    %eax,0x18(%edi)
402711:	83 f9 02             	cmp    $0x2,%ecx
402714:	0f 82 d2 04 00 00    	jb     0x402bec
40271a:	56                   	push   %esi
40271b:	8b 75 7c             	mov    0x7c(%ebp),%esi
40271e:	53                   	push   %ebx
40271f:	8b cf                	mov    %edi,%ecx
402721:	e8 80 8d 00 00       	call   0x40b4a6
402726:	8b c8                	mov    %eax,%ecx
402728:	0b ca                	or     %edx,%ecx
40272a:	89 55 50             	mov    %edx,0x50(%ebp)
40272d:	0f 84 b7 04 00 00    	je     0x402bea
402733:	8b 4f 18             	mov    0x18(%edi),%ecx
402736:	8b 57 14             	mov    0x14(%edi),%edx
402739:	2b d1                	sub    %ecx,%edx
40273b:	0f 84 a9 04 00 00    	je     0x402bea
402741:	33 db                	xor    %ebx,%ebx
402743:	39 5d 50             	cmp    %ebx,0x50(%ebp)
402746:	0f 8f 9e 04 00 00    	jg     0x402bea
40274c:	7c 08                	jl     0x402756
40274e:	3b c2                	cmp    %edx,%eax
402750:	0f 87 94 04 00 00    	ja     0x402bea
402756:	03 c8                	add    %eax,%ecx
402758:	89 4d 5c             	mov    %ecx,0x5c(%ebp)
40275b:	8b cf                	mov    %edi,%ecx
40275d:	e8 44 8d 00 00       	call   0x40b4a6
402762:	8b 5f 14             	mov    0x14(%edi),%ebx
402765:	2b 5f 18             	sub    0x18(%edi),%ebx
402768:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
40276c:	89 45 60             	mov    %eax,0x60(%ebp)
40276f:	89 55 64             	mov    %edx,0x64(%ebp)
402772:	75 70                	jne    0x4027e4
402774:	83 f8 01             	cmp    $0x1,%eax
402777:	75 6b                	jne    0x4027e4
402779:	85 d2                	test   %edx,%edx
40277b:	75 67                	jne    0x4027e4
40277d:	8b cf                	mov    %edi,%ecx
40277f:	88 46 1e             	mov    %al,0x1e(%esi)
402782:	e8 1f 8d 00 00       	call   0x40b4a6
402787:	89 45 74             	mov    %eax,0x74(%ebp)
40278a:	a8 01                	test   $0x1,%al
40278c:	74 28                	je     0x4027b6
40278e:	8b cf                	mov    %edi,%ecx
402790:	e8 11 8d 00 00       	call   0x40b4a6
402795:	89 45 54             	mov    %eax,0x54(%ebp)
402798:	0b c2                	or     %edx,%eax
40279a:	74 1a                	je     0x4027b6
40279c:	8b 4d 68             	mov    0x68(%ebp),%ecx
40279f:	8b 81 20 a2 00 00    	mov    0xa220(%ecx),%eax
4027a5:	03 45 54             	add    0x54(%ebp),%eax
4027a8:	8b 89 24 a2 00 00    	mov    0xa224(%ecx),%ecx
4027ae:	13 ca                	adc    %edx,%ecx
4027b0:	89 46 20             	mov    %eax,0x20(%esi)
4027b3:	89 4e 24             	mov    %ecx,0x24(%esi)
4027b6:	f6 45 74 02          	testb  $0x2,0x74(%ebp)
4027ba:	74 28                	je     0x4027e4
4027bc:	8b cf                	mov    %edi,%ecx
4027be:	e8 e3 8c 00 00       	call   0x40b4a6
4027c3:	89 45 44             	mov    %eax,0x44(%ebp)
4027c6:	0b c2                	or     %edx,%eax
4027c8:	74 1a                	je     0x4027e4
4027ca:	8b 4d 68             	mov    0x68(%ebp),%ecx
4027cd:	8b 81 20 a2 00 00    	mov    0xa220(%ecx),%eax
4027d3:	03 45 44             	add    0x44(%ebp),%eax
4027d6:	8b 89 24 a2 00 00    	mov    0xa224(%ecx),%ecx
4027dc:	13 ca                	adc    %edx,%ecx
4027de:	89 46 30             	mov    %eax,0x30(%esi)
4027e1:	89 4e 34             	mov    %ecx,0x34(%esi)
4027e4:	8b 46 04             	mov    0x4(%esi),%eax
4027e7:	83 f8 02             	cmp    $0x2,%eax
4027ea:	74 09                	je     0x4027f5
4027ec:	83 f8 03             	cmp    $0x3,%eax
4027ef:	0f 85 e0 03 00 00    	jne    0x402bd5
4027f5:	83 7d 64 00          	cmpl   $0x0,0x64(%ebp)
4027f9:	0f 87 d6 03 00 00    	ja     0x402bd5
4027ff:	72 0a                	jb     0x40280b
402801:	83 7d 60 07          	cmpl   $0x7,0x60(%ebp)
402805:	0f 87 ca 03 00 00    	ja     0x402bd5
40280b:	8b 45 60             	mov    0x60(%ebp),%eax
40280e:	48                   	dec    %eax
40280f:	0f 84 c9 02 00 00    	je     0x402ade
402815:	48                   	dec    %eax
402816:	0f 84 94 02 00 00    	je     0x402ab0
40281c:	48                   	dec    %eax
40281d:	0f 84 c8 01 00 00    	je     0x4029eb
402823:	48                   	dec    %eax
402824:	0f 84 61 01 00 00    	je     0x40298b
40282a:	48                   	dec    %eax
40282b:	0f 84 f2 00 00 00    	je     0x402923
402831:	48                   	dec    %eax
402832:	74 1f                	je     0x402853
402834:	48                   	dec    %eax
402835:	0f 85 9a 03 00 00    	jne    0x402bd5
40283b:	8d 8e 20 10 00 00    	lea    0x1020(%esi),%ecx
402841:	53                   	push   %ebx
402842:	e8 88 f3 ff ff       	call   0x401bcf
402847:	53                   	push   %ebx
402848:	ff b6 20 10 00 00    	push   0x1020(%esi)
40284e:	e9 7f 02 00 00       	jmp    0x402ad2
402853:	8b cf                	mov    %edi,%ecx
402855:	e8 4c 8c 00 00       	call   0x40b4a6
40285a:	8b c8                	mov    %eax,%ecx
40285c:	c1 e9 02             	shr    $0x2,%ecx
40285f:	80 e1 01             	and    $0x1,%cl
402862:	88 8e f6 20 00 00    	mov    %cl,0x20f6(%esi)
402868:	8b c8                	mov    %eax,%ecx
40286a:	c1 e9 03             	shr    $0x3,%ecx
40286d:	80 e1 01             	and    $0x1,%cl
402870:	8d 9e f8 20 00 00    	lea    0x20f8(%esi),%ebx
402876:	89 45 78             	mov    %eax,0x78(%ebp)
402879:	88 8e f7 20 00 00    	mov    %cl,0x20f7(%esi)
40287f:	c6 86 f8 21 00 00 00 	movb   $0x0,0x21f8(%esi)
402886:	c6 03 00             	movb   $0x0,(%ebx)
402889:	a8 01                	test   $0x1,%al
40288b:	74 29                	je     0x4028b6
40288d:	8b cf                	mov    %edi,%ecx
40288f:	e8 12 8c 00 00       	call   0x40b4a6
402894:	89 45 74             	mov    %eax,0x74(%ebp)
402897:	b8 ff 00 00 00       	mov    $0xff,%eax
40289c:	39 45 74             	cmp    %eax,0x74(%ebp)
40289f:	72 03                	jb     0x4028a4
4028a1:	89 45 74             	mov    %eax,0x74(%ebp)
4028a4:	ff 75 74             	push   0x74(%ebp)
4028a7:	8b cf                	mov    %edi,%ecx
4028a9:	53                   	push   %ebx
4028aa:	e8 80 8c 00 00       	call   0x40b52f
4028af:	8b 45 74             	mov    0x74(%ebp),%eax
4028b2:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
4028b6:	f6 45 78 02          	testb  $0x2,0x78(%ebp)
4028ba:	74 2f                	je     0x4028eb
4028bc:	8b cf                	mov    %edi,%ecx
4028be:	e8 e3 8b 00 00       	call   0x40b4a6
4028c3:	89 45 74             	mov    %eax,0x74(%ebp)
4028c6:	b8 ff 00 00 00       	mov    $0xff,%eax
4028cb:	39 45 74             	cmp    %eax,0x74(%ebp)
4028ce:	72 03                	jb     0x4028d3
4028d0:	89 45 74             	mov    %eax,0x74(%ebp)
4028d3:	ff 75 74             	push   0x74(%ebp)
4028d6:	8d 9e f8 21 00 00    	lea    0x21f8(%esi),%ebx
4028dc:	53                   	push   %ebx
4028dd:	8b cf                	mov    %edi,%ecx
4028df:	e8 4b 8c 00 00       	call   0x40b52f
4028e4:	8b 45 74             	mov    0x74(%ebp),%eax
4028e7:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
4028eb:	80 be f6 20 00 00 00 	cmpb   $0x0,0x20f6(%esi)
4028f2:	74 0d                	je     0x402901
4028f4:	8b cf                	mov    %edi,%ecx
4028f6:	e8 ab 8b 00 00       	call   0x40b4a6
4028fb:	89 86 f8 22 00 00    	mov    %eax,0x22f8(%esi)
402901:	80 be f7 20 00 00 00 	cmpb   $0x0,0x20f7(%esi)
402908:	74 0d                	je     0x402917
40290a:	8b cf                	mov    %edi,%ecx
40290c:	e8 95 8b 00 00       	call   0x40b4a6
402911:	89 86 fc 22 00 00    	mov    %eax,0x22fc(%esi)
402917:	c6 86 f5 20 00 00 01 	movb   $0x1,0x20f5(%esi)
40291e:	e9 b2 02 00 00       	jmp    0x402bd5
402923:	8b cf                	mov    %edi,%ecx
402925:	e8 7c 8b 00 00       	call   0x40b4a6
40292a:	8b cf                	mov    %edi,%ecx
40292c:	89 86 f0 10 00 00    	mov    %eax,0x10f0(%esi)
402932:	e8 6f 8b 00 00       	call   0x40b4a6
402937:	24 01                	and    $0x1,%al
402939:	8b cf                	mov    %edi,%ecx
40293b:	88 86 f4 20 00 00    	mov    %al,0x20f4(%esi)
402941:	e8 60 8b 00 00       	call   0x40b4a6
402946:	8b d8                	mov    %eax,%ebx
402948:	c6 85 ac df ff ff 00 	movb   $0x0,-0x2054(%ebp)
40294f:	81 fb ff 1f 00 00    	cmp    $0x1fff,%ebx
402955:	73 17                	jae    0x40296e
402957:	53                   	push   %ebx
402958:	8d 85 ac df ff ff    	lea    -0x2054(%ebp),%eax
40295e:	50                   	push   %eax
40295f:	8b cf                	mov    %edi,%ecx
402961:	e8 c9 8b 00 00       	call   0x40b52f
402966:	c6 84 1d ac df ff ff 	movb   $0x0,-0x2054(%ebp,%ebx,1)
40296d:	00
40296e:	68 00 08 00 00       	push   $0x800
402973:	8d 86 f4 10 00 00    	lea    0x10f4(%esi),%eax
402979:	50                   	push   %eax
40297a:	8d 85 ac df ff ff    	lea    -0x2054(%ebp),%eax
402980:	50                   	push   %eax
402981:	e8 83 ef 00 00       	call   0x411909
402986:	e9 4a 02 00 00       	jmp    0x402bd5
40298b:	33 c0                	xor    %eax,%eax
40298d:	0f 8c 42 02 00 00    	jl     0x402bd5
402993:	7f 09                	jg     0x40299e
402995:	83 fb 01             	cmp    $0x1,%ebx
402998:	0f 82 37 02 00 00    	jb     0x402bd5
40299e:	8b cf                	mov    %edi,%ecx
4029a0:	e8 01 8b 00 00       	call   0x40b4a6
4029a5:	8b cf                	mov    %edi,%ecx
4029a7:	e8 fa 8a 00 00       	call   0x40b4a6
4029ac:	85 c0                	test   %eax,%eax
4029ae:	0f 84 21 02 00 00    	je     0x402bd5
4029b4:	50                   	push   %eax
4029b5:	68 6c a4 42 00       	push   $0x42a46c
4029ba:	8d 45 1c             	lea    0x1c(%ebp),%eax
4029bd:	6a 14                	push   $0x14
4029bf:	50                   	push   %eax
4029c0:	c6 86 e3 10 00 00 01 	movb   $0x1,0x10e3(%esi)
4029c7:	e8 16 ac 00 00       	call   0x40d5e2
4029cc:	83 c4 10             	add    $0x10,%esp
4029cf:	68 00 08 00 00       	push   $0x800
4029d4:	8d 45 1c             	lea    0x1c(%ebp),%eax
4029d7:	50                   	push   %eax
4029d8:	8b 45 68             	mov    0x68(%ebp),%eax
4029db:	05 e8 57 00 00       	add    $0x57e8,%eax
4029e0:	50                   	push   %eax
4029e1:	e8 66 df 00 00       	call   0x41094c
4029e6:	e9 ea 01 00 00       	jmp    0x402bd5
4029eb:	33 c0                	xor    %eax,%eax
4029ed:	0f 8c e2 01 00 00    	jl     0x402bd5
4029f3:	7f 09                	jg     0x4029fe
4029f5:	83 fb 09             	cmp    $0x9,%ebx
4029f8:	0f 82 d7 01 00 00    	jb     0x402bd5
4029fe:	8b cf                	mov    %edi,%ecx
402a00:	e8 a1 8a 00 00       	call   0x40b4a6
402a05:	8a d8                	mov    %al,%bl
402a07:	80 e3 01             	and    $0x1,%bl
402a0a:	88 45 77             	mov    %al,0x77(%ebp)
402a0d:	a8 02                	test   $0x2,%al
402a0f:	74 2d                	je     0x402a3e
402a11:	8b cf                	mov    %edi,%ecx
402a13:	84 db                	test   %bl,%bl
402a15:	74 15                	je     0x402a2c
402a17:	e8 2c 8a 00 00       	call   0x40b448
402a1c:	6a 00                	push   $0x0
402a1e:	50                   	push   %eax
402a1f:	8d 8e 30 10 00 00    	lea    0x1030(%esi),%ecx
402a25:	e8 61 e6 00 00       	call   0x41108b
402a2a:	eb 12                	jmp    0x402a3e
402a2c:	e8 54 8a 00 00       	call   0x40b485
402a31:	52                   	push   %edx
402a32:	50                   	push   %eax
402a33:	8d 8e 30 10 00 00    	lea    0x1030(%esi),%ecx
402a39:	e8 79 e6 00 00       	call   0x4110b7
402a3e:	f6 45 77 04          	testb  $0x4,0x77(%ebp)
402a42:	74 2d                	je     0x402a71
402a44:	8b cf                	mov    %edi,%ecx
402a46:	84 db                	test   %bl,%bl
402a48:	74 15                	je     0x402a5f
402a4a:	e8 f9 89 00 00       	call   0x40b448
402a4f:	6a 00                	push   $0x0
402a51:	50                   	push   %eax
402a52:	8d 8e 38 10 00 00    	lea    0x1038(%esi),%ecx
402a58:	e8 2e e6 00 00       	call   0x41108b
402a5d:	eb 12                	jmp    0x402a71
402a5f:	e8 21 8a 00 00       	call   0x40b485
402a64:	52                   	push   %edx
402a65:	50                   	push   %eax
402a66:	8d 8e 38 10 00 00    	lea    0x1038(%esi),%ecx
402a6c:	e8 46 e6 00 00       	call   0x4110b7
402a71:	f6 45 77 08          	testb  $0x8,0x77(%ebp)
402a75:	0f 84 5a 01 00 00    	je     0x402bd5
402a7b:	8b cf                	mov    %edi,%ecx
402a7d:	84 db                	test   %bl,%bl
402a7f:	74 18                	je     0x402a99
402a81:	e8 c2 89 00 00       	call   0x40b448
402a86:	6a 00                	push   $0x0
402a88:	50                   	push   %eax
402a89:	8d 8e 40 10 00 00    	lea    0x1040(%esi),%ecx
402a8f:	e8 f7 e5 00 00       	call   0x41108b
402a94:	e9 3c 01 00 00       	jmp    0x402bd5
402a99:	e8 e7 89 00 00       	call   0x40b485
402a9e:	52                   	push   %edx
402a9f:	50                   	push   %eax
402aa0:	8d 8e 40 10 00 00    	lea    0x1040(%esi),%ecx
402aa6:	e8 0c e6 00 00       	call   0x4110b7
402aab:	e9 25 01 00 00       	jmp    0x402bd5
402ab0:	8b cf                	mov    %edi,%ecx
402ab2:	e8 ef 89 00 00       	call   0x40b4a6
402ab7:	85 c0                	test   %eax,%eax
402ab9:	0f 85 16 01 00 00    	jne    0x402bd5
402abf:	6a 20                	push   $0x20
402ac1:	8d 86 64 10 00 00    	lea    0x1064(%esi),%eax
402ac7:	c7 86 60 10 00 00 03 	movl   $0x3,0x1060(%esi)
402ace:	00 00 00
402ad1:	50                   	push   %eax
402ad2:	8b cf                	mov    %edi,%ecx
402ad4:	e8 56 8a 00 00       	call   0x40b52f
402ad9:	e9 f7 00 00 00       	jmp    0x402bd5
402ade:	8b cf                	mov    %edi,%ecx
402ae0:	e8 c1 89 00 00       	call   0x40b4a6
402ae5:	85 c0                	test   %eax,%eax
402ae7:	76 11                	jbe    0x402afa
402ae9:	8b 4d 68             	mov    0x68(%ebp),%ecx
402aec:	8d 46 20             	lea    0x20(%esi),%eax