409bcf:	50                   	push   %eax
409bd0:	ff 75 b4             	push   -0x4c(%ebp)
409bd3:	8d 45 e0             	lea    -0x20(%ebp),%eax
409bd6:	50                   	push   %eax
409bd7:	e8 c9 14 00 00       	call   0x40b0a5
409bdc:	8b 45 9c             	mov    -0x64(%ebp),%eax
409bdf:	33 d2                	xor    %edx,%edx
409be1:	83 c4 0c             	add    $0xc,%esp
409be4:	39 55 98             	cmp    %edx,-0x68(%ebp)
409be7:	7d 02                	jge    0x409beb
409be9:	f7 d8                	neg    %eax
409beb:	03 45 b0             	add    -0x50(%ebp),%eax
409bee:	39 55 a0             	cmp    %edx,-0x60(%ebp)
409bf1:	75 03                	jne    0x409bf6
409bf3:	03 45 18             	add    0x18(%ebp),%eax
409bf6:	39 55 a4             	cmp    %edx,-0x5c(%ebp)
409bf9:	75 03                	jne    0x409bfe
409bfb:	2b 45 1c             	sub    0x1c(%ebp),%eax
409bfe:	3d 50 14 00 00       	cmp    $0x1450,%eax
409c03:	0f 8f 22 03 00 00    	jg     0x409f2b
409c09:	3d b0 eb ff ff       	cmp    $0xffffebb0,%eax
409c0e:	0f 8c 2e 03 00 00    	jl     0x409f42
409c14:	b9 c0 fd 41 00       	mov    $0x41fdc0,%ecx
409c19:	83 e9 60             	sub    $0x60,%ecx
409c1c:	89 45 ac             	mov    %eax,-0x54(%ebp)
409c1f:	3b c2                	cmp    %edx,%eax
409c21:	0f 84 e9 02 00 00    	je     0x409f10
409c27:	7d 0d                	jge    0x409c36
409c29:	f7 d8                	neg    %eax
409c2b:	b9 20 ff 41 00       	mov    $0x41ff20,%ecx
409c30:	89 45 ac             	mov    %eax,-0x54(%ebp)
409c33:	83 e9 60             	sub    $0x60,%ecx
409c36:	39 55 14             	cmp    %edx,0x14(%ebp)
409c39:	75 06                	jne    0x409c41
409c3b:	33 c0                	xor    %eax,%eax
409c3d:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
409c41:	39 55 ac             	cmp    %edx,-0x54(%ebp)
409c44:	0f 84 c6 02 00 00    	je     0x409f10
409c4a:	eb 05                	jmp    0x409c51
409c4c:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
409c4f:	33 d2                	xor    %edx,%edx
409c51:	8b 45 ac             	mov    -0x54(%ebp),%eax
409c54:	c1 7d ac 03          	sarl   $0x3,-0x54(%ebp)
409c58:	83 c1 54             	add    $0x54,%ecx
409c5b:	83 e0 07             	and    $0x7,%eax
409c5e:	89 4d 84             	mov    %ecx,-0x7c(%ebp)
409c61:	3b c2                	cmp    %edx,%eax
409c63:	0f 84 9d 02 00 00    	je     0x409f06
409c69:	6b c0 0c             	imul   $0xc,%eax,%eax
409c6c:	03 c1                	add    %ecx,%eax
409c6e:	8b d8                	mov    %eax,%ebx
409c70:	b8 00 80 00 00       	mov    $0x8000,%eax
409c75:	66 39 03             	cmp    %ax,(%ebx)
409c78:	72 0e                	jb     0x409c88
409c7a:	8b f3                	mov    %ebx,%esi
409c7c:	8d 7d b8             	lea    -0x48(%ebp),%edi
409c7f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c80:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c81:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c82:	ff 4d ba             	decl   -0x46(%ebp)
409c85:	8d 5d b8             	lea    -0x48(%ebp),%ebx
409c88:	0f b7 4b 0a          	movzwl 0xa(%ebx),%ecx
409c8c:	33 c0                	xor    %eax,%eax
409c8e:	89 45 b0             	mov    %eax,-0x50(%ebp)
409c91:	89 45 d4             	mov    %eax,-0x2c(%ebp)
409c94:	89 45 d8             	mov    %eax,-0x28(%ebp)
409c97:	89 45 dc             	mov    %eax,-0x24(%ebp)
409c9a:	8b 45 ce             	mov    -0x32(%ebp),%eax
409c9d:	8b f1                	mov    %ecx,%esi
409c9f:	ba ff 7f 00 00       	mov    $0x7fff,%edx
409ca4:	33 f0                	xor    %eax,%esi
409ca6:	23 c2                	and    %edx,%eax
409ca8:	23 ca                	and    %edx,%ecx
409caa:	81 e6 00 80 00 00    	and    $0x8000,%esi
409cb0:	bf ff 7f 00 00       	mov    $0x7fff,%edi
409cb5:	8d 14 01             	lea    (%ecx,%eax,1),%edx
409cb8:	89 75 90             	mov    %esi,-0x70(%ebp)
409cbb:	0f b7 d2             	movzwl %dx,%edx
409cbe:	66 3b c7             	cmp    %di,%ax
409cc1:	0f 83 21 02 00 00    	jae    0x409ee8
409cc7:	66 3b cf             	cmp    %di,%cx
409cca:	0f 83 18 02 00 00    	jae    0x409ee8
409cd0:	bf fd bf 00 00       	mov    $0xbffd,%edi
409cd5:	66 3b d7             	cmp    %di,%dx
409cd8:	0f 87 0a 02 00 00    	ja     0x409ee8
409cde:	be bf 3f 00 00       	mov    $0x3fbf,%esi
409ce3:	66 3b d6             	cmp    %si,%dx
409ce6:	77 0d                	ja     0x409cf5
409ce8:	33 c0                	xor    %eax,%eax
409cea:	89 45 c8             	mov    %eax,-0x38(%ebp)
409ced:	89 45 c4             	mov    %eax,-0x3c(%ebp)
409cf0:	e9 0e 02 00 00       	jmp    0x409f03
409cf5:	33 f6                	xor    %esi,%esi
409cf7:	66 3b c6             	cmp    %si,%ax
409cfa:	75 1f                	jne    0x409d1b
409cfc:	42                   	inc    %edx
409cfd:	f7 45 cc ff ff ff 7f 	testl  $0x7fffffff,-0x34(%ebp)
409d04:	75 15                	jne    0x409d1b
409d06:	39 75 c8             	cmp    %esi,-0x38(%ebp)
409d09:	75 10                	jne    0x409d1b
409d0b:	39 75 c4             	cmp    %esi,-0x3c(%ebp)
409d0e:	75 0b                	jne    0x409d1b
409d10:	33 c0                	xor    %eax,%eax
409d12:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
409d16:	e9 eb 01 00 00       	jmp    0x409f06
409d1b:	66 3b ce             	cmp    %si,%cx
409d1e:	75 21                	jne    0x409d41
409d20:	42                   	inc    %edx
409d21:	f7 43 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ebx)
409d28:	75 17                	jne    0x409d41
409d2a:	39 73 04             	cmp    %esi,0x4(%ebx)
409d2d:	75 12                	jne    0x409d41
409d2f:	39 33                	cmp    %esi,(%ebx)
409d31:	75 0e                	jne    0x409d41
409d33:	89 75 cc             	mov    %esi,-0x34(%ebp)
409d36:	89 75 c8             	mov    %esi,-0x38(%ebp)
409d39:	89 75 c4             	mov    %esi,-0x3c(%ebp)
409d3c:	e9 c5 01 00 00       	jmp    0x409f06
409d41:	89 75 98             	mov    %esi,-0x68(%ebp)
409d44:	8d 7d d8             	lea    -0x28(%ebp),%edi
409d47:	c7 45 a8 05 00 00 00 	movl   $0x5,-0x58(%ebp)
409d4e:	8b 45 98             	mov    -0x68(%ebp),%eax
409d51:	8b 4d a8             	mov    -0x58(%ebp),%ecx
409d54:	03 c0                	add    %eax,%eax
409d56:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
409d59:	85 c9                	test   %ecx,%ecx
409d5b:	7e 52                	jle    0x409daf
409d5d:	8d 44 05 c4          	lea    -0x3c(%ebp,%eax,1),%eax
409d61:	89 45 a4             	mov    %eax,-0x5c(%ebp)
409d64:	8d 43 08             	lea    0x8(%ebx),%eax
409d67:	89 45 a0             	mov    %eax,-0x60(%ebp)
409d6a:	8b 45 a0             	mov    -0x60(%ebp),%eax
409d6d:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
409d70:	0f b7 09             	movzwl (%ecx),%ecx
409d73:	0f b7 00             	movzwl (%eax),%eax
409d76:	83 65 b4 00          	andl   $0x0,-0x4c(%ebp)
409d7a:	0f af c1             	imul   %ecx,%eax
409d7d:	8b 4f fc             	mov    -0x4(%edi),%ecx
409d80:	8d 34 01             	lea    (%ecx,%eax,1),%esi
409d83:	3b f1                	cmp    %ecx,%esi
409d85:	72 04                	jb     0x409d8b
409d87:	3b f0                	cmp    %eax,%esi
409d89:	73 07                	jae    0x409d92
409d8b:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
409d92:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
409d96:	89 77 fc             	mov    %esi,-0x4(%edi)
409d99:	74 03                	je     0x409d9e
409d9b:	66 ff 07             	incw   (%edi)
409d9e:	83 45 a4 02          	addl   $0x2,-0x5c(%ebp)
409da2:	83 6d a0 02          	subl   $0x2,-0x60(%ebp)
409da6:	ff 4d 9c             	decl   -0x64(%ebp)
409da9:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
409dad:	7f bb                	jg     0x409d6a
409daf:	47                   	inc    %edi
409db0:	47                   	inc    %edi
409db1:	ff 45 98             	incl   -0x68(%ebp)
409db4:	ff 4d a8             	decl   -0x58(%ebp)
409db7:	83 7d a8 00          	cmpl   $0x0,-0x58(%ebp)
409dbb:	7f 91                	jg     0x409d4e
409dbd:	81 c2 02 c0 00 00    	add    $0xc002,%edx
409dc3:	66 85 d2             	test   %dx,%dx
409dc6:	7e 37                	jle    0x409dff
409dc8:	8b 7d dc             	mov    -0x24(%ebp),%edi
409dcb:	85 ff                	test   %edi,%edi
409dcd:	78 2b                	js     0x409dfa
409dcf:	8b 75 d8             	mov    -0x28(%ebp),%esi
409dd2:	8b 45 d4             	mov    -0x2c(%ebp),%eax
409dd5:	d1 65 d4             	shll   $1,-0x2c(%ebp)
409dd8:	c1 e8 1f             	shr    $0x1f,%eax
409ddb:	8b ce                	mov    %esi,%ecx
409ddd:	03 f6                	add    %esi,%esi
409ddf:	0b f0                	or     %eax,%esi
409de1:	c1 e9 1f             	shr    $0x1f,%ecx
409de4:	8d 04 3f             	lea    (%edi,%edi,1),%eax
409de7:	0b c1                	or     %ecx,%eax
409de9:	81 c2 ff ff 00 00    	add    $0xffff,%edx
409def:	89 75 d8             	mov    %esi,-0x28(%ebp)
409df2:	89 45 dc             	mov    %eax,-0x24(%ebp)
409df5:	66 85 d2             	test   %dx,%dx
409df8:	7f ce                	jg     0x409dc8
409dfa:	66 85 d2             	test   %dx,%dx
409dfd:	7f 4d                	jg     0x409e4c
409dff:	81 c2 ff ff 00 00    	add    $0xffff,%edx
409e05:	66 85 d2             	test   %dx,%dx
409e08:	7d 42                	jge    0x409e4c
409e0a:	8b c2                	mov    %edx,%eax
409e0c:	f7 d8                	neg    %eax
409e0e:	0f b7 f0             	movzwl %ax,%esi
409e11:	03 d6                	add    %esi,%edx
409e13:	f6 45 d4 01          	testb  $0x1,-0x2c(%ebp)
409e17:	74 03                	je     0x409e1c
409e19:	ff 45 b0             	incl   -0x50(%ebp)
409e1c:	8b 45 dc             	mov    -0x24(%ebp),%eax
409e1f:	8b 7d d8             	mov    -0x28(%ebp),%edi
409e22:	8b 4d d8             	mov    -0x28(%ebp),%ecx
409e25:	d1 6d dc             	shrl   $1,-0x24(%ebp)
409e28:	c1 e0 1f             	shl    $0x1f,%eax
409e2b:	d1 ef                	shr    $1,%edi
409e2d:	0b f8                	or     %eax,%edi
409e2f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
409e32:	c1 e1 1f             	shl    $0x1f,%ecx
409e35:	d1 e8                	shr    $1,%eax
409e37:	0b c1                	or     %ecx,%eax
409e39:	4e                   	dec    %esi
409e3a:	89 7d d8             	mov    %edi,-0x28(%ebp)
409e3d:	89 45 d4             	mov    %eax,-0x2c(%ebp)
409e40:	75 d1                	jne    0x409e13
409e42:	39 75 b0             	cmp    %esi,-0x50(%ebp)
409e45:	74 05                	je     0x409e4c
409e47:	66 83 4d d4 01       	orw    $0x1,-0x2c(%ebp)
409e4c:	b8 00 80 00 00       	mov    $0x8000,%eax
409e51:	8b c8                	mov    %eax,%ecx
409e53:	66 39 4d d4          	cmp    %cx,-0x2c(%ebp)
409e57:	77 11                	ja     0x409e6a
409e59:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
409e5c:	81 e1 ff ff 01 00    	and    $0x1ffff,%ecx
409e62:	81 f9 00 80 01 00    	cmp    $0x18000,%ecx
409e68:	75 34                	jne    0x409e9e
409e6a:	83 7d d6 ff          	cmpl   $0xffffffff,-0x2a(%ebp)
409e6e:	75 2b                	jne    0x409e9b
409e70:	83 65 d6 00          	andl   $0x0,-0x2a(%ebp)
409e74:	83 7d da ff          	cmpl   $0xffffffff,-0x26(%ebp)
409e78:	75 1c                	jne    0x409e96
409e7a:	83 65 da 00          	andl   $0x0,-0x26(%ebp)
409e7e:	b9 ff ff 00 00       	mov    $0xffff,%ecx
409e83:	66 39 4d de          	cmp    %cx,-0x22(%ebp)
409e87:	75 07                	jne    0x409e90
409e89:	66 89 45 de          	mov    %ax,-0x22(%ebp)
409e8d:	42                   	inc    %edx
409e8e:	eb 0e                	jmp    0x409e9e
409e90:	66 ff 45 de          	incw   -0x22(%ebp)
409e94:	eb 08                	jmp    0x409e9e
409e96:	ff 45 da             	incl   -0x26(%ebp)
409e99:	eb 03                	jmp    0x409e9e
409e9b:	ff 45 d6             	incl   -0x2a(%ebp)
409e9e:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
409ea3:	66 3b d0             	cmp    %ax,%dx
409ea6:	72 23                	jb     0x409ecb
409ea8:	33 c0                	xor    %eax,%eax
409eaa:	33 c9                	xor    %ecx,%ecx
409eac:	66 39 45 90          	cmp    %ax,-0x70(%ebp)
409eb0:	89 45 c8             	mov    %eax,-0x38(%ebp)
409eb3:	0f 94 c1             	sete   %cl
409eb6:	89 45 c4             	mov    %eax,-0x3c(%ebp)
409eb9:	49                   	dec    %ecx
409eba:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
409ec0:	81 c1 00 80 ff 7f    	add    $0x7fff8000,%ecx
409ec6:	89 4d cc             	mov    %ecx,-0x34(%ebp)
409ec9:	eb 3b                	jmp    0x409f06
409ecb:	66 8b 45 d6          	mov    -0x2a(%ebp),%ax
409ecf:	0b 55 90             	or     -0x70(%ebp),%edx
409ed2:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
409ed6:	8b 45 d8             	mov    -0x28(%ebp),%eax
409ed9:	89 45 c6             	mov    %eax,-0x3a(%ebp)
409edc:	8b 45 dc             	mov    -0x24(%ebp),%eax
409edf:	89 45 ca             	mov    %eax,-0x36(%ebp)
409ee2:	66 89 55 ce          	mov    %dx,-0x32(%ebp)
409ee6:	eb 1e                	jmp    0x409f06
409ee8:	33 c0                	xor    %eax,%eax
409eea:	66 85 f6             	test   %si,%si
409eed:	0f 94 c0             	sete   %al
409ef0:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
409ef4:	48                   	dec    %eax
409ef5:	25 00 00 00 80       	and    $0x80000000,%eax
409efa:	05 00 80 ff 7f       	add    $0x7fff8000,%eax
409eff:	83 65 c4 00          	andl   $0x0,-0x3c(%ebp)
409f03:	89 45 cc             	mov    %eax,-0x34(%ebp)
409f06:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
409f0a:	0f 85 3c fd ff ff    	jne    0x409c4c
409f10:	8b 45 cc             	mov    -0x34(%ebp),%eax
409f13:	0f b7 4d c4          	movzwl -0x3c(%ebp),%ecx
409f17:	8b 75 c6             	mov    -0x3a(%ebp),%esi
409f1a:	8b 55 ca             	mov    -0x36(%ebp),%edx
409f1d:	c1 e8 10             	shr    $0x10,%eax
409f20:	eb 2f                	jmp    0x409f51
409f22:	c7 45 94 04 00 00 00 	movl   $0x4,-0x6c(%ebp)
409f29:	eb 1e                	jmp    0x409f49
409f2b:	33 f6                	xor    %esi,%esi
409f2d:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
409f32:	ba 00 00 00 80       	mov    $0x80000000,%edx
409f37:	33 c9                	xor    %ecx,%ecx
409f39:	c7 45 94 02 00 00 00 	movl   $0x2,-0x6c(%ebp)
409f40:	eb 0f                	jmp    0x409f51
409f42:	c7 45 94 01 00 00 00 	movl   $0x1,-0x6c(%ebp)
409f49:	33 c9                	xor    %ecx,%ecx
409f4b:	33 c0                	xor    %eax,%eax
409f4d:	33 d2                	xor    %edx,%edx
409f4f:	33 f6                	xor    %esi,%esi
409f51:	8b 7d 88             	mov    -0x78(%ebp),%edi
409f54:	0b 45 8c             	or     -0x74(%ebp),%eax
409f57:	66 89 0f             	mov    %cx,(%edi)
409f5a:	66 89 47 0a          	mov    %ax,0xa(%edi)
409f5e:	8b 45 94             	mov    -0x6c(%ebp),%eax
409f61:	89 77 02             	mov    %esi,0x2(%edi)
409f64:	89 57 06             	mov    %edx,0x6(%edi)
409f67:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409f6a:	5f                   	pop    %edi
409f6b:	5e                   	pop    %esi
409f6c:	33 cd                	xor    %ebp,%ecx
409f6e:	5b                   	pop    %ebx
409f6f:	e8 8c 70 ff ff       	call   0x401000
409f74:	c9                   	leave
409f75:	c3                   	ret
409f76:	90                   	nop
409f77:	49                   	dec    %ecx
409f78:	99                   	cltd
409f79:	40                   	inc    %eax
409f7a:	00 9d 99 40 00 f3    	add    %bl,-0xcffbf67(%ebp)
409f80:	99                   	cltd
409f81:	40                   	inc    %eax
409f82:	00 26                	add    %ah,(%esi)
409f84:	9a 40 00 6b 9a 40 00 	lcall  $0x40,$0x9a6b0040
409f8b:	a3 9a 40 00 b7       	mov    %eax,0xb700409a
409f90:	9a 40 00 12 9b 40 00 	lcall  $0x40,$0x9b120040
409f97:	fd                   	std
409f98:	9a 40 00 7c 9b 40 00 	lcall  $0x40,$0x9b7c0040
409f9f:	71 9b                	jno    0x409f3c
409fa1:	40                   	inc    %eax
409fa2:	00 20                	add    %ah,(%eax)
409fa4:	9b                   	fwait
409fa5:	40                   	inc    %eax
409fa6:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
409fac:	83 ec 74             	sub    $0x74,%esp
409faf:	a1 04 f0 41 00       	mov    0x41f004,%eax
409fb4:	33 c5                	xor    %ebp,%eax
409fb6:	89 45 fc             	mov    %eax,-0x4(%ebp)
409fb9:	53                   	push   %ebx
409fba:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
409fbd:	56                   	push   %esi
409fbe:	57                   	push   %edi
409fbf:	8d 75 08             	lea    0x8(%ebp),%esi
409fc2:	8d 7d f0             	lea    -0x10(%ebp),%edi
409fc5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409fc6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409fc7:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
409fc9:	8b 55 f8             	mov    -0x8(%ebp),%edx
409fcc:	8b ca                	mov    %edx,%ecx
409fce:	b8 00 80 00 00       	mov    $0x8000,%eax
409fd3:	23 c8                	and    %eax,%ecx
409fd5:	81 e2 ff 7f 00 00    	and    $0x7fff,%edx
409fdb:	89 5d a0             	mov    %ebx,-0x60(%ebp)
409fde:	c6 45 d0 cc          	movb   $0xcc,-0x30(%ebp)
409fe2:	c6 45 d1 cc          	movb   $0xcc,-0x2f(%ebp)
409fe6:	c6 45 d2 cc          	movb   $0xcc,-0x2e(%ebp)
409fea:	c6 45 d3 cc          	movb   $0xcc,-0x2d(%ebp)
409fee:	c6 45 d4 cc          	movb   $0xcc,-0x2c(%ebp)
409ff2:	c6 45 d5 cc          	movb   $0xcc,-0x2b(%ebp)
409ff6:	c6 45 d6 cc          	movb   $0xcc,-0x2a(%ebp)
409ffa:	c6 45 d7 cc          	movb   $0xcc,-0x29(%ebp)
409ffe:	c6 45 d8 cc          	movb   $0xcc,-0x28(%ebp)