477a60:	8b f3                	mov    %ebx,%esi
477a62:	5b                   	pop    %ebx
477a63:	6a 30                	push   $0x30
477a65:	5b                   	pop    %ebx
477a66:	02 c3                	add    %bl,%al
477a68:	89 55 e4             	mov    %edx,-0x1c(%ebp)
477a6b:	88 07                	mov    %al,(%edi)
477a6d:	47                   	inc    %edi
477a6e:	3b 7d e8             	cmp    -0x18(%ebp),%edi
477a71:	75 0b                	jne    0x477a7e
477a73:	85 f6                	test   %esi,%esi
477a75:	7c 21                	jl     0x477a98
477a77:	7f 05                	jg     0x477a7e
477a79:	83 f9 64             	cmp    $0x64,%ecx
477a7c:	72 1a                	jb     0x477a98
477a7e:	53                   	push   %ebx
477a7f:	6a 00                	push   $0x0
477a81:	6a 64                	push   $0x64
477a83:	56                   	push   %esi
477a84:	51                   	push   %ecx
477a85:	e8 56 81 fc ff       	call   0x43fbe0
477a8a:	8b f3                	mov    %ebx,%esi
477a8c:	5b                   	pop    %ebx
477a8d:	6a 30                	push   $0x30
477a8f:	5b                   	pop    %ebx
477a90:	02 c3                	add    %bl,%al
477a92:	89 55 e4             	mov    %edx,-0x1c(%ebp)
477a95:	88 07                	mov    %al,(%edi)
477a97:	47                   	inc    %edi
477a98:	3b 7d e8             	cmp    -0x18(%ebp),%edi
477a9b:	75 0b                	jne    0x477aa8
477a9d:	85 f6                	test   %esi,%esi
477a9f:	7c 1f                	jl     0x477ac0
477aa1:	7f 05                	jg     0x477aa8
477aa3:	83 f9 0a             	cmp    $0xa,%ecx
477aa6:	72 18                	jb     0x477ac0
477aa8:	53                   	push   %ebx
477aa9:	6a 00                	push   $0x0
477aab:	6a 0a                	push   $0xa
477aad:	56                   	push   %esi
477aae:	51                   	push   %ecx
477aaf:	e8 2c 81 fc ff       	call   0x43fbe0
477ab4:	5b                   	pop    %ebx
477ab5:	6a 30                	push   $0x30
477ab7:	5b                   	pop    %ebx
477ab8:	02 c3                	add    %bl,%al
477aba:	89 55 e4             	mov    %edx,-0x1c(%ebp)
477abd:	88 07                	mov    %al,(%edi)
477abf:	47                   	inc    %edi
477ac0:	02 cb                	add    %bl,%cl
477ac2:	33 f6                	xor    %esi,%esi
477ac4:	88 0f                	mov    %cl,(%edi)
477ac6:	c6 47 01 00          	movb   $0x0,0x1(%edi)
477aca:	80 7d dc 00          	cmpb   $0x0,-0x24(%ebp)
477ace:	74 0a                	je     0x477ada
477ad0:	8b 4d d0             	mov    -0x30(%ebp),%ecx
477ad3:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
477ada:	5f                   	pop    %edi
477adb:	8b c6                	mov    %esi,%eax
477add:	5e                   	pop    %esi
477ade:	5b                   	pop    %ebx
477adf:	8b e5                	mov    %ebp,%esp
477ae1:	5d                   	pop    %ebp
477ae2:	c3                   	ret
477ae3:	8b ff                	mov    %edi,%edi
477ae5:	55                   	push   %ebp
477ae6:	8b ec                	mov    %esp,%ebp
477ae8:	83 ec 0c             	sub    $0xc,%esp
477aeb:	8d 45 f4             	lea    -0xc(%ebp),%eax
477aee:	56                   	push   %esi
477aef:	8b 75 1c             	mov    0x1c(%ebp),%esi
477af2:	57                   	push   %edi
477af3:	ff 75 18             	push   0x18(%ebp)
477af6:	ff 75 14             	push   0x14(%ebp)
477af9:	8d 7e 01             	lea    0x1(%esi),%edi
477afc:	50                   	push   %eax
477afd:	8b 45 08             	mov    0x8(%ebp),%eax
477b00:	57                   	push   %edi
477b01:	ff 70 04             	push   0x4(%eax)
477b04:	ff 30                	push   (%eax)
477b06:	e8 e1 db 00 00       	call   0x4856ec
477b0b:	83 c9 ff             	or     $0xffffffff,%ecx
477b0e:	83 c4 18             	add    $0x18,%esp
477b11:	39 4d 10             	cmp    %ecx,0x10(%ebp)
477b14:	74 17                	je     0x477b2d
477b16:	8b 4d 10             	mov    0x10(%ebp),%ecx
477b19:	33 c0                	xor    %eax,%eax
477b1b:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
477b1f:	0f 94 c0             	sete   %al
477b22:	2b c8                	sub    %eax,%ecx
477b24:	33 c0                	xor    %eax,%eax
477b26:	85 f6                	test   %esi,%esi
477b28:	0f 9f c0             	setg   %al
477b2b:	2b c8                	sub    %eax,%ecx
477b2d:	8d 45 f4             	lea    -0xc(%ebp),%eax
477b30:	50                   	push   %eax
477b31:	57                   	push   %edi
477b32:	8b 7d 0c             	mov    0xc(%ebp),%edi
477b35:	51                   	push   %ecx
477b36:	33 c9                	xor    %ecx,%ecx
477b38:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
477b3c:	0f 94 c1             	sete   %cl
477b3f:	33 c0                	xor    %eax,%eax
477b41:	85 f6                	test   %esi,%esi
477b43:	0f 9f c0             	setg   %al
477b46:	03 cf                	add    %edi,%ecx
477b48:	03 c1                	add    %ecx,%eax
477b4a:	50                   	push   %eax
477b4b:	e8 11 c7 00 00       	call   0x484261
477b50:	83 c4 10             	add    $0x10,%esp
477b53:	85 c0                	test   %eax,%eax
477b55:	74 05                	je     0x477b5c
477b57:	c6 07 00             	movb   $0x0,(%edi)
477b5a:	eb 1c                	jmp    0x477b78
477b5c:	ff 75 28             	push   0x28(%ebp)
477b5f:	8d 45 f4             	lea    -0xc(%ebp),%eax
477b62:	6a 00                	push   $0x0
477b64:	50                   	push   %eax
477b65:	ff 75 24             	push   0x24(%ebp)
477b68:	ff 75 20             	push   0x20(%ebp)
477b6b:	56                   	push   %esi
477b6c:	ff 75 10             	push   0x10(%ebp)
477b6f:	57                   	push   %edi
477b70:	e8 09 00 00 00       	call   0x477b7e
477b75:	83 c4 20             	add    $0x20,%esp
477b78:	5f                   	pop    %edi
477b79:	5e                   	pop    %esi
477b7a:	8b e5                	mov    %ebp,%esp
477b7c:	5d                   	pop    %ebp
477b7d:	c3                   	ret
477b7e:	8b ff                	mov    %edi,%edi
477b80:	55                   	push   %ebp
477b81:	8b ec                	mov    %esp,%ebp
477b83:	83 ec 10             	sub    $0x10,%esp
477b86:	56                   	push   %esi
477b87:	57                   	push   %edi
477b88:	8b 7d 10             	mov    0x10(%ebp),%edi
477b8b:	85 ff                	test   %edi,%edi
477b8d:	7e 04                	jle    0x477b93
477b8f:	8b c7                	mov    %edi,%eax
477b91:	eb 02                	jmp    0x477b95
477b93:	33 c0                	xor    %eax,%eax
477b95:	83 c0 09             	add    $0x9,%eax
477b98:	39 45 0c             	cmp    %eax,0xc(%ebp)
477b9b:	77 17                	ja     0x477bb4
477b9d:	e8 8d 52 fd ff       	call   0x44ce2f
477ba2:	6a 22                	push   $0x22
477ba4:	5e                   	pop    %esi
477ba5:	89 30                	mov    %esi,(%eax)
477ba7:	e8 2a 51 fd ff       	call   0x44ccd6
477bac:	8b c6                	mov    %esi,%eax
477bae:	5f                   	pop    %edi
477baf:	5e                   	pop    %esi
477bb0:	8b e5                	mov    %ebp,%esp
477bb2:	5d                   	pop    %ebp
477bb3:	c3                   	ret
477bb4:	53                   	push   %ebx
477bb5:	ff 75 24             	push   0x24(%ebp)
477bb8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
477bbb:	e8 48 74 fd ff       	call   0x44f008
477bc0:	8a 55 20             	mov    0x20(%ebp),%dl
477bc3:	8b 5d 08             	mov    0x8(%ebp),%ebx
477bc6:	84 d2                	test   %dl,%dl
477bc8:	74 25                	je     0x477bef
477bca:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
477bcd:	33 c0                	xor    %eax,%eax
477bcf:	85 ff                	test   %edi,%edi
477bd1:	0f 9f c0             	setg   %al
477bd4:	50                   	push   %eax
477bd5:	33 c0                	xor    %eax,%eax
477bd7:	83 39 2d             	cmpl   $0x2d,(%ecx)
477bda:	0f 94 c0             	sete   %al
477bdd:	03 c3                	add    %ebx,%eax
477bdf:	50                   	push   %eax
477be0:	ff 75 0c             	push   0xc(%ebp)
477be3:	53                   	push   %ebx
477be4:	e8 04 04 00 00       	call   0x477fed
477be9:	8a 55 20             	mov    0x20(%ebp),%dl
477bec:	83 c4 10             	add    $0x10,%esp
477bef:	8b 45 1c             	mov    0x1c(%ebp),%eax
477bf2:	8b f3                	mov    %ebx,%esi
477bf4:	83 38 2d             	cmpl   $0x2d,(%eax)
477bf7:	75 06                	jne    0x477bff
477bf9:	c6 03 2d             	movb   $0x2d,(%ebx)
477bfc:	8d 73 01             	lea    0x1(%ebx),%esi
477bff:	85 ff                	test   %edi,%edi
477c01:	7e 15                	jle    0x477c18
477c03:	8a 46 01             	mov    0x1(%esi),%al
477c06:	88 06                	mov    %al,(%esi)
477c08:	46                   	inc    %esi
477c09:	8b 45 f4             	mov    -0xc(%ebp),%eax
477c0c:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
477c12:	8b 00                	mov    (%eax),%eax
477c14:	8a 00                	mov    (%eax),%al
477c16:	88 06                	mov    %al,(%esi)
477c18:	33 c0                	xor    %eax,%eax
477c1a:	84 d2                	test   %dl,%dl
477c1c:	0f 94 c0             	sete   %al
477c1f:	03 c7                	add    %edi,%eax
477c21:	03 f0                	add    %eax,%esi
477c23:	83 c8 ff             	or     $0xffffffff,%eax
477c26:	39 45 0c             	cmp    %eax,0xc(%ebp)
477c29:	74 07                	je     0x477c32
477c2b:	8b c3                	mov    %ebx,%eax
477c2d:	2b c6                	sub    %esi,%eax
477c2f:	03 45 0c             	add    0xc(%ebp),%eax
477c32:	68 40 ea 49 00       	push   $0x49ea40
477c37:	50                   	push   %eax
477c38:	56                   	push   %esi
477c39:	e8 f8 85 ff ff       	call   0x470236
477c3e:	83 c4 0c             	add    $0xc,%esp
477c41:	5b                   	pop    %ebx
477c42:	85 c0                	test   %eax,%eax
477c44:	75 76                	jne    0x477cbc
477c46:	8d 4e 02             	lea    0x2(%esi),%ecx
477c49:	38 45 14             	cmp    %al,0x14(%ebp)
477c4c:	74 03                	je     0x477c51
477c4e:	c6 06 45             	movb   $0x45,(%esi)
477c51:	8b 55 1c             	mov    0x1c(%ebp),%edx
477c54:	8b 42 08             	mov    0x8(%edx),%eax
477c57:	80 38 30             	cmpb   $0x30,(%eax)
477c5a:	74 2f                	je     0x477c8b
477c5c:	8b 52 04             	mov    0x4(%edx),%edx
477c5f:	83 ea 01             	sub    $0x1,%edx
477c62:	79 06                	jns    0x477c6a
477c64:	f7 da                	neg    %edx
477c66:	c6 46 01 2d          	movb   $0x2d,0x1(%esi)
477c6a:	6a 64                	push   $0x64
477c6c:	5f                   	pop    %edi
477c6d:	3b d7                	cmp    %edi,%edx
477c6f:	7c 08                	jl     0x477c79
477c71:	8b c2                	mov    %edx,%eax
477c73:	99                   	cltd
477c74:	f7 ff                	idiv   %edi
477c76:	00 46 02             	add    %al,0x2(%esi)
477c79:	6a 0a                	push   $0xa
477c7b:	5f                   	pop    %edi
477c7c:	3b d7                	cmp    %edi,%edx
477c7e:	7c 08                	jl     0x477c88
477c80:	8b c2                	mov    %edx,%eax
477c82:	99                   	cltd
477c83:	f7 ff                	idiv   %edi
477c85:	00 46 03             	add    %al,0x3(%esi)
477c88:	00 56 04             	add    %dl,0x4(%esi)
477c8b:	83 7d 18 02          	cmpl   $0x2,0x18(%ebp)
477c8f:	75 14                	jne    0x477ca5
477c91:	80 39 30             	cmpb   $0x30,(%ecx)
477c94:	75 0f                	jne    0x477ca5
477c96:	6a 03                	push   $0x3
477c98:	8d 41 01             	lea    0x1(%ecx),%eax
477c9b:	50                   	push   %eax
477c9c:	51                   	push   %ecx
477c9d:	e8 3e bc fc ff       	call   0x4438e0
477ca2:	83 c4 0c             	add    $0xc,%esp
477ca5:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
477ca9:	74 0a                	je     0x477cb5
477cab:	8b 45 f0             	mov    -0x10(%ebp),%eax
477cae:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
477cb5:	33 c0                	xor    %eax,%eax
477cb7:	e9 f2 fe ff ff       	jmp    0x477bae
477cbc:	33 c0                	xor    %eax,%eax
477cbe:	50                   	push   %eax
477cbf:	50                   	push   %eax
477cc0:	50                   	push   %eax
477cc1:	50                   	push   %eax
477cc2:	50                   	push   %eax
477cc3:	e8 3b 50 fd ff       	call   0x44cd03
477cc8:	cc                   	int3
477cc9:	8b ff                	mov    %edi,%edi
477ccb:	55                   	push   %ebp
477ccc:	8b ec                	mov    %esp,%ebp
477cce:	83 ec 0c             	sub    $0xc,%esp
477cd1:	33 c0                	xor    %eax,%eax
477cd3:	56                   	push   %esi
477cd4:	57                   	push   %edi
477cd5:	ff 75 18             	push   0x18(%ebp)
477cd8:	8d 7d f4             	lea    -0xc(%ebp),%edi
477cdb:	ff 75 14             	push   0x14(%ebp)
477cde:	ab                   	stos   %eax,%es:(%edi)
477cdf:	ab                   	stos   %eax,%es:(%edi)
477ce0:	ab                   	stos   %eax,%es:(%edi)
477ce1:	8d 45 f4             	lea    -0xc(%ebp),%eax
477ce4:	8b 7d 1c             	mov    0x1c(%ebp),%edi
477ce7:	50                   	push   %eax
477ce8:	8b 45 08             	mov    0x8(%ebp),%eax
477ceb:	57                   	push   %edi
477cec:	ff 70 04             	push   0x4(%eax)
477cef:	ff 30                	push   (%eax)
477cf1:	e8 f6 d9 00 00       	call   0x4856ec
477cf6:	83 c9 ff             	or     $0xffffffff,%ecx
477cf9:	83 c4 18             	add    $0x18,%esp
477cfc:	39 4d 10             	cmp    %ecx,0x10(%ebp)
477cff:	74 0e                	je     0x477d0f
477d01:	8b 4d 10             	mov    0x10(%ebp),%ecx
477d04:	33 c0                	xor    %eax,%eax
477d06:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
477d0a:	0f 94 c0             	sete   %al
477d0d:	2b c8                	sub    %eax,%ecx
477d0f:	8b 75 0c             	mov    0xc(%ebp),%esi
477d12:	8d 45 f4             	lea    -0xc(%ebp),%eax
477d15:	50                   	push   %eax
477d16:	8b 45 f8             	mov    -0x8(%ebp),%eax
477d19:	03 c7                	add    %edi,%eax
477d1b:	50                   	push   %eax
477d1c:	33 c0                	xor    %eax,%eax
477d1e:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
477d22:	51                   	push   %ecx
477d23:	0f 94 c0             	sete   %al
477d26:	03 c6                	add    %esi,%eax
477d28:	50                   	push   %eax
477d29:	e8 33 c5 00 00       	call   0x484261
477d2e:	83 c4 10             	add    $0x10,%esp
477d31:	85 c0                	test   %eax,%eax
477d33:	74 05                	je     0x477d3a
477d35:	c6 06 00             	movb   $0x0,(%esi)
477d38:	eb 16                	jmp    0x477d50
477d3a:	ff 75 20             	push   0x20(%ebp)
477d3d:	8d 45 f4             	lea    -0xc(%ebp),%eax
477d40:	6a 00                	push   $0x0
477d42:	50                   	push   %eax
477d43:	57                   	push   %edi
477d44:	ff 75 10             	push   0x10(%ebp)
477d47:	56                   	push   %esi
477d48:	e8 09 00 00 00       	call   0x477d56
477d4d:	83 c4 18             	add    $0x18,%esp
477d50:	5f                   	pop    %edi
477d51:	5e                   	pop    %esi
477d52:	8b e5                	mov    %ebp,%esp
477d54:	5d                   	pop    %ebp
477d55:	c3                   	ret
477d56:	8b ff                	mov    %edi,%edi
477d58:	55                   	push   %ebp
477d59:	8b ec                	mov    %esp,%ebp
477d5b:	83 ec 10             	sub    $0x10,%esp
477d5e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
477d61:	53                   	push   %ebx
477d62:	56                   	push   %esi
477d63:	57                   	push   %edi
477d64:	ff 75 1c             	push   0x1c(%ebp)
477d67:	e8 9c 72 fd ff       	call   0x44f008
477d6c:	8b 55 14             	mov    0x14(%ebp),%edx
477d6f:	8b 7d 10             	mov    0x10(%ebp),%edi
477d72:	8b 5d 08             	mov    0x8(%ebp),%ebx
477d75:	8b 4a 04             	mov    0x4(%edx),%ecx
477d78:	49                   	dec    %ecx
477d79:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
477d7d:	74 14                	je     0x477d93
477d7f:	3b cf                	cmp    %edi,%ecx
477d81:	75 10                	jne    0x477d93
477d83:	33 c0                	xor    %eax,%eax