476901:	8b 55 fc             	mov    -0x4(%ebp),%edx
476904:	8b 92 c4 00 00 00    	mov    0xc4(%edx),%edx
47690a:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
47690d:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
476910:	8b 52 1c             	mov    0x1c(%edx),%edx
476913:	f6 42 64 04          	testb  $0x4,0x64(%edx)
476917:	74 23                	je     0x47693c
476919:	c6 40 10 00          	movb   $0x0,0x10(%eax)
47691d:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476921:	74 08                	je     0x47692b
476923:	2b 58 08             	sub    0x8(%eax),%ebx
476926:	e9 ee 00 00 00       	jmp    0x476a19
47692b:	2b 58 0c             	sub    0xc(%eax),%ebx
47692e:	e9 e6 00 00 00       	jmp    0x476a19
476933:	ff 4d c4             	decl   -0x3c(%ebp)
476936:	83 7d c4 ff          	cmpl   $0xffffffff,-0x3c(%ebp)
47693a:	75 b5                	jne    0x4768f1
47693c:	8b 45 fc             	mov    -0x4(%ebp),%eax
47693f:	83 b8 a0 00 00 00 00 	cmpl   $0x0,0xa0(%eax)
476946:	74 12                	je     0x47695a
476948:	8b 45 fc             	mov    -0x4(%ebp),%eax
47694b:	8b 80 a0 00 00 00    	mov    0xa0(%eax),%eax
476951:	8b 40 08             	mov    0x8(%eax),%eax
476954:	48                   	dec    %eax
476955:	89 45 c4             	mov    %eax,-0x3c(%ebp)
476958:	eb 0d                	jmp    0x476967
47695a:	8b 45 fc             	mov    -0x4(%ebp),%eax
47695d:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476963:	48                   	dec    %eax
476964:	89 45 c4             	mov    %eax,-0x3c(%ebp)
476967:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
47696b:	0f 8c 15 01 00 00    	jl     0x476a86
476971:	8b 45 fc             	mov    -0x4(%ebp),%eax
476974:	8b b0 a0 00 00 00    	mov    0xa0(%eax),%esi
47697a:	85 f6                	test   %esi,%esi
47697c:	74 17                	je     0x476995
47697e:	8b c6                	mov    %esi,%eax
476980:	8b 55 c4             	mov    -0x3c(%ebp),%edx
476983:	e8 38 54 fa ff       	call   0x41bdc0
476988:	89 45 a8             	mov    %eax,-0x58(%ebp)
47698b:	8b 45 a8             	mov    -0x58(%ebp),%eax
47698e:	e8 31 db ff ff       	call   0x4744c4
476993:	eb 15                	jmp    0x4769aa
476995:	8b 45 fc             	mov    -0x4(%ebp),%eax
476998:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
47699e:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4769a1:	8b 04 90             	mov    (%eax,%edx,4),%eax
4769a4:	89 45 a8             	mov    %eax,-0x58(%ebp)
4769a7:	8b 45 c4             	mov    -0x3c(%ebp),%eax
4769aa:	6b f0 15             	imul   $0x15,%eax,%esi
4769ad:	8b 55 f8             	mov    -0x8(%ebp),%edx
4769b0:	80 7c 32 10 00       	cmpb   $0x0,0x10(%edx,%esi,1)
4769b5:	74 53                	je     0x476a0a
4769b7:	8b 55 a8             	mov    -0x58(%ebp),%edx
4769ba:	8b 52 1c             	mov    0x1c(%edx),%edx
4769bd:	f6 42 64 04          	testb  $0x4,0x64(%edx)
4769c1:	75 47                	jne    0x476a0a
4769c3:	8b 55 f8             	mov    -0x8(%ebp),%edx
4769c6:	c6 44 32 10 00       	movb   $0x0,0x10(%edx,%esi,1)
4769cb:	8b 55 f8             	mov    -0x8(%ebp),%edx
4769ce:	c6 44 32 11 01       	movb   $0x1,0x11(%edx,%esi,1)
4769d3:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
4769d7:	74 09                	je     0x4769e2
4769d9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4769dc:	2b 5c 30 08          	sub    0x8(%eax,%esi,1),%ebx
4769e0:	eb 07                	jmp    0x4769e9
4769e2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4769e5:	2b 5c 30 0c          	sub    0xc(%eax,%esi,1),%ebx
4769e9:	80 7d a6 00          	cmpb   $0x0,-0x5a(%ebp)
4769ed:	75 2a                	jne    0x476a19
4769ef:	8b 45 a8             	mov    -0x58(%ebp),%eax
4769f2:	8b 40 1c             	mov    0x1c(%eax),%eax
4769f5:	8b 15 9c 03 47 00    	mov    0x47039c,%edx
4769fb:	e8 04 d2 f8 ff       	call   0x403c04
476a00:	84 c0                	test   %al,%al
476a02:	75 15                	jne    0x476a19
476a04:	c6 45 a6 01          	movb   $0x1,-0x5a(%ebp)
476a08:	eb 0f                	jmp    0x476a19
476a0a:	ff 4d c4             	decl   -0x3c(%ebp)
476a0d:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
476a11:	0f 8d 5a ff ff ff    	jge    0x476971
476a17:	eb 6d                	jmp    0x476a86
476a19:	c6 45 b7 01          	movb   $0x1,-0x49(%ebp)
476a1d:	8b 45 fc             	mov    -0x4(%ebp),%eax
476a20:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476a26:	48                   	dec    %eax
476a27:	85 c0                	test   %eax,%eax
476a29:	7c 52                	jl     0x476a7d
476a2b:	40                   	inc    %eax
476a2c:	89 45 a0             	mov    %eax,-0x60(%ebp)
476a2f:	33 c0                	xor    %eax,%eax
476a31:	8b 55 fc             	mov    -0x4(%ebp),%edx
476a34:	8b 92 c4 00 00 00    	mov    0xc4(%edx),%edx
476a3a:	8b 14 82             	mov    (%edx,%eax,4),%edx
476a3d:	8b 7a 1c             	mov    0x1c(%edx),%edi
476a40:	6b d0 15             	imul   $0x15,%eax,%edx
476a43:	8b 4d f8             	mov    -0x8(%ebp),%ecx
476a46:	8d 34 11             	lea    (%ecx,%edx,1),%esi
476a49:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
476a4d:	74 28                	je     0x476a77
476a4f:	f6 47 64 04          	testb  $0x4,0x64(%edi)
476a53:	0f 95 c2             	setne  %dl
476a56:	22 55 b7             	and    -0x49(%ebp),%dl
476a59:	74 12                	je     0x476a6d
476a5b:	c6 46 10 00          	movb   $0x0,0x10(%esi)
476a5f:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476a63:	74 05                	je     0x476a6a
476a65:	2b 5e 08             	sub    0x8(%esi),%ebx
476a68:	eb 03                	jmp    0x476a6d
476a6a:	2b 5e 0c             	sub    0xc(%esi),%ebx
476a6d:	f6 47 64 04          	testb  $0x4,0x64(%edi)
476a71:	0f 95 c2             	setne  %dl
476a74:	88 55 b7             	mov    %dl,-0x49(%ebp)
476a77:	40                   	inc    %eax
476a78:	ff 4d a0             	decl   -0x60(%ebp)
476a7b:	75 b4                	jne    0x476a31
476a7d:	3b 5d 18             	cmp    0x18(%ebp),%ebx
476a80:	0f 8f 0e fe ff ff    	jg     0x476894
476a86:	8b 45 fc             	mov    -0x4(%ebp),%eax
476a89:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476a8f:	48                   	dec    %eax
476a90:	83 f8 00             	cmp    $0x0,%eax
476a93:	7c 38                	jl     0x476acd
476a95:	89 45 c4             	mov    %eax,-0x3c(%ebp)
476a98:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476a9c:	8b 55 f8             	mov    -0x8(%ebp),%edx
476a9f:	8d 04 02             	lea    (%edx,%eax,1),%eax
476aa2:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
476aa6:	74 1c                	je     0x476ac4
476aa8:	8b 55 fc             	mov    -0x4(%ebp),%edx
476aab:	8b 92 c4 00 00 00    	mov    0xc4(%edx),%edx
476ab1:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
476ab4:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
476ab7:	8b 52 1c             	mov    0x1c(%edx),%edx
476aba:	f6 42 64 04          	testb  $0x4,0x64(%edx)
476abe:	74 0d                	je     0x476acd
476ac0:	c6 40 10 00          	movb   $0x0,0x10(%eax)
476ac4:	ff 4d c4             	decl   -0x3c(%ebp)
476ac7:	83 7d c4 ff          	cmpl   $0xffffffff,-0x3c(%ebp)
476acb:	75 cb                	jne    0x476a98
476acd:	8b 45 fc             	mov    -0x4(%ebp),%eax
476ad0:	8b 80 c0 00 00 00    	mov    0xc0(%eax),%eax
476ad6:	48                   	dec    %eax
476ad7:	85 c0                	test   %eax,%eax
476ad9:	7c 51                	jl     0x476b2c
476adb:	40                   	inc    %eax
476adc:	89 45 a0             	mov    %eax,-0x60(%ebp)
476adf:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
476ae6:	6b 45 c4 15          	imul   $0x15,-0x3c(%ebp),%eax
476aea:	8b 55 f8             	mov    -0x8(%ebp),%edx
476aed:	8d 04 02             	lea    (%edx,%eax,1),%eax
476af0:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
476af4:	74 2e                	je     0x476b24
476af6:	80 7d f7 01          	cmpb   $0x1,-0x9(%ebp)
476afa:	74 16                	je     0x476b12
476afc:	8b 50 0c             	mov    0xc(%eax),%edx
476aff:	8b 4d 10             	mov    0x10(%ebp),%ecx
476b02:	3b 51 04             	cmp    0x4(%ecx),%edx
476b05:	7e 1d                	jle    0x476b24
476b07:	8b 40 0c             	mov    0xc(%eax),%eax
476b0a:	8b 55 10             	mov    0x10(%ebp),%edx
476b0d:	89 42 04             	mov    %eax,0x4(%edx)
476b10:	eb 12                	jmp    0x476b24
476b12:	8b 50 08             	mov    0x8(%eax),%edx
476b15:	8b 4d 10             	mov    0x10(%ebp),%ecx
476b18:	3b 11                	cmp    (%ecx),%edx
476b1a:	7e 08                	jle    0x476b24
476b1c:	8b 40 08             	mov    0x8(%eax),%eax
476b1f:	8b 55 10             	mov    0x10(%ebp),%edx
476b22:	89 02                	mov    %eax,(%edx)
476b24:	ff 45 c4             	incl   -0x3c(%ebp)
476b27:	ff 4d a0             	decl   -0x60(%ebp)
476b2a:	75 ba                	jne    0x476ae6
476b2c:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
476b2f:	8a 55 f7             	mov    -0x9(%ebp),%dl
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