476b32:	8b 45 fc             	mov    -0x4(%ebp),%eax
476b35:	8b 18                	mov    (%eax),%ebx
476b37:	ff 53 3c             	call   *0x3c(%ebx)
476b3a:	8b 45 84             	mov    -0x7c(%ebp),%eax
476b3d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
476b40:	8b 45 88             	mov    -0x78(%ebp),%eax
476b43:	89 45 d0             	mov    %eax,-0x30(%ebp)
476b46:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
476b4a:	7e 13                	jle    0x476b5f
476b4c:	8b 45 8c             	mov    -0x74(%ebp),%eax
476b4f:	29 45 1c             	sub    %eax,0x1c(%ebp)
476b52:	83 7d 1c 01          	cmpl   $0x1,0x1c(%ebp)
476b56:	7d 07                	jge    0x476b5f
476b58:	c7 45 1c 01 00 00 00 	movl   $0x1,0x1c(%ebp)
476b5f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
476b62:	89 45 e0             	mov    %eax,-0x20(%ebp)
476b65:	8b 45 d0             	mov    -0x30(%ebp),%eax
476b68:	89 45 dc             	mov    %eax,-0x24(%ebp)
476b6b:	c6 45 db 00          	movb   $0x0,-0x25(%ebp)
476b6f:	c6 45 ef 00          	movb   $0x0,-0x11(%ebp)
476b73:	8b 45 fc             	mov    -0x4(%ebp),%eax
476b76:	8a 40 71             	mov    0x71(%eax),%al
476b79:	88 45 b6             	mov    %al,-0x4a(%ebp)
476b7c:	c7 45 f0 ff ff ff ff 	movl   $0xffffffff,-0x10(%ebp)
476b83:	8b 45 fc             	mov    -0x4(%ebp),%eax
476b86:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476b8c:	48                   	dec    %eax
476b8d:	85 c0                	test   %eax,%eax
476b8f:	0f 8c c4 00 00 00    	jl     0x476c59
476b95:	40                   	inc    %eax
476b96:	89 45 a0             	mov    %eax,-0x60(%ebp)
476b99:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
476ba0:	8b 45 fc             	mov    -0x4(%ebp),%eax
476ba3:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
476ba9:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476bac:	8b 04 90             	mov    (%eax,%edx,4),%eax
476baf:	8b 78 1c             	mov    0x1c(%eax),%edi
476bb2:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476bb6:	8b 55 f8             	mov    -0x8(%ebp),%edx
476bb9:	8d 34 02             	lea    (%edx,%eax,1),%esi
476bbc:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
476bc0:	0f 84 87 00 00 00    	je     0x476c4d
476bc6:	8b 45 fc             	mov    -0x4(%ebp),%eax
476bc9:	80 78 71 00          	cmpb   $0x0,0x71(%eax)
476bcd:	75 0a                	jne    0x476bd9
476bcf:	f6 47 40 02          	testb  $0x2,0x40(%edi)
476bd3:	75 04                	jne    0x476bd9
476bd5:	33 db                	xor    %ebx,%ebx
476bd7:	eb 02                	jmp    0x476bdb
476bd9:	b3 01                	mov    $0x1,%bl
476bdb:	80 7d b6 00          	cmpb   $0x0,-0x4a(%ebp)
476bdf:	74 13                	je     0x476bf4
476be1:	84 db                	test   %bl,%bl
476be3:	75 0f                	jne    0x476bf4
476be5:	8b 45 d4             	mov    -0x2c(%ebp),%eax
476be8:	89 45 e0             	mov    %eax,-0x20(%ebp)
476beb:	8b 45 0c             	mov    0xc(%ebp),%eax
476bee:	8b 40 04             	mov    0x4(%eax),%eax
476bf1:	89 45 dc             	mov    %eax,-0x24(%ebp)
476bf4:	88 5d b6             	mov    %bl,-0x4a(%ebp)
476bf7:	55                   	push   %ebp
476bf8:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476bfc:	8b 55 f8             	mov    -0x8(%ebp),%edx
476bff:	03 d0                	add    %eax,%edx
476c01:	8b 45 c4             	mov    -0x3c(%ebp),%eax
476c04:	e8 bb f5 ff ff       	call   0x4761c4
476c09:	59                   	pop    %ecx
476c0a:	84 db                	test   %bl,%bl
476c0c:	74 10                	je     0x476c1e
476c0e:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476c12:	74 0a                	je     0x476c1e
476c14:	8b 46 08             	mov    0x8(%esi),%eax
476c17:	2b 06                	sub    (%esi),%eax
476c19:	01 45 e0             	add    %eax,-0x20(%ebp)
476c1c:	eb 09                	jmp    0x476c27
476c1e:	8b 46 0c             	mov    0xc(%esi),%eax
476c21:	2b 46 04             	sub    0x4(%esi),%eax
476c24:	01 45 dc             	add    %eax,-0x24(%ebp)
476c27:	8b 46 08             	mov    0x8(%esi),%eax
476c2a:	8b 55 0c             	mov    0xc(%ebp),%edx
476c2d:	3b 02                	cmp    (%edx),%eax
476c2f:	7e 08                	jle    0x476c39
476c31:	8b 46 08             	mov    0x8(%esi),%eax
476c34:	8b 55 0c             	mov    0xc(%ebp),%edx
476c37:	89 02                	mov    %eax,(%edx)
476c39:	8b 46 0c             	mov    0xc(%esi),%eax
476c3c:	8b 55 0c             	mov    0xc(%ebp),%edx
476c3f:	3b 42 04             	cmp    0x4(%edx),%eax
476c42:	7e 09                	jle    0x476c4d
476c44:	8b 46 0c             	mov    0xc(%esi),%eax
476c47:	8b 55 0c             	mov    0xc(%ebp),%edx
476c4a:	89 42 04             	mov    %eax,0x4(%edx)
476c4d:	ff 45 c4             	incl   -0x3c(%ebp)
476c50:	ff 4d a0             	decl   -0x60(%ebp)
476c53:	0f 85 47 ff ff ff    	jne    0x476ba0
476c59:	8b 45 fc             	mov    -0x4(%ebp),%eax
476c5c:	83 b8 c0 00 00 00 00 	cmpl   $0x0,0xc0(%eax)
476c63:	74 13                	je     0x476c78
476c65:	55                   	push   %ebp
476c66:	8b 45 fc             	mov    -0x4(%ebp),%eax
476c69:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476c6f:	48                   	dec    %eax
476c70:	b2 01                	mov    $0x1,%dl
476c72:	e8 b5 f2 ff ff       	call   0x475f2c
476c77:	59                   	pop    %ecx
476c78:	8b 45 0c             	mov    0xc(%ebp),%eax
476c7b:	8b 55 8c             	mov    -0x74(%ebp),%edx
476c7e:	01 10                	add    %edx,(%eax)
476c80:	8b 45 0c             	mov    0xc(%ebp),%eax
476c83:	8b 55 90             	mov    -0x70(%ebp),%edx
476c86:	01 50 04             	add    %edx,0x4(%eax)
476c89:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476c8d:	75 07                	jne    0x476c96
476c8f:	55                   	push   %ebp
476c90:	e8 cb f0 ff ff       	call   0x475d60
476c95:	59                   	pop    %ecx
476c96:	55                   	push   %ebp
476c97:	e8 14 f1 ff ff       	call   0x475db0
476c9c:	59                   	pop    %ecx
476c9d:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
476ca1:	0f 84 f2 00 00 00    	je     0x476d99
476ca7:	8b 45 fc             	mov    -0x4(%ebp),%eax
476caa:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476cb0:	48                   	dec    %eax
476cb1:	85 c0                	test   %eax,%eax
476cb3:	0f 8c e0 00 00 00    	jl     0x476d99
476cb9:	40                   	inc    %eax
476cba:	89 45 a0             	mov    %eax,-0x60(%ebp)
476cbd:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
476cc4:	8b 45 fc             	mov    -0x4(%ebp),%eax
476cc7:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
476ccd:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476cd0:	8b 04 90             	mov    (%eax,%edx,4),%eax
476cd3:	8b 78 1c             	mov    0x1c(%eax),%edi
476cd6:	8b c7                	mov    %edi,%eax
476cd8:	8b 15 9c 03 47 00    	mov    0x47039c,%edx
476cde:	e8 21 cf f8 ff       	call   0x403c04
476ce3:	84 c0                	test   %al,%al
476ce5:	0f 84 a2 00 00 00    	je     0x476d8d
476ceb:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476cef:	8b 55 f8             	mov    -0x8(%ebp),%edx
476cf2:	80 7c 02 10 00       	cmpb   $0x0,0x10(%edx,%eax,1)
476cf7:	74 40                	je     0x476d39
476cf9:	8b bf b0 00 00 00    	mov    0xb0(%edi),%edi
476cff:	8d 95 74 ff ff ff    	lea    -0x8c(%ebp),%edx
476d05:	8b c7                	mov    %edi,%eax
476d07:	e8 60 14 fd ff       	call   0x44816c
476d0c:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
476d12:	50                   	push   %eax
476d13:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476d17:	8b 55 f8             	mov    -0x8(%ebp),%edx
476d1a:	8d 04 02             	lea    (%edx,%eax,1),%eax
476d1d:	50                   	push   %eax
476d1e:	e8 6d 0c f9 ff       	call   0x407990
476d23:	85 c0                	test   %eax,%eax
476d25:	75 66                	jne    0x476d8d
476d27:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476d2b:	8b 55 f8             	mov    -0x8(%ebp),%edx
476d2e:	03 d0                	add    %eax,%edx
476d30:	8b c7                	mov    %edi,%eax
476d32:	e8 55 14 fd ff       	call   0x44818c
476d37:	eb 54                	jmp    0x476d8d
476d39:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476d3d:	8b 55 f8             	mov    -0x8(%ebp),%edx
476d40:	80 7c 02 11 00       	cmpb   $0x0,0x11(%edx,%eax,1)
476d45:	75 0e                	jne    0x476d55
476d47:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476d4b:	8b 55 f8             	mov    -0x8(%ebp),%edx
476d4e:	80 7c 02 13 00       	cmpb   $0x0,0x13(%edx,%eax,1)
476d53:	74 38                	je     0x476d8d
476d55:	8b bf b0 00 00 00    	mov    0xb0(%edi),%edi
476d5b:	8b 47 48             	mov    0x48(%edi),%eax
476d5e:	50                   	push   %eax
476d5f:	8b 47 4c             	mov    0x4c(%edi),%eax
476d62:	50                   	push   %eax
476d63:	8b 45 fc             	mov    -0x4(%ebp),%eax
476d66:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
476d6c:	e8 a3 14 fd ff       	call   0x448214
476d71:	50                   	push   %eax
476d72:	8b 45 fc             	mov    -0x4(%ebp),%eax
476d75:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
476d7b:	e8 50 14 fd ff       	call   0x4481d0
476d80:	8b d0                	mov    %eax,%edx
476d82:	8b c7                	mov    %edi,%eax
476d84:	59                   	pop    %ecx
476d85:	8b 18                	mov    (%eax),%ebx
476d87:	ff 93 84 00 00 00    	call   *0x84(%ebx)
476d8d:	ff 45 c4             	incl   -0x3c(%ebp)
476d90:	ff 4d a0             	decl   -0x60(%ebp)
476d93:	0f 85 2b ff ff ff    	jne    0x476cc4
476d99:	8b 45 fc             	mov    -0x4(%ebp),%eax
476d9c:	80 78 71 00          	cmpb   $0x0,0x71(%eax)
476da0:	74 77                	je     0x476e19
476da2:	8b 45 fc             	mov    -0x4(%ebp),%eax
476da5:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476dab:	48                   	dec    %eax
476dac:	85 c0                	test   %eax,%eax
476dae:	7c 69                	jl     0x476e19
476db0:	40                   	inc    %eax
476db1:	89 45 a0             	mov    %eax,-0x60(%ebp)
476db4:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
476dbb:	8b 45 fc             	mov    -0x4(%ebp),%eax
476dbe:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
476dc4:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476dc7:	8b 04 90             	mov    (%eax,%edx,4),%eax
476dca:	8b 78 1c             	mov    0x1c(%eax),%edi
476dcd:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476dd1:	8b 55 f8             	mov    -0x8(%ebp),%edx
476dd4:	8d 04 02             	lea    (%edx,%eax,1),%eax
476dd7:	89 45 94             	mov    %eax,-0x6c(%ebp)
476dda:	8b 45 94             	mov    -0x6c(%ebp),%eax
476ddd:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
476de1:	74 2e                	je     0x476e11
476de3:	f6 47 64 04          	testb  $0x4,0x64(%edi)
476de7:	74 28                	je     0x476e11
476de9:	8b 45 94             	mov    -0x6c(%ebp),%eax
476dec:	80 78 12 00          	cmpb   $0x0,0x12(%eax)
476df0:	74 1f                	je     0x476e11
476df2:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476df6:	74 0d                	je     0x476e05
476df8:	8b 45 0c             	mov    0xc(%ebp),%eax
476dfb:	8b 00                	mov    (%eax),%eax
476dfd:	8b 55 94             	mov    -0x6c(%ebp),%edx
476e00:	89 42 08             	mov    %eax,0x8(%edx)
476e03:	eb 0c                	jmp    0x476e11
476e05:	8b 45 0c             	mov    0xc(%ebp),%eax
476e08:	8b 40 04             	mov    0x4(%eax),%eax
476e0b:	8b 55 94             	mov    -0x6c(%ebp),%edx
476e0e:	89 42 0c             	mov    %eax,0xc(%edx)
476e11:	ff 45 c4             	incl   -0x3c(%ebp)
476e14:	ff 4d a0             	decl   -0x60(%ebp)
476e17:	75 a2                	jne    0x476dbb
476e19:	80 7d a7 00          	cmpb   $0x0,-0x59(%ebp)
476e1d:	0f 84 c2 00 00 00    	je     0x476ee5
476e23:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
476e27:	74 0b                	je     0x476e34
476e29:	8a 55 a6             	mov    -0x5a(%ebp),%dl
476e2c:	8b 45 bc             	mov    -0x44(%ebp),%eax
476e2f:	e8 98 bc ff ff       	call   0x472acc
476e34:	8b 45 fc             	mov    -0x4(%ebp),%eax
476e37:	6b 80 c0 00 00 00 15 	imul   $0x15,0xc0(%eax),%eax
476e3e:	8b 55 f8             	mov    -0x8(%ebp),%edx
476e41:	c6 44 02 fb 01       	movb   $0x1,-0x5(%edx,%eax,1)
476e46:	8b 45 18             	mov    0x18(%ebp),%eax
476e49:	89 45 c4             	mov    %eax,-0x3c(%ebp)
476e4c:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476e50:	74 4a                	je     0x476e9c
476e52:	8b 45 0c             	mov    0xc(%ebp),%eax
476e55:	8b 00                	mov    (%eax),%eax
476e57:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
476e5a:	7e 08                	jle    0x476e64
476e5c:	8b 45 0c             	mov    0xc(%ebp),%eax
476e5f:	8b 00                	mov    (%eax),%eax
476e61:	89 45 c4             	mov    %eax,-0x3c(%ebp)
476e64:	8b 45 0c             	mov    0xc(%ebp),%eax
476e67:	8b 40 04             	mov    0x4(%eax),%eax
476e6a:	50                   	push   %eax
476e6b:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
476e71:	50                   	push   %eax
476e72:	8b 4d 14             	mov    0x14(%ebp),%ecx
476e75:	33 d2                	xor    %edx,%edx
476e77:	8b 45 c4             	mov    -0x3c(%ebp),%eax
476e7a:	e8 1d 38 fa ff       	call   0x41a69c
476e7f:	8b 45 fc             	mov    -0x4(%ebp),%eax
476e82:	6b 80 c0 00 00 00 15 	imul   $0x15,0xc0(%eax),%eax
476e89:	8b 55 f8             	mov    -0x8(%ebp),%edx
476e8c:	8d b5 74 ff ff ff    	lea    -0x8c(%ebp),%esi
476e92:	8d 7c 02 eb          	lea    -0x15(%edx,%eax,1),%edi
476e96:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476e97:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476e98:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476e99:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476e9a:	eb 49                	jmp    0x476ee5
476e9c:	8b 45 0c             	mov    0xc(%ebp),%eax
476e9f:	8b 40 04             	mov    0x4(%eax),%eax
476ea2:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
476ea5:	7e 09                	jle    0x476eb0
476ea7:	8b 45 0c             	mov    0xc(%ebp),%eax
476eaa:	8b 40 04             	mov    0x4(%eax),%eax
476ead:	89 45 c4             	mov    %eax,-0x3c(%ebp)
476eb0:	8b 45 14             	mov    0x14(%ebp),%eax
476eb3:	50                   	push   %eax
476eb4:	8d 85 74 ff ff ff    	lea    -0x8c(%ebp),%eax
476eba:	50                   	push   %eax
476ebb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
476ebe:	8b 09                	mov    (%ecx),%ecx
476ec0:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476ec3:	33 c0                	xor    %eax,%eax
476ec5:	e8 d2 37 fa ff       	call   0x41a69c
476eca:	8b 45 fc             	mov    -0x4(%ebp),%eax
476ecd:	6b 80 c0 00 00 00 15 	imul   $0x15,0xc0(%eax),%eax
476ed4:	8b 55 f8             	mov    -0x8(%ebp),%edx
476ed7:	8d b5 74 ff ff ff    	lea    -0x8c(%ebp),%esi
476edd:	8d 7c 02 eb          	lea    -0x15(%edx,%eax,1),%edi
476ee1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476ee2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476ee3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476ee4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
476ee5:	c6 45 ce 00          	movb   $0x0,-0x32(%ebp)
476ee9:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
476eed:	0f 84 2a 01 00 00    	je     0x47701d
476ef3:	8b 45 fc             	mov    -0x4(%ebp),%eax
476ef6:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476efc:	48                   	dec    %eax
476efd:	85 c0                	test   %eax,%eax
476eff:	0f 8c 18 01 00 00    	jl     0x47701d
476f05:	40                   	inc    %eax
476f06:	89 45 a0             	mov    %eax,-0x60(%ebp)
476f09:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
476f10:	80 7d ce 00          	cmpb   $0x0,-0x32(%ebp)
476f14:	75 6d                	jne    0x476f83
476f16:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476f1a:	8b 55 f8             	mov    -0x8(%ebp),%edx
476f1d:	8d 04 02             	lea    (%edx,%eax,1),%eax
476f20:	50                   	push   %eax
476f21:	8b 45 fc             	mov    -0x4(%ebp),%eax
476f24:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
476f2a:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476f2d:	8b 04 90             	mov    (%eax,%edx,4),%eax
476f30:	83 c0 04             	add    $0x4,%eax
476f33:	50                   	push   %eax
476f34:	e8 57 0a f9 ff       	call   0x407990
476f39:	85 c0                	test   %eax,%eax
476f3b:	74 42                	je     0x476f7f
476f3d:	8b 45 fc             	mov    -0x4(%ebp),%eax
476f40:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
476f46:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476f49:	8b 04 90             	mov    (%eax,%edx,4),%eax
476f4c:	8a 40 21             	mov    0x21(%eax),%al
476f4f:	6b 55 c4 15          	imul   $0x15,-0x3c(%ebp),%edx
476f53:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476f56:	3a 44 11 10          	cmp    0x10(%ecx,%edx,1),%al
476f5a:	75 23                	jne    0x476f7f
476f5c:	8b 45 fc             	mov    -0x4(%ebp),%eax
476f5f:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
476f65:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476f68:	8b 04 90             	mov    (%eax,%edx,4),%eax
476f6b:	f6 40 2c 02          	testb  $0x2,0x2c(%eax)
476f6f:	0f 95 c0             	setne  %al
476f72:	6b 55 c4 15          	imul   $0x15,-0x3c(%ebp),%edx
476f76:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476f79:	3a 44 11 12          	cmp    0x12(%ecx,%edx,1),%al
476f7d:	74 04                	je     0x476f83
476f7f:	c6 45 ce 01          	movb   $0x1,-0x32(%ebp)
476f83:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476f87:	8b 55 f8             	mov    -0x8(%ebp),%edx
476f8a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
476f8d:	8b 89 c4 00 00 00    	mov    0xc4(%ecx),%ecx
476f93:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
476f96:	8b 1c 99             	mov    (%ecx,%ebx,4),%ebx