4876eb:	57                   	push   %edi
4876ec:	ff 15 9c e1 49 00    	call   *0x49e19c
4876f2:	85 c0                	test   %eax,%eax
4876f4:	74 1c                	je     0x487712
4876f6:	8b 85 f4 eb ff ff    	mov    -0x140c(%ebp),%eax
4876fc:	01 43 04             	add    %eax,0x4(%ebx)
4876ff:	3b c6                	cmp    %esi,%eax
487701:	72 17                	jb     0x48771a
487703:	8b 4d 10             	mov    0x10(%ebp),%ecx
487706:	8b 95 f0 eb ff ff    	mov    -0x1410(%ebp),%edx
48770c:	3b ca                	cmp    %edx,%ecx
48770e:	72 87                	jb     0x487697
487710:	eb 08                	jmp    0x48771a
487712:	ff 15 30 e1 49 00    	call   *0x49e130
487718:	89 03                	mov    %eax,(%ebx)
48771a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48771d:	8b c3                	mov    %ebx,%eax
48771f:	5f                   	pop    %edi
487720:	5e                   	pop    %esi
487721:	33 cd                	xor    %ebp,%ecx
487723:	5b                   	pop    %ebx
487724:	e8 a1 22 fe ff       	call   0x4699ca
487729:	c9                   	leave
48772a:	c3                   	ret
48772b:	8b ff                	mov    %edi,%edi
48772d:	55                   	push   %ebp
48772e:	8b ec                	mov    %esp,%ebp
487730:	b8 18 14 00 00       	mov    $0x1418,%eax
487735:	e8 66 30 fe ff       	call   0x46a7a0
48773a:	a1 14 40 4c 00       	mov    0x4c4014,%eax
48773f:	33 c5                	xor    %ebp,%eax
487741:	89 45 fc             	mov    %eax,-0x4(%ebp)
487744:	8b 4d 0c             	mov    0xc(%ebp),%ecx
487747:	8b c1                	mov    %ecx,%eax
487749:	8b 55 10             	mov    0x10(%ebp),%edx
48774c:	83 e1 3f             	and    $0x3f,%ecx
48774f:	c1 f8 06             	sar    $0x6,%eax
487752:	6b c9 38             	imul   $0x38,%ecx,%ecx
487755:	53                   	push   %ebx
487756:	56                   	push   %esi
487757:	8b 04 85 00 88 4c 00 	mov    0x4c8800(,%eax,4),%eax
48775e:	8b 75 08             	mov    0x8(%ebp),%esi
487761:	57                   	push   %edi
487762:	8b fe                	mov    %esi,%edi
487764:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
487768:	8b 4d 14             	mov    0x14(%ebp),%ecx
48776b:	89 85 f0 eb ff ff    	mov    %eax,-0x1410(%ebp)
487771:	03 ca                	add    %edx,%ecx
487773:	33 c0                	xor    %eax,%eax
487775:	89 8d f4 eb ff ff    	mov    %ecx,-0x140c(%ebp)
48777b:	ab                   	stos   %eax,%es:(%edi)
48777c:	ab                   	stos   %eax,%es:(%edi)
48777d:	ab                   	stos   %eax,%es:(%edi)
48777e:	8b fa                	mov    %edx,%edi
487780:	3b d1                	cmp    %ecx,%edx
487782:	0f 83 c4 00 00 00    	jae    0x48784c
487788:	8b b5 f4 eb ff ff    	mov    -0x140c(%ebp),%esi
48778e:	8d 85 50 f9 ff ff    	lea    -0x6b0(%ebp),%eax
487794:	3b fe                	cmp    %esi,%edi
487796:	73 21                	jae    0x4877b9
487798:	0f b7 0f             	movzwl (%edi),%ecx
48779b:	83 c7 02             	add    $0x2,%edi
48779e:	83 f9 0a             	cmp    $0xa,%ecx
4877a1:	75 09                	jne    0x4877ac
4877a3:	6a 0d                	push   $0xd
4877a5:	5a                   	pop    %edx
4877a6:	66 89 10             	mov    %dx,(%eax)
4877a9:	83 c0 02             	add    $0x2,%eax
4877ac:	66 89 08             	mov    %cx,(%eax)
4877af:	83 c0 02             	add    $0x2,%eax
4877b2:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4877b5:	3b c1                	cmp    %ecx,%eax
4877b7:	72 db                	jb     0x487794
4877b9:	6a 00                	push   $0x0
4877bb:	6a 00                	push   $0x0
4877bd:	68 55 0d 00 00       	push   $0xd55
4877c2:	8d 8d f8 eb ff ff    	lea    -0x1408(%ebp),%ecx
4877c8:	51                   	push   %ecx
4877c9:	8d 8d 50 f9 ff ff    	lea    -0x6b0(%ebp),%ecx
4877cf:	2b c1                	sub    %ecx,%eax
4877d1:	d1 f8                	sar    $1,%eax
4877d3:	50                   	push   %eax
4877d4:	8b c1                	mov    %ecx,%eax
4877d6:	50                   	push   %eax
4877d7:	6a 00                	push   $0x0
4877d9:	68 e9 fd 00 00       	push   $0xfde9
4877de:	e8 27 75 00 00       	call   0x48ed0a
4877e3:	8b 75 08             	mov    0x8(%ebp),%esi
4877e6:	83 c4 20             	add    $0x20,%esp
4877e9:	89 85 e8 eb ff ff    	mov    %eax,-0x1418(%ebp)
4877ef:	85 c0                	test   %eax,%eax
4877f1:	74 51                	je     0x487844
4877f3:	33 db                	xor    %ebx,%ebx
4877f5:	85 c0                	test   %eax,%eax
4877f7:	74 35                	je     0x48782e
4877f9:	6a 00                	push   $0x0
4877fb:	8d 8d ec eb ff ff    	lea    -0x1414(%ebp),%ecx
487801:	2b c3                	sub    %ebx,%eax
487803:	51                   	push   %ecx
487804:	50                   	push   %eax
487805:	8d 85 f8 eb ff ff    	lea    -0x1408(%ebp),%eax
48780b:	03 c3                	add    %ebx,%eax
48780d:	50                   	push   %eax
48780e:	ff b5 f0 eb ff ff    	push   -0x1410(%ebp)
487814:	ff 15 9c e1 49 00    	call   *0x49e19c
48781a:	85 c0                	test   %eax,%eax
48781c:	74 26                	je     0x487844
48781e:	03 9d ec eb ff ff    	add    -0x1414(%ebp),%ebx
487824:	8b 85 e8 eb ff ff    	mov    -0x1418(%ebp),%eax
48782a:	3b d8                	cmp    %eax,%ebx
48782c:	72 cb                	jb     0x4877f9
48782e:	8b c7                	mov    %edi,%eax
487830:	2b 45 10             	sub    0x10(%ebp),%eax
487833:	89 46 04             	mov    %eax,0x4(%esi)
487836:	3b bd f4 eb ff ff    	cmp    -0x140c(%ebp),%edi
48783c:	0f 82 46 ff ff ff    	jb     0x487788
487842:	eb 08                	jmp    0x48784c
487844:	ff 15 30 e1 49 00    	call   *0x49e130
48784a:	89 06                	mov    %eax,(%esi)
48784c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48784f:	8b c6                	mov    %esi,%eax
487851:	5f                   	pop    %edi
487852:	5e                   	pop    %esi
487853:	33 cd                	xor    %ebp,%ecx
487855:	5b                   	pop    %ebx
487856:	e8 6f 21 fe ff       	call   0x4699ca
48785b:	c9                   	leave
48785c:	c3                   	ret
48785d:	8b ff                	mov    %edi,%edi
48785f:	55                   	push   %ebp
487860:	8b ec                	mov    %esp,%ebp
487862:	83 ec 28             	sub    $0x28,%esp
487865:	8d 4d d8             	lea    -0x28(%ebp),%ecx
487868:	56                   	push   %esi
487869:	6a 00                	push   $0x0
48786b:	e8 70 fa fe ff       	call   0x4772e0
487870:	8d 45 d8             	lea    -0x28(%ebp),%eax
487873:	50                   	push   %eax
487874:	ff 75 10             	push   0x10(%ebp)
487877:	ff 75 0c             	push   0xc(%ebp)
48787a:	ff 75 08             	push   0x8(%ebp)
48787d:	e8 12 00 00 00       	call   0x487894
487882:	83 c4 10             	add    $0x10,%esp
487885:	8d 4d d8             	lea    -0x28(%ebp),%ecx
487888:	8b f0                	mov    %eax,%esi
48788a:	e8 b1 fa fe ff       	call   0x477340
48788f:	8b c6                	mov    %esi,%eax
487891:	5e                   	pop    %esi
487892:	c9                   	leave
487893:	c3                   	ret
487894:	6a 14                	push   $0x14
487896:	68 d0 19 4c 00       	push   $0x4c19d0
48789b:	e8 a0 2e fe ff       	call   0x46a740
4878a0:	8b 7d 08             	mov    0x8(%ebp),%edi
4878a3:	83 ff fe             	cmp    $0xfffffffe,%edi
4878a6:	75 1e                	jne    0x4878c6
4878a8:	8b 45 14             	mov    0x14(%ebp),%eax
4878ab:	c6 40 24 01          	movb   $0x1,0x24(%eax)
4878af:	83 60 20 00          	andl   $0x0,0x20(%eax)
4878b3:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4878b7:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
4878be:	83 c8 ff             	or     $0xffffffff,%eax
4878c1:	e9 c1 00 00 00       	jmp    0x487987
4878c6:	85 ff                	test   %edi,%edi
4878c8:	78 0f                	js     0x4878d9
4878ca:	3b 3d 00 8a 4c 00    	cmp    0x4c8a00,%edi
4878d0:	73 07                	jae    0x4878d9
4878d2:	33 c0                	xor    %eax,%eax
4878d4:	40                   	inc    %eax
4878d5:	33 f6                	xor    %esi,%esi
4878d7:	eb 04                	jmp    0x4878dd
4878d9:	33 f6                	xor    %esi,%esi
4878db:	8b c6                	mov    %esi,%eax
4878dd:	85 c0                	test   %eax,%eax
4878df:	75 25                	jne    0x487906
4878e1:	8b 45 14             	mov    0x14(%ebp),%eax
4878e4:	c6 40 24 01          	movb   $0x1,0x24(%eax)
4878e8:	89 70 20             	mov    %esi,0x20(%eax)
4878eb:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4878ef:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
4878f6:	50                   	push   %eax
4878f7:	56                   	push   %esi
4878f8:	56                   	push   %esi
4878f9:	56                   	push   %esi
4878fa:	56                   	push   %esi
4878fb:	56                   	push   %esi
4878fc:	e8 a3 1c ff ff       	call   0x4795a4
487901:	83 c4 18             	add    $0x18,%esp
487904:	eb b8                	jmp    0x4878be
487906:	8b cf                	mov    %edi,%ecx
487908:	c1 f9 06             	sar    $0x6,%ecx
48790b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
48790e:	8b c7                	mov    %edi,%eax
487910:	83 e0 3f             	and    $0x3f,%eax
487913:	6b d0 38             	imul   $0x38,%eax,%edx
487916:	89 55 dc             	mov    %edx,-0x24(%ebp)
487919:	8b 04 8d 00 88 4c 00 	mov    0x4c8800(,%ecx,4),%eax
487920:	f6 44 10 28 01       	testb  $0x1,0x28(%eax,%edx,1)
487925:	74 ba                	je     0x4878e1
487927:	57                   	push   %edi
487928:	e8 f8 86 00 00       	call   0x490025
48792d:	59                   	pop    %ecx
48792e:	83 cb ff             	or     $0xffffffff,%ebx
487931:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
487934:	89 75 fc             	mov    %esi,-0x4(%ebp)
487937:	8b 45 e0             	mov    -0x20(%ebp),%eax
48793a:	8b 04 85 00 88 4c 00 	mov    0x4c8800(,%eax,4),%eax
487941:	8b 4d dc             	mov    -0x24(%ebp),%ecx
487944:	f6 44 01 28 01       	testb  $0x1,0x28(%ecx,%eax,1)
487949:	75 17                	jne    0x487962
48794b:	8b 45 14             	mov    0x14(%ebp),%eax
48794e:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
487952:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
487959:	c6 40 24 01          	movb   $0x1,0x24(%eax)
48795d:	89 70 20             	mov    %esi,0x20(%eax)
487960:	eb 17                	jmp    0x487979
487962:	ff 75 14             	push   0x14(%ebp)
487965:	ff 75 10             	push   0x10(%ebp)
487968:	ff 75 0c             	push   0xc(%ebp)
48796b:	57                   	push   %edi
48796c:	e8 34 00 00 00       	call   0x4879a5
487971:	83 c4 10             	add    $0x10,%esp
487974:	8b d8                	mov    %eax,%ebx
487976:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
487979:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
487980:	e8 18 00 00 00       	call   0x48799d
487985:	8b c3                	mov    %ebx,%eax
487987:	8b 4d f0             	mov    -0x10(%ebp),%ecx
48798a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
487991:	59                   	pop    %ecx
487992:	5f                   	pop    %edi
487993:	5e                   	pop    %esi
487994:	5b                   	pop    %ebx
487995:	c9                   	leave
487996:	c3                   	ret
487997:	8b 7d 08             	mov    0x8(%ebp),%edi
48799a:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
48799d:	57                   	push   %edi
48799e:	e8 37 87 00 00       	call   0x4900da
4879a3:	59                   	pop    %ecx
4879a4:	c3                   	ret
4879a5:	8b ff                	mov    %edi,%edi
4879a7:	55                   	push   %ebp
4879a8:	8b ec                	mov    %esp,%ebp
4879aa:	83 ec 30             	sub    $0x30,%esp
4879ad:	8b 55 10             	mov    0x10(%ebp),%edx
4879b0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4879b3:	8b 45 0c             	mov    0xc(%ebp),%eax
4879b6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4879b9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4879bc:	89 55 f4             	mov    %edx,-0xc(%ebp)
4879bf:	53                   	push   %ebx
4879c0:	8b 5d 14             	mov    0x14(%ebp),%ebx
4879c3:	56                   	push   %esi
4879c4:	57                   	push   %edi
4879c5:	85 d2                	test   %edx,%edx
4879c7:	0f 84 ed 01 00 00    	je     0x487bba
4879cd:	85 c0                	test   %eax,%eax
4879cf:	75 2a                	jne    0x4879fb
4879d1:	33 c0                	xor    %eax,%eax
4879d3:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
4879d7:	53                   	push   %ebx
4879d8:	50                   	push   %eax
4879d9:	50                   	push   %eax
4879da:	50                   	push   %eax
4879db:	89 43 20             	mov    %eax,0x20(%ebx)
4879de:	50                   	push   %eax
4879df:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
4879e3:	50                   	push   %eax
4879e4:	c7 43 18 16 00 00 00 	movl   $0x16,0x18(%ebx)
4879eb:	e8 b4 1b ff ff       	call   0x4795a4
4879f0:	83 c4 18             	add    $0x18,%esp
4879f3:	83 c8 ff             	or     $0xffffffff,%eax
4879f6:	e9 c1 01 00 00       	jmp    0x487bbc
4879fb:	8b c1                	mov    %ecx,%eax
4879fd:	8b f1                	mov    %ecx,%esi
4879ff:	83 e0 3f             	and    $0x3f,%eax
487a02:	c1 fe 06             	sar    $0x6,%esi
487a05:	6b f8 38             	imul   $0x38,%eax,%edi
487a08:	89 75 ec             	mov    %esi,-0x14(%ebp)
487a0b:	8b 04 b5 00 88 4c 00 	mov    0x4c8800(,%esi,4),%eax
487a12:	89 7d e8             	mov    %edi,-0x18(%ebp)
487a15:	8a 44 07 29          	mov    0x29(%edi,%eax,1),%al
487a19:	88 45 ff             	mov    %al,-0x1(%ebp)
487a1c:	3c 02                	cmp    $0x2,%al
487a1e:	74 04                	je     0x487a24
487a20:	3c 01                	cmp    $0x1,%al
487a22:	75 08                	jne    0x487a2c
487a24:	8b c2                	mov    %edx,%eax
487a26:	f7 d0                	not    %eax
487a28:	a8 01                	test   $0x1,%al
487a2a:	74 a5                	je     0x4879d1
487a2c:	8b 55 ec             	mov    -0x14(%ebp),%edx
487a2f:	33 f6                	xor    %esi,%esi
487a31:	8b 04 95 00 88 4c 00 	mov    0x4c8800(,%edx,4),%eax
487a38:	f6 44 07 28 20       	testb  $0x20,0x28(%edi,%eax,1)
487a3d:	74 11                	je     0x487a50
487a3f:	53                   	push   %ebx
487a40:	6a 02                	push   $0x2
487a42:	56                   	push   %esi
487a43:	56                   	push   %esi
487a44:	51                   	push   %ecx
487a45:	e8 26 1d 00 00       	call   0x489770
487a4a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
487a4d:	83 c4 14             	add    $0x14,%esp
487a50:	53                   	push   %ebx
487a51:	8b fe                	mov    %esi,%edi
487a53:	51                   	push   %ecx
487a54:	89 7d dc             	mov    %edi,-0x24(%ebp)
487a57:	e8 8e fa ff ff       	call   0x4874ea
487a5c:	59                   	pop    %ecx
487a5d:	59                   	pop    %ecx
487a5e:	84 c0                	test   %al,%al
487a60:	74 47                	je     0x487aa9
487a62:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
487a66:	2b c6                	sub    %esi,%eax
487a68:	74 27                	je     0x487a91
487a6a:	83 e8 01             	sub    $0x1,%eax
487a6d:	74 09                	je     0x487a78
487a6f:	83 e8 01             	sub    $0x1,%eax
487a72:	0f 85 da 00 00 00    	jne    0x487b52
487a78:	ff 75 f4             	push   -0xc(%ebp)
487a7b:	8d 45 d0             	lea    -0x30(%ebp),%eax
487a7e:	ff 75 f8             	push   -0x8(%ebp)
487a81:	50                   	push   %eax
487a82:	e8 fb f9 ff ff       	call   0x487482
487a87:	83 c4 0c             	add    $0xc,%esp
487a8a:	8b f0                	mov    %eax,%esi
487a8c:	e9 af 00 00 00       	jmp    0x487b40
487a91:	53                   	push   %ebx
487a92:	ff 75 f4             	push   -0xc(%ebp)
487a95:	8d 45 d0             	lea    -0x30(%ebp),%eax
487a98:	ff 75 f8             	push   -0x8(%ebp)
487a9b:	ff 75 f0             	push   -0x10(%ebp)
487a9e:	50                   	push   %eax
487a9f:	e8 17 f6 ff ff       	call   0x4870bb
487aa4:	83 c4 14             	add    $0x14,%esp
487aa7:	eb e1                	jmp    0x487a8a
487aa9:	8b 55 ec             	mov    -0x14(%ebp),%edx
487aac:	8b 4d e8             	mov    -0x18(%ebp),%ecx
487aaf:	8b 04 95 00 88 4c 00 	mov    0x4c8800(,%edx,4),%eax
487ab6:	80 7c 08 28 00       	cmpb   $0x0,0x28(%eax,%ecx,1)
487abb:	7d 55                	jge    0x487b12
487abd:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
487ac1:	2b c6                	sub    %esi,%eax
487ac3:	74 39                	je     0x487afe
487ac5:	83 e8 01             	sub    $0x1,%eax
487ac8:	74 20                	je     0x487aea
487aca:	83 e8 01             	sub    $0x1,%eax
487acd:	0f 85 85 00 00 00    	jne    0x487b58