477a5f:	ff 24 85 66 7c 47 00 	jmp    *0x477c66(,%eax,4)
477a66:	8b 7e 08             	mov    0x8(%esi),%edi
477a69:	88 5e 38             	mov    %bl,0x38(%esi)
477a6c:	38 5f 14             	cmp    %bl,0x14(%edi)
477a6f:	75 07                	jne    0x477a78
477a71:	8b cf                	mov    %edi,%ecx
477a73:	e8 98 16 00 00       	call   0x479110
477a78:	8a 46 2d             	mov    0x2d(%esi),%al
477a7b:	88 45 ff             	mov    %al,-0x1(%ebp)
477a7e:	0f be c0             	movsbl %al,%eax
477a81:	68 00 80 00 00       	push   $0x8000
477a86:	50                   	push   %eax
477a87:	8b 47 0c             	mov    0xc(%edi),%eax
477a8a:	ff 30                	push   (%eax)
477a8c:	e8 fe 17 00 00       	call   0x47928f
477a91:	83 c4 0c             	add    $0xc,%esp
477a94:	8d be 48 04 00 00    	lea    0x448(%esi),%edi
477a9a:	85 c0                	test   %eax,%eax
477a9c:	74 76                	je     0x477b14
477a9e:	8b 0f                	mov    (%edi),%ecx
477aa0:	8b 41 08             	mov    0x8(%ecx),%eax
477aa3:	3b 41 04             	cmp    0x4(%ecx),%eax
477aa6:	75 10                	jne    0x477ab8
477aa8:	38 59 0c             	cmp    %bl,0xc(%ecx)
477aab:	74 05                	je     0x477ab2
477aad:	ff 46 14             	incl   0x14(%esi)
477ab0:	eb 19                	jmp    0x477acb
477ab2:	83 4e 14 ff          	orl    $0xffffffff,0x14(%esi)
477ab6:	eb 13                	jmp    0x477acb
477ab8:	ff 46 14             	incl   0x14(%esi)
477abb:	ff 41 08             	incl   0x8(%ecx)
477abe:	8b 07                	mov    (%edi),%eax
477ac0:	8a 4d ff             	mov    -0x1(%ebp),%cl
477ac3:	8b 00                	mov    (%eax),%eax
477ac5:	88 08                	mov    %cl,(%eax)
477ac7:	8b 07                	mov    (%edi),%eax
477ac9:	ff 00                	incl   (%eax)
477acb:	8b 46 0c             	mov    0xc(%esi),%eax
477ace:	8a 08                	mov    (%eax),%cl
477ad0:	40                   	inc    %eax
477ad1:	89 46 0c             	mov    %eax,0xc(%esi)
477ad4:	88 4e 2d             	mov    %cl,0x2d(%esi)
477ad7:	84 c9                	test   %cl,%cl
477ad9:	75 3c                	jne    0x477b17
477adb:	8b 46 08             	mov    0x8(%esi),%eax
477ade:	6a 16                	push   $0x16
477ae0:	5f                   	pop    %edi
477ae1:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
477ae5:	89 78 18             	mov    %edi,0x18(%eax)
477ae8:	ff 76 08             	push   0x8(%esi)
477aeb:	53                   	push   %ebx
477aec:	53                   	push   %ebx
477aed:	53                   	push   %ebx
477aee:	53                   	push   %ebx
477aef:	53                   	push   %ebx
477af0:	e8 af 1a 00 00       	call   0x4795a4
477af5:	8b 46 08             	mov    0x8(%esi),%eax
477af8:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
477afc:	89 78 18             	mov    %edi,0x18(%eax)
477aff:	ff 76 08             	push   0x8(%esi)
477b02:	53                   	push   %ebx
477b03:	53                   	push   %ebx
477b04:	53                   	push   %ebx
477b05:	53                   	push   %ebx
477b06:	53                   	push   %ebx
477b07:	e8 98 1a 00 00       	call   0x4795a4
477b0c:	83 c4 30             	add    $0x30,%esp
477b0f:	e9 e3 fe ff ff       	jmp    0x4779f7
477b14:	8a 4d ff             	mov    -0x1(%ebp),%cl
477b17:	8b 17                	mov    (%edi),%edx
477b19:	8b 42 08             	mov    0x8(%edx),%eax
477b1c:	3b 42 04             	cmp    0x4(%edx),%eax
477b1f:	75 16                	jne    0x477b37
477b21:	38 5a 0c             	cmp    %bl,0xc(%edx)
477b24:	74 08                	je     0x477b2e
477b26:	ff 46 14             	incl   0x14(%esi)
477b29:	e9 ee 00 00 00       	jmp    0x477c1c
477b2e:	83 4e 14 ff          	orl    $0xffffffff,0x14(%esi)
477b32:	e9 e5 00 00 00       	jmp    0x477c1c
477b37:	ff 46 14             	incl   0x14(%esi)
477b3a:	ff 42 08             	incl   0x8(%edx)
477b3d:	8b 07                	mov    (%edi),%eax
477b3f:	8b 00                	mov    (%eax),%eax
477b41:	88 08                	mov    %cl,(%eax)
477b43:	8b 07                	mov    (%edi),%eax
477b45:	ff 00                	incl   (%eax)
477b47:	e9 d0 00 00 00       	jmp    0x477c1c
477b4c:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
477b50:	89 5e 20             	mov    %ebx,0x20(%esi)
477b53:	88 5e 2c             	mov    %bl,0x2c(%esi)
477b56:	89 5e 1c             	mov    %ebx,0x1c(%esi)
477b59:	89 5e 28             	mov    %ebx,0x28(%esi)
477b5c:	88 5e 38             	mov    %bl,0x38(%esi)
477b5f:	e9 b8 00 00 00       	jmp    0x477c1c
477b64:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
477b68:	83 e8 20             	sub    $0x20,%eax
477b6b:	74 37                	je     0x477ba4
477b6d:	83 e8 03             	sub    $0x3,%eax
477b70:	74 2c                	je     0x477b9e
477b72:	83 e8 08             	sub    $0x8,%eax
477b75:	74 21                	je     0x477b98
477b77:	48                   	dec    %eax
477b78:	83 e8 01             	sub    $0x1,%eax
477b7b:	74 12                	je     0x477b8f
477b7d:	83 e8 03             	sub    $0x3,%eax
477b80:	0f 85 96 00 00 00    	jne    0x477c1c
477b86:	83 4e 1c 08          	orl    $0x8,0x1c(%esi)
477b8a:	e9 8d 00 00 00       	jmp    0x477c1c
477b8f:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
477b93:	e9 84 00 00 00       	jmp    0x477c1c
477b98:	83 4e 1c 01          	orl    $0x1,0x1c(%esi)
477b9c:	eb 7e                	jmp    0x477c1c
477b9e:	83 4e 1c 20          	orl    $0x20,0x1c(%esi)
477ba2:	eb 78                	jmp    0x477c1c
477ba4:	83 4e 1c 02          	orl    $0x2,0x1c(%esi)
477ba8:	eb 72                	jmp    0x477c1c
477baa:	80 7d ff 2a          	cmpb   $0x2a,-0x1(%ebp)
477bae:	74 0d                	je     0x477bbd
477bb0:	8d 46 20             	lea    0x20(%esi),%eax
477bb3:	50                   	push   %eax
477bb4:	8b ce                	mov    %esi,%ecx
477bb6:	e8 21 fa ff ff       	call   0x4775dc
477bbb:	eb 57                	jmp    0x477c14
477bbd:	8b 4e 10             	mov    0x10(%esi),%ecx
477bc0:	8d 41 04             	lea    0x4(%ecx),%eax
477bc3:	89 46 10             	mov    %eax,0x10(%esi)
477bc6:	8b 01                	mov    (%ecx),%eax
477bc8:	89 46 20             	mov    %eax,0x20(%esi)
477bcb:	85 c0                	test   %eax,%eax
477bcd:	79 09                	jns    0x477bd8
477bcf:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
477bd3:	f7 d8                	neg    %eax
477bd5:	89 46 20             	mov    %eax,0x20(%esi)
477bd8:	b0 01                	mov    $0x1,%al
477bda:	eb 38                	jmp    0x477c14
477bdc:	89 5e 24             	mov    %ebx,0x24(%esi)
477bdf:	eb 3b                	jmp    0x477c1c
477be1:	80 7d ff 2a          	cmpb   $0x2a,-0x1(%ebp)
477be5:	74 05                	je     0x477bec
477be7:	8d 46 24             	lea    0x24(%esi),%eax
477bea:	eb c7                	jmp    0x477bb3
477bec:	8b 4e 10             	mov    0x10(%esi),%ecx
477bef:	8d 41 04             	lea    0x4(%ecx),%eax
477bf2:	89 46 10             	mov    %eax,0x10(%esi)
477bf5:	8b 01                	mov    (%ecx),%eax
477bf7:	89 46 24             	mov    %eax,0x24(%esi)
477bfa:	85 c0                	test   %eax,%eax
477bfc:	79 da                	jns    0x477bd8
477bfe:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
477c02:	eb d4                	jmp    0x477bd8
477c04:	8b ce                	mov    %esi,%ecx
477c06:	e8 bb 02 00 00       	call   0x477ec6
477c0b:	eb 07                	jmp    0x477c14
477c0d:	8b ce                	mov    %esi,%ecx
477c0f:	e8 95 05 00 00       	call   0x4781a9
477c14:	84 c0                	test   %al,%al
477c16:	0f 84 db fd ff ff    	je     0x4779f7
477c1c:	8b 46 0c             	mov    0xc(%esi),%eax
477c1f:	8a 10                	mov    (%eax),%dl
477c21:	8d 48 01             	lea    0x1(%eax),%ecx
477c24:	89 4e 0c             	mov    %ecx,0xc(%esi)
477c27:	88 55 ff             	mov    %dl,-0x1(%ebp)
477c2a:	88 56 2d             	mov    %dl,0x2d(%esi)
477c2d:	88 55 fb             	mov    %dl,-0x5(%ebp)
477c30:	84 d2                	test   %dl,%dl
477c32:	0f 85 fc fd ff ff    	jne    0x477a34
477c38:	ff 86 50 04 00 00    	incl   0x450(%esi)
477c3e:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
477c45:	0f 85 cc fd ff ff    	jne    0x477a17
477c4b:	8b 46 14             	mov    0x14(%esi),%eax
477c4e:	e9 a7 fd ff ff       	jmp    0x4779fa
477c53:	8b 4e 08             	mov    0x8(%esi),%ecx
477c56:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
477c5a:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
477c61:	e9 81 fd ff ff       	jmp    0x4779e7
477c66:	66 7a 47             	data16 jp 0x477cb0
477c69:	00 4c 7b 47          	add    %cl,0x47(%ebx,%edi,2)
477c6d:	00 64 7b 47          	add    %ah,0x47(%ebx,%edi,2)
477c71:	00 aa 7b 47 00 dc    	add    %ch,-0x23ffb885(%edx)
477c77:	7b 47                	jnp    0x477cc0
477c79:	00 e1                	add    %ah,%cl
477c7b:	7b 47                	jnp    0x477cc4
477c7d:	00 04 7c             	add    %al,(%esp,%edi,2)
477c80:	47                   	inc    %edi
477c81:	00 0d 7c 47 00 8b    	add    %cl,0x8b00477c
477c87:	ff 53 56             	call   *0x56(%ebx)
477c8a:	8b f1                	mov    %ecx,%esi
477c8c:	57                   	push   %edi
477c8d:	ff 76 08             	push   0x8(%esi)
477c90:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
477c96:	e8 eb 14 00 00       	call   0x479186
477c9b:	84 c0                	test   %al,%al
477c9d:	74 27                	je     0x477cc6
477c9f:	8b 56 0c             	mov    0xc(%esi),%edx
477ca2:	85 d2                	test   %edx,%edx
477ca4:	75 27                	jne    0x477ccd
477ca6:	33 db                	xor    %ebx,%ebx
477ca8:	8b 46 08             	mov    0x8(%esi),%eax
477cab:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
477cb2:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
477cb6:	ff 76 08             	push   0x8(%esi)
477cb9:	53                   	push   %ebx
477cba:	53                   	push   %ebx
477cbb:	53                   	push   %ebx
477cbc:	53                   	push   %ebx
477cbd:	53                   	push   %ebx
477cbe:	e8 e1 18 00 00       	call   0x4795a4
477cc3:	83 c4 18             	add    $0x18,%esp
477cc6:	83 c8 ff             	or     $0xffffffff,%eax
477cc9:	5f                   	pop    %edi
477cca:	5e                   	pop    %esi
477ccb:	5b                   	pop    %ebx
477ccc:	c3                   	ret
477ccd:	8b 86 50 04 00 00    	mov    0x450(%esi),%eax
477cd3:	40                   	inc    %eax
477cd4:	89 86 50 04 00 00    	mov    %eax,0x450(%esi)
477cda:	83 f8 02             	cmp    $0x2,%eax
477cdd:	0f 84 a6 01 00 00    	je     0x477e89
477ce3:	33 db                	xor    %ebx,%ebx
477ce5:	89 5e 34             	mov    %ebx,0x34(%esi)
477ce8:	88 5e 18             	mov    %bl,0x18(%esi)
477ceb:	0f b7 02             	movzwl (%edx),%eax
477cee:	83 c2 02             	add    $0x2,%edx
477cf1:	89 56 0c             	mov    %edx,0xc(%esi)
477cf4:	66 89 46 2e          	mov    %ax,0x2e(%esi)
477cf8:	66 85 c0             	test   %ax,%ax
477cfb:	0f 84 66 01 00 00    	je     0x477e67
477d01:	8b f8                	mov    %eax,%edi
477d03:	8b 46 14             	mov    0x14(%esi),%eax
477d06:	85 c0                	test   %eax,%eax
477d08:	0f 88 59 01 00 00    	js     0x477e67
477d0e:	0f b6 46 18          	movzbl 0x18(%esi),%eax
477d12:	8b ce                	mov    %esi,%ecx
477d14:	50                   	push   %eax
477d15:	57                   	push   %edi
477d16:	e8 77 f7 ff ff       	call   0x477492
477d1b:	88 46 18             	mov    %al,0x18(%esi)
477d1e:	3c 08                	cmp    $0x8,%al
477d20:	0f 83 6b 01 00 00    	jae    0x477e91
477d26:	0f b6 c0             	movzbl %al,%eax
477d29:	83 f8 07             	cmp    $0x7,%eax
477d2c:	77 98                	ja     0x477cc6
477d2e:	ff 24 85 a6 7e 47 00 	jmp    *0x477ea6(,%eax,4)
477d35:	c6 46 38 01          	movb   $0x1,0x38(%esi)
477d39:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
477d3f:	8b 0a                	mov    (%edx),%ecx
477d41:	8b 41 08             	mov    0x8(%ecx),%eax
477d44:	3b 41 04             	cmp    0x4(%ecx),%eax
477d47:	75 16                	jne    0x477d5f
477d49:	38 59 0c             	cmp    %bl,0xc(%ecx)
477d4c:	74 08                	je     0x477d56
477d4e:	ff 46 14             	incl   0x14(%esi)
477d51:	e9 f6 00 00 00       	jmp    0x477e4c
477d56:	83 4e 14 ff          	orl    $0xffffffff,0x14(%esi)
477d5a:	e9 ed 00 00 00       	jmp    0x477e4c
477d5f:	ff 46 14             	incl   0x14(%esi)
477d62:	ff 41 08             	incl   0x8(%ecx)
477d65:	8b 02                	mov    (%edx),%eax
477d67:	8b 00                	mov    (%eax),%eax
477d69:	66 89 38             	mov    %di,(%eax)
477d6c:	8b 02                	mov    (%edx),%eax
477d6e:	83 00 02             	addl   $0x2,(%eax)
477d71:	e9 d6 00 00 00       	jmp    0x477e4c
477d76:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
477d7a:	89 5e 20             	mov    %ebx,0x20(%esi)
477d7d:	88 5e 2c             	mov    %bl,0x2c(%esi)
477d80:	89 5e 1c             	mov    %ebx,0x1c(%esi)
477d83:	89 5e 28             	mov    %ebx,0x28(%esi)
477d86:	88 5e 38             	mov    %bl,0x38(%esi)
477d89:	e9 be 00 00 00       	jmp    0x477e4c
477d8e:	0f b7 c7             	movzwl %di,%eax
477d91:	83 e8 20             	sub    $0x20,%eax
477d94:	74 3a                	je     0x477dd0
477d96:	83 e8 03             	sub    $0x3,%eax
477d99:	74 2f                	je     0x477dca
477d9b:	83 e8 08             	sub    $0x8,%eax
477d9e:	74 21                	je     0x477dc1
477da0:	48                   	dec    %eax
477da1:	83 e8 01             	sub    $0x1,%eax
477da4:	74 12                	je     0x477db8
477da6:	83 e8 03             	sub    $0x3,%eax
477da9:	0f 85 9d 00 00 00    	jne    0x477e4c
477daf:	83 4e 1c 08          	orl    $0x8,0x1c(%esi)
477db3:	e9 94 00 00 00       	jmp    0x477e4c
477db8:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
477dbc:	e9 8b 00 00 00       	jmp    0x477e4c
477dc1:	83 4e 1c 01          	orl    $0x1,0x1c(%esi)
477dc5:	e9 82 00 00 00       	jmp    0x477e4c
477dca:	83 4e 1c 20          	orl    $0x20,0x1c(%esi)
477dce:	eb 7c                	jmp    0x477e4c
477dd0:	83 4e 1c 02          	orl    $0x2,0x1c(%esi)
477dd4:	eb 76                	jmp    0x477e4c
477dd6:	6a 2a                	push   $0x2a
477dd8:	58                   	pop    %eax
477dd9:	66 3b f8             	cmp    %ax,%di
477ddc:	74 0d                	je     0x477deb
477dde:	8d 46 20             	lea    0x20(%esi),%eax
477de1:	50                   	push   %eax
477de2:	8b ce                	mov    %esi,%ecx
477de4:	e8 6b f8 ff ff       	call   0x477654
477de9:	eb 59                	jmp    0x477e44
477deb:	8b 4e 10             	mov    0x10(%esi),%ecx
477dee:	8d 41 04             	lea    0x4(%ecx),%eax
477df1:	89 46 10             	mov    %eax,0x10(%esi)
477df4:	8b 01                	mov    (%ecx),%eax
477df6:	89 46 20             	mov    %eax,0x20(%esi)
477df9:	85 c0                	test   %eax,%eax
477dfb:	79 09                	jns    0x477e06
477dfd:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
477e01:	f7 d8                	neg    %eax
477e03:	89 46 20             	mov    %eax,0x20(%esi)
477e06:	b0 01                	mov    $0x1,%al
477e08:	eb 3a                	jmp    0x477e44
477e0a:	89 5e 24             	mov    %ebx,0x24(%esi)
477e0d:	eb 3d                	jmp    0x477e4c
477e0f:	6a 2a                	push   $0x2a
477e11:	58                   	pop    %eax
477e12:	66 3b f8             	cmp    %ax,%di
477e15:	74 05                	je     0x477e1c
477e17:	8d 46 24             	lea    0x24(%esi),%eax
477e1a:	eb c5                	jmp    0x477de1
477e1c:	8b 4e 10             	mov    0x10(%esi),%ecx
477e1f:	8d 41 04             	lea    0x4(%ecx),%eax
477e22:	89 46 10             	mov    %eax,0x10(%esi)
477e25:	8b 01                	mov    (%ecx),%eax
477e27:	89 46 24             	mov    %eax,0x24(%esi)
477e2a:	85 c0                	test   %eax,%eax
477e2c:	79 d8                	jns    0x477e06
477e2e:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
477e32:	eb d2                	jmp    0x477e06
477e34:	8b ce                	mov    %esi,%ecx
477e36:	e8 e4 01 00 00       	call   0x47801f
477e3b:	eb 07                	jmp    0x477e44
477e3d:	8b ce                	mov    %esi,%ecx
477e3f:	e8 c4 06 00 00       	call   0x478508
477e44:	84 c0                	test   %al,%al
477e46:	0f 84 7a fe ff ff    	je     0x477cc6
477e4c:	8b 46 0c             	mov    0xc(%esi),%eax
477e4f:	0f b7 08             	movzwl (%eax),%ecx
477e52:	8d 50 02             	lea    0x2(%eax),%edx
477e55:	89 56 0c             	mov    %edx,0xc(%esi)
477e58:	8b f9                	mov    %ecx,%edi
477e5a:	66 89 4e 2e          	mov    %cx,0x2e(%esi)
477e5e:	66 85 c9             	test   %cx,%cx
477e61:	0f 85 9c fe ff ff    	jne    0x477d03
477e67:	8a 46 18             	mov    0x18(%esi),%al
477e6a:	84 c0                	test   %al,%al
477e6c:	74 08                	je     0x477e76
477e6e:	3c 07                	cmp    $0x7,%al
477e70:	0f 85 32 fe ff ff    	jne    0x477ca8