4f2cf4:	8b 45 10             	mov    0x10(%ebp),%eax
4f2cf7:	48                   	dec    %eax
4f2cf8:	85 c0                	test   %eax,%eax
4f2cfa:	7c 35                	jl     0x4f2d31
4f2cfc:	40                   	inc    %eax
4f2cfd:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f2d00:	8b c7                	mov    %edi,%eax
4f2d02:	0f b7 10             	movzwl (%eax),%edx
4f2d05:	c1 ea 0a             	shr    $0xa,%edx
4f2d08:	c1 e2 03             	shl    $0x3,%edx
4f2d0b:	88 56 02             	mov    %dl,0x2(%esi)
4f2d0e:	0f b7 10             	movzwl (%eax),%edx
4f2d11:	c1 ea 05             	shr    $0x5,%edx
4f2d14:	80 e2 1f             	and    $0x1f,%dl
4f2d17:	c1 e2 03             	shl    $0x3,%edx
4f2d1a:	88 56 01             	mov    %dl,0x1(%esi)
4f2d1d:	8a 00                	mov    (%eax),%al
4f2d1f:	24 1f                	and    $0x1f,%al
4f2d21:	c1 e0 03             	shl    $0x3,%eax
4f2d24:	88 06                	mov    %al,(%esi)
4f2d26:	83 c7 02             	add    $0x2,%edi
4f2d29:	83 c6 03             	add    $0x3,%esi
4f2d2c:	ff 4d a4             	decl   -0x5c(%ebp)
4f2d2f:	75 cf                	jne    0x4f2d00
4f2d31:	8b 45 08             	mov    0x8(%ebp),%eax
4f2d34:	ff 40 0c             	incl   0xc(%eax)
4f2d37:	8b 45 08             	mov    0x8(%ebp),%eax
4f2d3a:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
4f2d3f:	74 21                	je     0x4f2d62
4f2d41:	8b 45 08             	mov    0x8(%ebp),%eax
4f2d44:	db 40 0c             	fildl  0xc(%eax)
4f2d47:	8b 45 08             	mov    0x8(%ebp),%eax
4f2d4a:	dc 48 18             	fmull  0x18(%eax)
4f2d4d:	e8 7a ff f0 ff       	call   0x402ccc
4f2d52:	8b c8                	mov    %eax,%ecx
4f2d54:	8b 75 08             	mov    0x8(%ebp),%esi
4f2d57:	8b 55 08             	mov    0x8(%ebp),%edx
4f2d5a:	8b 52 08             	mov    0x8(%edx),%edx
4f2d5d:	8b 46 04             	mov    0x4(%esi),%eax
4f2d60:	ff 16                	call   *(%esi)
4f2d62:	8b 45 08             	mov    0x8(%ebp),%eax
4f2d65:	8b 40 28             	mov    0x28(%eax),%eax
4f2d68:	80 38 00             	cmpb   $0x0,(%eax)
4f2d6b:	75 19                	jne    0x4f2d86
4f2d6d:	eb 0b                	jmp    0x4f2d7a
4f2d6f:	8b 45 08             	mov    0x8(%ebp),%eax
4f2d72:	8b 40 28             	mov    0x28(%eax),%eax
4f2d75:	c6 00 01             	movb   $0x1,(%eax)
4f2d78:	eb 0c                	jmp    0x4f2d86
4f2d7a:	ff 45 f4             	incl   -0xc(%ebp)
4f2d7d:	ff 4d a8             	decl   -0x58(%ebp)
4f2d80:	0f 85 2c ff ff ff    	jne    0x4f2cb2
4f2d86:	66 83 7b 22 01       	cmpw   $0x1,0x22(%ebx)
4f2d8b:	0f 84 fd 10 00 00    	je     0x4f3e8e
4f2d91:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4f2d94:	e8 33 fa f0 ff       	call   0x4027cc
4f2d99:	e9 f0 10 00 00       	jmp    0x4f3e8e
4f2d9e:	66 83 7b 1c 03       	cmpw   $0x3,0x1c(%ebx)
4f2da3:	0f 85 86 02 00 00    	jne    0x4f302f
4f2da9:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
4f2dad:	0f 8f 7c 02 00 00    	jg     0x4f302f
4f2db3:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
4f2db7:	0f 85 3c 01 00 00    	jne    0x4f2ef9
4f2dbd:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
4f2dc1:	0f 85 32 01 00 00    	jne    0x4f2ef9
4f2dc7:	66 83 7b 22 01       	cmpw   $0x1,0x22(%ebx)
4f2dcc:	74 0d                	je     0x4f2ddb
4f2dce:	8b 45 10             	mov    0x10(%ebp),%eax
4f2dd1:	03 c0                	add    %eax,%eax
4f2dd3:	e8 d4 f9 f0 ff       	call   0x4027ac
4f2dd8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4f2ddb:	8b 45 0c             	mov    0xc(%ebp),%eax
4f2dde:	48                   	dec    %eax
4f2ddf:	85 c0                	test   %eax,%eax
4f2de1:	0f 8c fa 00 00 00    	jl     0x4f2ee1
4f2de7:	40                   	inc    %eax
4f2de8:	89 45 a8             	mov    %eax,-0x58(%ebp)
4f2deb:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4f2df2:	8b 55 f8             	mov    -0x8(%ebp),%edx
4f2df5:	03 55 f4             	add    -0xc(%ebp),%edx
4f2df8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f2dfb:	8b 08                	mov    (%eax),%ecx
4f2dfd:	ff 11                	call   *(%ecx)
4f2dff:	8b f0                	mov    %eax,%esi
4f2e01:	8b 45 1c             	mov    0x1c(%ebp),%eax
4f2e04:	01 c6                	add    %eax,%esi
4f2e06:	53                   	push   %ebx
4f2e07:	8b 45 10             	mov    0x10(%ebp),%eax
4f2e0a:	50                   	push   %eax
4f2e0b:	8b 45 d0             	mov    -0x30(%ebp),%eax
4f2e0e:	50                   	push   %eax
4f2e0f:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4f2e12:	50                   	push   %eax
4f2e13:	8b 45 e0             	mov    -0x20(%ebp),%eax
4f2e16:	50                   	push   %eax
4f2e17:	8d 45 cc             	lea    -0x34(%ebp),%eax
4f2e1a:	50                   	push   %eax
4f2e1b:	8d 55 18             	lea    0x18(%ebp),%edx
4f2e1e:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4f2e21:	8b 4d 14             	mov    0x14(%ebp),%ecx
4f2e24:	e8 bf ef ff ff       	call   0x4f1de8
4f2e29:	84 c0                	test   %al,%al
4f2e2b:	0f 84 99 00 00 00    	je     0x4f2eca
4f2e31:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4f2e34:	8b 45 10             	mov    0x10(%ebp),%eax
4f2e37:	48                   	dec    %eax
4f2e38:	85 c0                	test   %eax,%eax
4f2e3a:	7c 50                	jl     0x4f2e8c
4f2e3c:	40                   	inc    %eax
4f2e3d:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f2e40:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
4f2e47:	33 c0                	xor    %eax,%eax
4f2e49:	8a 07                	mov    (%edi),%al
4f2e4b:	8d 04 40             	lea    (%eax,%eax,2),%eax
4f2e4e:	8b 53 44             	mov    0x44(%ebx),%edx
4f2e51:	66 8b 0c 02          	mov    (%edx,%eax,1),%cx
4f2e55:	66 89 0e             	mov    %cx,(%esi)
4f2e58:	8a 4c 02 02          	mov    0x2(%edx,%eax,1),%cl
4f2e5c:	88 4e 02             	mov    %cl,0x2(%esi)
4f2e5f:	47                   	inc    %edi
4f2e60:	33 c0                	xor    %eax,%eax
4f2e62:	8a 07                	mov    (%edi),%al
4f2e64:	ba ff 00 00 00       	mov    $0xff,%edx
4f2e69:	2b d0                	sub    %eax,%edx
4f2e6b:	52                   	push   %edx
4f2e6c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4f2e6f:	03 4d f8             	add    -0x8(%ebp),%ecx
4f2e72:	8b 83 7c 01 00 00    	mov    0x17c(%ebx),%eax
4f2e78:	8b 55 ec             	mov    -0x14(%ebp),%edx
4f2e7b:	e8 d8 fd 0f 00       	call   0x5f2c58
4f2e80:	47                   	inc    %edi
4f2e81:	83 c6 03             	add    $0x3,%esi
4f2e84:	ff 45 ec             	incl   -0x14(%ebp)
4f2e87:	ff 4d a4             	decl   -0x5c(%ebp)
4f2e8a:	75 bb                	jne    0x4f2e47
4f2e8c:	8b 45 08             	mov    0x8(%ebp),%eax
4f2e8f:	ff 40 0c             	incl   0xc(%eax)
4f2e92:	8b 45 08             	mov    0x8(%ebp),%eax
4f2e95:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
4f2e9a:	74 21                	je     0x4f2ebd
4f2e9c:	8b 45 08             	mov    0x8(%ebp),%eax
4f2e9f:	db 40 0c             	fildl  0xc(%eax)
4f2ea2:	8b 45 08             	mov    0x8(%ebp),%eax
4f2ea5:	dc 48 18             	fmull  0x18(%eax)
4f2ea8:	e8 1f fe f0 ff       	call   0x402ccc
4f2ead:	8b c8                	mov    %eax,%ecx
4f2eaf:	8b 75 08             	mov    0x8(%ebp),%esi
4f2eb2:	8b 55 08             	mov    0x8(%ebp),%edx
4f2eb5:	8b 52 08             	mov    0x8(%edx),%edx
4f2eb8:	8b 46 04             	mov    0x4(%esi),%eax
4f2ebb:	ff 16                	call   *(%esi)
4f2ebd:	8b 45 08             	mov    0x8(%ebp),%eax
4f2ec0:	8b 40 28             	mov    0x28(%eax),%eax
4f2ec3:	80 38 00             	cmpb   $0x0,(%eax)
4f2ec6:	75 19                	jne    0x4f2ee1
4f2ec8:	eb 0b                	jmp    0x4f2ed5
4f2eca:	8b 45 08             	mov    0x8(%ebp),%eax
4f2ecd:	8b 40 28             	mov    0x28(%eax),%eax
4f2ed0:	c6 00 01             	movb   $0x1,(%eax)
4f2ed3:	eb 0c                	jmp    0x4f2ee1
4f2ed5:	ff 45 f4             	incl   -0xc(%ebp)
4f2ed8:	ff 4d a8             	decl   -0x58(%ebp)
4f2edb:	0f 85 11 ff ff ff    	jne    0x4f2df2
4f2ee1:	66 83 7b 22 01       	cmpw   $0x1,0x22(%ebx)
4f2ee6:	0f 84 a2 0f 00 00    	je     0x4f3e8e
4f2eec:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4f2eef:	e8 d8 f8 f0 ff       	call   0x4027cc
4f2ef4:	e9 95 0f 00 00       	jmp    0x4f3e8e
4f2ef9:	66 83 7b 22 01       	cmpw   $0x1,0x22(%ebx)
4f2efe:	75 06                	jne    0x4f2f06
4f2f00:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
4f2f04:	7d 0b                	jge    0x4f2f11
4f2f06:	8b 45 10             	mov    0x10(%ebp),%eax
4f2f09:	e8 9e f8 f0 ff       	call   0x4027ac
4f2f0e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4f2f11:	8b 45 0c             	mov    0xc(%ebp),%eax
4f2f14:	48                   	dec    %eax
4f2f15:	85 c0                	test   %eax,%eax
4f2f17:	0f 8c f4 00 00 00    	jl     0x4f3011
4f2f1d:	40                   	inc    %eax
4f2f1e:	89 45 a8             	mov    %eax,-0x58(%ebp)
4f2f21:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4f2f28:	8b 55 f8             	mov    -0x8(%ebp),%edx
4f2f2b:	03 55 f4             	add    -0xc(%ebp),%edx
4f2f2e:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f2f31:	8b 08                	mov    (%eax),%ecx
4f2f33:	ff 11                	call   *(%ecx)
4f2f35:	8b f0                	mov    %eax,%esi
4f2f37:	8b 45 1c             	mov    0x1c(%ebp),%eax
4f2f3a:	01 c6                	add    %eax,%esi
4f2f3c:	53                   	push   %ebx
4f2f3d:	8b 45 10             	mov    0x10(%ebp),%eax
4f2f40:	50                   	push   %eax
4f2f41:	8b 45 d0             	mov    -0x30(%ebp),%eax
4f2f44:	50                   	push   %eax
4f2f45:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4f2f48:	50                   	push   %eax
4f2f49:	8b 45 e0             	mov    -0x20(%ebp),%eax
4f2f4c:	50                   	push   %eax
4f2f4d:	8d 45 cc             	lea    -0x34(%ebp),%eax
4f2f50:	50                   	push   %eax
4f2f51:	8d 55 18             	lea    0x18(%ebp),%edx
4f2f54:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4f2f57:	8b 4d 14             	mov    0x14(%ebp),%ecx
4f2f5a:	e8 89 ee ff ff       	call   0x4f1de8
4f2f5f:	84 c0                	test   %al,%al
4f2f61:	0f 84 93 00 00 00    	je     0x4f2ffa
4f2f67:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4f2f6a:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f2f6d:	8b 10                	mov    (%eax),%edx
4f2f6f:	ff 52 10             	call   *0x10(%edx)
4f2f72:	3c 02                	cmp    $0x2,%al
4f2f74:	75 19                	jne    0x4f2f8f
4f2f76:	8b 45 10             	mov    0x10(%ebp),%eax
4f2f79:	48                   	dec    %eax
4f2f7a:	85 c0                	test   %eax,%eax
4f2f7c:	7c 3e                	jl     0x4f2fbc
4f2f7e:	40                   	inc    %eax
4f2f7f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f2f82:	8a 07                	mov    (%edi),%al
4f2f84:	88 06                	mov    %al,(%esi)
4f2f86:	47                   	inc    %edi
4f2f87:	46                   	inc    %esi
4f2f88:	ff 4d a4             	decl   -0x5c(%ebp)
4f2f8b:	75 f5                	jne    0x4f2f82
4f2f8d:	eb 2d                	jmp    0x4f2fbc
4f2f8f:	8b 45 10             	mov    0x10(%ebp),%eax
4f2f92:	48                   	dec    %eax
4f2f93:	85 c0                	test   %eax,%eax
4f2f95:	7c 25                	jl     0x4f2fbc
4f2f97:	40                   	inc    %eax
4f2f98:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f2f9b:	33 c0                	xor    %eax,%eax
4f2f9d:	8a 07                	mov    (%edi),%al
4f2f9f:	8d 04 40             	lea    (%eax,%eax,2),%eax
4f2fa2:	8b 53 44             	mov    0x44(%ebx),%edx
4f2fa5:	66 8b 0c 02          	mov    (%edx,%eax,1),%cx
4f2fa9:	66 89 0e             	mov    %cx,(%esi)
4f2fac:	8a 4c 02 02          	mov    0x2(%edx,%eax,1),%cl
4f2fb0:	88 4e 02             	mov    %cl,0x2(%esi)
4f2fb3:	47                   	inc    %edi
4f2fb4:	83 c6 03             	add    $0x3,%esi
4f2fb7:	ff 4d a4             	decl   -0x5c(%ebp)
4f2fba:	75 df                	jne    0x4f2f9b
4f2fbc:	8b 45 08             	mov    0x8(%ebp),%eax
4f2fbf:	ff 40 0c             	incl   0xc(%eax)
4f2fc2:	8b 45 08             	mov    0x8(%ebp),%eax
4f2fc5:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
4f2fca:	74 21                	je     0x4f2fed
4f2fcc:	8b 45 08             	mov    0x8(%ebp),%eax
4f2fcf:	db 40 0c             	fildl  0xc(%eax)
4f2fd2:	8b 45 08             	mov    0x8(%ebp),%eax
4f2fd5:	dc 48 18             	fmull  0x18(%eax)
4f2fd8:	e8 ef fc f0 ff       	call   0x402ccc
4f2fdd:	8b c8                	mov    %eax,%ecx
4f2fdf:	8b 75 08             	mov    0x8(%ebp),%esi
4f2fe2:	8b 55 08             	mov    0x8(%ebp),%edx
4f2fe5:	8b 52 08             	mov    0x8(%edx),%edx
4f2fe8:	8b 46 04             	mov    0x4(%esi),%eax
4f2feb:	ff 16                	call   *(%esi)
4f2fed:	8b 45 08             	mov    0x8(%ebp),%eax
4f2ff0:	8b 40 28             	mov    0x28(%eax),%eax
4f2ff3:	80 38 00             	cmpb   $0x0,(%eax)
4f2ff6:	75 19                	jne    0x4f3011
4f2ff8:	eb 0b                	jmp    0x4f3005
4f2ffa:	8b 45 08             	mov    0x8(%ebp),%eax
4f2ffd:	8b 40 28             	mov    0x28(%eax),%eax
4f3000:	c6 00 01             	movb   $0x1,(%eax)
4f3003:	eb 0c                	jmp    0x4f3011
4f3005:	ff 45 f4             	incl   -0xc(%ebp)
4f3008:	ff 4d a8             	decl   -0x58(%ebp)
4f300b:	0f 85 17 ff ff ff    	jne    0x4f2f28
4f3011:	66 83 7b 22 01       	cmpw   $0x1,0x22(%ebx)
4f3016:	75 0a                	jne    0x4f3022
4f3018:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
4f301c:	0f 8d 6c 0e 00 00    	jge    0x4f3e8e
4f3022:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4f3025:	e8 a2 f7 f0 ff       	call   0x4027cc
4f302a:	e9 5f 0e 00 00       	jmp    0x4f3e8e
4f302f:	66 83 7b 1c 01       	cmpw   $0x1,0x1c(%ebx)
4f3034:	0f 87 83 01 00 00    	ja     0x4f31bd
4f303a:	83 7b 08 01          	cmpl   $0x1,0x8(%ebx)
4f303e:	0f 85 79 01 00 00    	jne    0x4f31bd
4f3044:	83 7b 0c 08          	cmpl   $0x8,0xc(%ebx)
4f3048:	74 0a                	je     0x4f3054
4f304a:	83 7b 0c 04          	cmpl   $0x4,0xc(%ebx)
4f304e:	0f 85 69 01 00 00    	jne    0x4f31bd
4f3054:	66 83 7b 22 01       	cmpw   $0x1,0x22(%ebx)
4f3059:	75 06                	jne    0x4f3061
4f305b:	83 7b 0c 04          	cmpl   $0x4,0xc(%ebx)
4f305f:	75 0b                	jne    0x4f306c
4f3061:	8b 45 10             	mov    0x10(%ebp),%eax
4f3064:	e8 43 f7 f0 ff       	call   0x4027ac
4f3069:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4f306c:	8b 45 0c             	mov    0xc(%ebp),%eax
4f306f:	48                   	dec    %eax
4f3070:	85 c0                	test   %eax,%eax
4f3072:	0f 8c 27 01 00 00    	jl     0x4f319f
4f3078:	40                   	inc    %eax
4f3079:	89 45 a8             	mov    %eax,-0x58(%ebp)
4f307c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4f3083:	8b 55 f8             	mov    -0x8(%ebp),%edx
4f3086:	03 55 f4             	add    -0xc(%ebp),%edx
4f3089:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f308c:	8b 08                	mov    (%eax),%ecx
4f308e:	ff 11                	call   *(%ecx)
4f3090:	8b f0                	mov    %eax,%esi
4f3092:	8b 45 1c             	mov    0x1c(%ebp),%eax
4f3095:	01 c6                	add    %eax,%esi
4f3097:	53                   	push   %ebx
4f3098:	8b 45 10             	mov    0x10(%ebp),%eax
4f309b:	50                   	push   %eax
4f309c:	8b 45 d0             	mov    -0x30(%ebp),%eax
4f309f:	50                   	push   %eax
4f30a0:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4f30a3:	50                   	push   %eax
4f30a4:	8b 45 e0             	mov    -0x20(%ebp),%eax
4f30a7:	50                   	push   %eax
4f30a8:	8d 45 cc             	lea    -0x34(%ebp),%eax
4f30ab:	50                   	push   %eax
4f30ac:	8d 55 18             	lea    0x18(%ebp),%edx
4f30af:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4f30b2:	8b 4d 14             	mov    0x14(%ebp),%ecx
4f30b5:	e8 2e ed ff ff       	call   0x4f1de8
4f30ba:	84 c0                	test   %al,%al
4f30bc:	0f 84 c6 00 00 00    	je     0x4f3188
4f30c2:	8b 7d e4             	mov    -0x1c(%ebp),%edi
4f30c5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4f30c8:	8b 10                	mov    (%eax),%edx
4f30ca:	ff 52 10             	call   *0x10(%edx)
4f30cd:	3c 03                	cmp    $0x3,%al
4f30cf:	75 19                	jne    0x4f30ea
4f30d1:	8b 45 10             	mov    0x10(%ebp),%eax
4f30d4:	48                   	dec    %eax
4f30d5:	85 c0                	test   %eax,%eax
4f30d7:	7c 71                	jl     0x4f314a
4f30d9:	40                   	inc    %eax
4f30da:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4f30dd:	8a 07                	mov    (%edi),%al
4f30df:	88 06                	mov    %al,(%esi)
4f30e1:	47                   	inc    %edi
4f30e2:	46                   	inc    %esi
4f30e3:	ff 4d a4             	decl   -0x5c(%ebp)
4f30e6:	75 f5                	jne    0x4f30dd
4f30e8:	eb 60                	jmp    0x4f314a
4f30ea:	66 83 7b 1c 00       	cmpw   $0x0,0x1c(%ebx)
4f30ef:	75 36                	jne    0x4f3127
4f30f1:	8b 45 10             	mov    0x10(%ebp),%eax
4f30f4:	48                   	dec    %eax
4f30f5:	85 c0                	test   %eax,%eax