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
487ad3:	ff 75 f4             	push   -0xc(%ebp)
487ad6:	8d 45 d0             	lea    -0x30(%ebp),%eax
487ad9:	ff 75 f8             	push   -0x8(%ebp)
487adc:	ff 75 f0             	push   -0x10(%ebp)
487adf:	50                   	push   %eax
487ae0:	e8 5d fb ff ff       	call   0x487642
487ae5:	83 c4 10             	add    $0x10,%esp
487ae8:	eb a0                	jmp    0x487a8a
487aea:	ff 75 f4             	push   -0xc(%ebp)
487aed:	8d 45 d0             	lea    -0x30(%ebp),%eax
487af0:	ff 75 f8             	push   -0x8(%ebp)
487af3:	ff 75 f0             	push   -0x10(%ebp)
487af6:	50                   	push   %eax
487af7:	e8 2f fc ff ff       	call   0x48772b
487afc:	eb e7                	jmp    0x487ae5
487afe:	ff 75 f4             	push   -0xc(%ebp)
487b01:	8d 45 d0             	lea    -0x30(%ebp),%eax
487b04:	ff 75 f8             	push   -0x8(%ebp)
487b07:	ff 75 f0             	push   -0x10(%ebp)
487b0a:	50                   	push   %eax
487b0b:	e8 57 fa ff ff       	call   0x487567
487b10:	eb d3                	jmp    0x487ae5
487b12:	8b 4c 08 18          	mov    0x18(%eax,%ecx,1),%ecx
487b16:	8d 7d d0             	lea    -0x30(%ebp),%edi
487b19:	33 c0                	xor    %eax,%eax
487b1b:	ab                   	stos   %eax,%es:(%edi)
487b1c:	56                   	push   %esi
487b1d:	ab                   	stos   %eax,%es:(%edi)
487b1e:	ab                   	stos   %eax,%es:(%edi)
487b1f:	8d 45 d4             	lea    -0x2c(%ebp),%eax
487b22:	50                   	push   %eax
487b23:	ff 75 f4             	push   -0xc(%ebp)
487b26:	ff 75 f8             	push   -0x8(%ebp)
487b29:	51                   	push   %ecx
487b2a:	ff 15 9c e1 49 00    	call   *0x49e19c
487b30:	85 c0                	test   %eax,%eax
487b32:	75 09                	jne    0x487b3d
487b34:	ff 15 30 e1 49 00    	call   *0x49e130
487b3a:	89 45 d0             	mov    %eax,-0x30(%ebp)
487b3d:	8d 75 d0             	lea    -0x30(%ebp),%esi
487b40:	8d 7d dc             	lea    -0x24(%ebp),%edi
487b43:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487b44:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487b45:	a5                   	movsl  %ds:(%esi),%es:(%edi)
487b46:	8b 45 e0             	mov    -0x20(%ebp),%eax
487b49:	85 c0                	test   %eax,%eax
487b4b:	75 68                	jne    0x487bb5
487b4d:	8b 7d dc             	mov    -0x24(%ebp),%edi
487b50:	33 f6                	xor    %esi,%esi
487b52:	8b 55 ec             	mov    -0x14(%ebp),%edx
487b55:	8b 4d e8             	mov    -0x18(%ebp),%ecx
487b58:	85 ff                	test   %edi,%edi
487b5a:	74 2c                	je     0x487b88
487b5c:	6a 05                	push   $0x5
487b5e:	58                   	pop    %eax
487b5f:	3b f8                	cmp    %eax,%edi
487b61:	75 17                	jne    0x487b7a
487b63:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
487b67:	c7 43 18 09 00 00 00 	movl   $0x9,0x18(%ebx)
487b6e:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
487b72:	89 43 20             	mov    %eax,0x20(%ebx)
487b75:	e9 79 fe ff ff       	jmp    0x4879f3
487b7a:	53                   	push   %ebx
487b7b:	57                   	push   %edi
487b7c:	e8 7d 23 ff ff       	call   0x479efe
487b81:	59                   	pop    %ecx
487b82:	59                   	pop    %ecx
487b83:	e9 6b fe ff ff       	jmp    0x4879f3
487b88:	8b 04 95 00 88 4c 00 	mov    0x4c8800(,%edx,4),%eax
487b8f:	f6 44 08 28 40       	testb  $0x40,0x28(%eax,%ecx,1)
487b94:	74 08                	je     0x487b9e
487b96:	8b 45 f8             	mov    -0x8(%ebp),%eax
487b99:	80 38 1a             	cmpb   $0x1a,(%eax)
487b9c:	74 1c                	je     0x487bba
487b9e:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
487ba2:	c7 43 18 1c 00 00 00 	movl   $0x1c,0x18(%ebx)
487ba9:	c6 43 24 01          	movb   $0x1,0x24(%ebx)
487bad:	89 73 20             	mov    %esi,0x20(%ebx)
487bb0:	e9 3e fe ff ff       	jmp    0x4879f3
487bb5:	2b 45 e4             	sub    -0x1c(%ebp),%eax
487bb8:	eb 02                	jmp    0x487bbc
487bba:	33 c0                	xor    %eax,%eax
487bbc:	5f                   	pop    %edi
487bbd:	5e                   	pop    %esi
487bbe:	5b                   	pop    %ebx
487bbf:	c9                   	leave
487bc0:	c3                   	ret
487bc1:	6a 0c                	push   $0xc
487bc3:	68 f0 19 4c 00       	push   $0x4c19f0
487bc8:	e8 73 2b fe ff       	call   0x46a740
487bcd:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
487bd1:	8b 45 08             	mov    0x8(%ebp),%eax
487bd4:	ff 30                	push   (%eax)
487bd6:	e8 4a 84 00 00       	call   0x490025
487bdb:	59                   	pop    %ecx
487bdc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
487be0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
487be3:	8b 01                	mov    (%ecx),%eax
487be5:	8b 38                	mov    (%eax),%edi
487be7:	8b 71 04             	mov    0x4(%ecx),%esi
487bea:	8b d7                	mov    %edi,%edx
487bec:	c1 fa 06             	sar    $0x6,%edx
487bef:	8b c7                	mov    %edi,%eax
487bf1:	83 e0 3f             	and    $0x3f,%eax
487bf4:	6b c8 38             	imul   $0x38,%eax,%ecx
487bf7:	8b 04 95 00 88 4c 00 	mov    0x4c8800(,%edx,4),%eax
487bfe:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
487c03:	74 0d                	je     0x487c12
487c05:	56                   	push   %esi
487c06:	57                   	push   %edi
487c07:	e8 19 01 00 00       	call   0x487d25
487c0c:	59                   	pop    %ecx
487c0d:	59                   	pop    %ecx
487c0e:	8b f0                	mov    %eax,%esi
487c10:	eb 0e                	jmp    0x487c20
487c12:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
487c16:	c7 46 18 09 00 00 00 	movl   $0x9,0x18(%esi)
487c1d:	83 ce ff             	or     $0xffffffff,%esi
487c20:	89 75 e4             	mov    %esi,-0x1c(%ebp)
487c23:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
487c2a:	e8 17 00 00 00       	call   0x487c46
487c2f:	8b c6                	mov    %esi,%eax
487c31:	8b 4d f0             	mov    -0x10(%ebp),%ecx
487c34:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
487c3b:	59                   	pop    %ecx
487c3c:	5f                   	pop    %edi
487c3d:	5e                   	pop    %esi
487c3e:	5b                   	pop    %ebx
487c3f:	c9                   	leave
487c40:	c2 0c 00             	ret    $0xc
487c43:	8b 75 e4             	mov    -0x1c(%ebp),%esi
487c46:	8b 45 10             	mov    0x10(%ebp),%eax
487c49:	ff 30                	push   (%eax)
487c4b:	e8 8a 84 00 00       	call   0x4900da
487c50:	59                   	pop    %ecx
487c51:	c3                   	ret
487c52:	8b ff                	mov    %edi,%edi
487c54:	55                   	push   %ebp
487c55:	8b ec                	mov    %esp,%ebp
487c57:	83 ec 14             	sub    $0x14,%esp
487c5a:	56                   	push   %esi
487c5b:	8b 75 08             	mov    0x8(%ebp),%esi
487c5e:	83 fe fe             	cmp    $0xfffffffe,%esi
487c61:	75 18                	jne    0x487c7b
487c63:	8b 45 0c             	mov    0xc(%ebp),%eax
487c66:	83 60 20 00          	andl   $0x0,0x20(%eax)
487c6a:	c6 40 24 01          	movb   $0x1,0x24(%eax)
487c6e:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
487c72:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
487c79:	eb 74                	jmp    0x487cef
487c7b:	85 f6                	test   %esi,%esi
487c7d:	78 4b                	js     0x487cca
487c7f:	3b 35 00 8a 4c 00    	cmp    0x4c8a00,%esi
487c85:	73 43                	jae    0x487cca
487c87:	8b c6                	mov    %esi,%eax
487c89:	8b d6                	mov    %esi,%edx
487c8b:	83 e0 3f             	and    $0x3f,%eax
487c8e:	c1 fa 06             	sar    $0x6,%edx
487c91:	6b c8 38             	imul   $0x38,%eax,%ecx
487c94:	8b 04 95 00 88 4c 00 	mov    0x4c8800(,%edx,4),%eax
487c9b:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
487ca0:	74 28                	je     0x487cca
487ca2:	8d 45 08             	lea    0x8(%ebp),%eax
487ca5:	89 75 f8             	mov    %esi,-0x8(%ebp)
487ca8:	89 45 ec             	mov    %eax,-0x14(%ebp)
487cab:	8d 4d ff             	lea    -0x1(%ebp),%ecx
487cae:	8b 45 0c             	mov    0xc(%ebp),%eax
487cb1:	89 45 f0             	mov    %eax,-0x10(%ebp)
487cb4:	8d 45 f8             	lea    -0x8(%ebp),%eax
487cb7:	50                   	push   %eax
487cb8:	8d 45 ec             	lea    -0x14(%ebp),%eax
487cbb:	89 75 f4             	mov    %esi,-0xc(%ebp)
487cbe:	50                   	push   %eax
487cbf:	8d 45 f4             	lea    -0xc(%ebp),%eax
487cc2:	50                   	push   %eax