406c6d:	55                   	push   %ebp
406c6e:	8b ec                	mov    %esp,%ebp
406c70:	6a 00                	push   $0x0
406c72:	ff 75 1c             	push   0x1c(%ebp)
406c75:	ff 75 18             	push   0x18(%ebp)
406c78:	ff 75 14             	push   0x14(%ebp)
406c7b:	ff 75 10             	push   0x10(%ebp)
406c7e:	ff 75 0c             	push   0xc(%ebp)
406c81:	ff 75 08             	push   0x8(%ebp)
406c84:	e8 5a ff ff ff       	call   0x406be3
406c89:	83 c4 1c             	add    $0x1c,%esp
406c8c:	5d                   	pop    %ebp
406c8d:	c3                   	ret
406c8e:	8b ff                	mov    %edi,%edi
406c90:	56                   	push   %esi
406c91:	68 00 00 03 00       	push   $0x30000
406c96:	68 00 00 01 00       	push   $0x10000
406c9b:	33 f6                	xor    %esi,%esi
406c9d:	56                   	push   %esi
406c9e:	e8 fc 1c 00 00       	call   0x40899f
406ca3:	83 c4 0c             	add    $0xc,%esp
406ca6:	85 c0                	test   %eax,%eax
406ca8:	74 0d                	je     0x406cb7
406caa:	56                   	push   %esi
406cab:	56                   	push   %esi
406cac:	56                   	push   %esi
406cad:	56                   	push   %esi
406cae:	56                   	push   %esi
406caf:	e8 65 ce ff ff       	call   0x403b19
406cb4:	83 c4 14             	add    $0x14,%esp
406cb7:	5e                   	pop    %esi
406cb8:	c3                   	ret
406cb9:	8b ff                	mov    %edi,%edi
406cbb:	55                   	push   %ebp
406cbc:	8b ec                	mov    %esp,%ebp
406cbe:	83 ec 18             	sub    $0x18,%esp
406cc1:	dd 05 08 db 41 00    	fldl   0x41db08
406cc7:	dd 5d f0             	fstpl  -0x10(%ebp)
406cca:	dd 05 00 db 41 00    	fldl   0x41db00
406cd0:	dd 5d e8             	fstpl  -0x18(%ebp)
406cd3:	dd 45 e8             	fldl   -0x18(%ebp)
406cd6:	dc 75 f0             	fdivl  -0x10(%ebp)
406cd9:	dc 4d f0             	fmull  -0x10(%ebp)
406cdc:	dc 6d e8             	fsubrl -0x18(%ebp)
406cdf:	dd 5d f8             	fstpl  -0x8(%ebp)
406ce2:	d9 e8                	fld1
406ce4:	dc 5d f8             	fcompl -0x8(%ebp)
406ce7:	df e0                	fnstsw %ax
406ce9:	f6 c4 05             	test   $0x5,%ah
406cec:	7a 05                	jp     0x406cf3
406cee:	33 c0                	xor    %eax,%eax
406cf0:	40                   	inc    %eax
406cf1:	c9                   	leave
406cf2:	c3                   	ret
406cf3:	33 c0                	xor    %eax,%eax
406cf5:	c9                   	leave
406cf6:	c3                   	ret
406cf7:	68 2c db 41 00       	push   $0x41db2c
406cfc:	ff 15 10 d1 41 00    	call   *0x41d110
406d02:	85 c0                	test   %eax,%eax
406d04:	74 15                	je     0x406d1b
406d06:	68 10 db 41 00       	push   $0x41db10
406d0b:	50                   	push   %eax
406d0c:	ff 15 20 d0 41 00    	call   *0x41d020
406d12:	85 c0                	test   %eax,%eax
406d14:	74 05                	je     0x406d1b
406d16:	6a 00                	push   $0x0
406d18:	ff d0                	call   *%eax
406d1a:	c3                   	ret
406d1b:	e9 99 ff ff ff       	jmp    0x406cb9
406d20:	8b ff                	mov    %edi,%edi
406d22:	55                   	push   %ebp
406d23:	8b ec                	mov    %esp,%ebp
406d25:	81 ec 28 03 00 00    	sub    $0x328,%esp
406d2b:	a1 04 f0 41 00       	mov    0x41f004,%eax
406d30:	33 c5                	xor    %ebp,%eax
406d32:	89 45 fc             	mov    %eax,-0x4(%ebp)
406d35:	f6 05 48 fb 41 00 01 	testb  $0x1,0x41fb48
406d3c:	56                   	push   %esi
406d3d:	74 08                	je     0x406d47
406d3f:	6a 0a                	push   $0xa
406d41:	e8 bf ad ff ff       	call   0x401b05
406d46:	59                   	pop    %ecx
406d47:	e8 26 d2 ff ff       	call   0x403f72
406d4c:	85 c0                	test   %eax,%eax
406d4e:	74 08                	je     0x406d58
406d50:	6a 16                	push   $0x16
406d52:	e8 28 d2 ff ff       	call   0x403f7f
406d57:	59                   	pop    %ecx
406d58:	f6 05 48 fb 41 00 02 	testb  $0x2,0x41fb48
406d5f:	0f 84 ca 00 00 00    	je     0x406e2f
406d65:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
406d6b:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
406d71:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
406d77:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
406d7d:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
406d83:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
406d89:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
406d90:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
406d97:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
406d9e:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
406da5:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
406dac:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
406db3:	9c                   	pushf
406db4:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
406dba:	8b 75 04             	mov    0x4(%ebp),%esi
406dbd:	8d 45 04             	lea    0x4(%ebp),%eax
406dc0:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
406dc6:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
406dcd:	00 01 00
406dd0:	89 b5 e8 fd ff ff    	mov    %esi,-0x218(%ebp)
406dd6:	8b 40 fc             	mov    -0x4(%eax),%eax
406dd9:	6a 50                	push   $0x50
406ddb:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
406de1:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
406de7:	6a 00                	push   $0x0
406de9:	50                   	push   %eax
406dea:	e8 51 00 00 00       	call   0x406e40
406def:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
406df5:	83 c4 0c             	add    $0xc,%esp
406df8:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
406dfe:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
406e04:	6a 00                	push   $0x0
406e06:	c7 85 d8 fc ff ff 15 	movl   $0x40000015,-0x328(%ebp)
406e0d:	00 00 40
406e10:	89 b5 e4 fc ff ff    	mov    %esi,-0x31c(%ebp)
406e16:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
406e1c:	ff 15 74 d0 41 00    	call   *0x41d074
406e22:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
406e28:	50                   	push   %eax
406e29:	ff 15 70 d0 41 00    	call   *0x41d070
406e2f:	6a 03                	push   $0x3
406e31:	e8 4d ac ff ff       	call   0x401a83
406e36:	cc                   	int3
406e37:	cc                   	int3
406e38:	cc                   	int3
406e39:	cc                   	int3
406e3a:	cc                   	int3
406e3b:	cc                   	int3
406e3c:	cc                   	int3
406e3d:	cc                   	int3
406e3e:	cc                   	int3
406e3f:	cc                   	int3
406e40:	8b 54 24 0c          	mov    0xc(%esp),%edx
406e44:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406e48:	85 d2                	test   %edx,%edx
406e4a:	74 69                	je     0x406eb5
406e4c:	33 c0                	xor    %eax,%eax
406e4e:	8a 44 24 08          	mov    0x8(%esp),%al
406e52:	84 c0                	test   %al,%al
406e54:	75 16                	jne    0x406e6c
406e56:	81 fa 00 01 00 00    	cmp    $0x100,%edx
406e5c:	72 0e                	jb     0x406e6c
406e5e:	83 3d b8 2e de 02 00 	cmpl   $0x0,0x2de2eb8
406e65:	74 05                	je     0x406e6c
406e67:	e9 f6 1b 00 00       	jmp    0x408a62
406e6c:	57                   	push   %edi
406e6d:	8b f9                	mov    %ecx,%edi
406e6f:	83 fa 04             	cmp    $0x4,%edx
406e72:	72 31                	jb     0x406ea5
406e74:	f7 d9                	neg    %ecx
406e76:	83 e1 03             	and    $0x3,%ecx
406e79:	74 0c                	je     0x406e87
406e7b:	2b d1                	sub    %ecx,%edx
406e7d:	88 07                	mov    %al,(%edi)
406e7f:	83 c7 01             	add    $0x1,%edi
406e82:	83 e9 01             	sub    $0x1,%ecx
406e85:	75 f6                	jne    0x406e7d
406e87:	8b c8                	mov    %eax,%ecx
406e89:	c1 e0 08             	shl    $0x8,%eax
406e8c:	03 c1                	add    %ecx,%eax
406e8e:	8b c8                	mov    %eax,%ecx
406e90:	c1 e0 10             	shl    $0x10,%eax
406e93:	03 c1                	add    %ecx,%eax
406e95:	8b ca                	mov    %edx,%ecx
406e97:	83 e2 03             	and    $0x3,%edx
406e9a:	c1 e9 02             	shr    $0x2,%ecx
406e9d:	74 06                	je     0x406ea5
406e9f:	f3 ab                	rep stos %eax,%es:(%edi)
406ea1:	85 d2                	test   %edx,%edx
406ea3:	74 0a                	je     0x406eaf
406ea5:	88 07                	mov    %al,(%edi)
406ea7:	83 c7 01             	add    $0x1,%edi
406eaa:	83 ea 01             	sub    $0x1,%edx
406ead:	75 f6                	jne    0x406ea5
406eaf:	8b 44 24 08          	mov    0x8(%esp),%eax
406eb3:	5f                   	pop    %edi
406eb4:	c3                   	ret
406eb5:	8b 44 24 04          	mov    0x4(%esp),%eax
406eb9:	c3                   	ret
406eba:	6a 10                	push   $0x10
406ebc:	68 28 e8 41 00       	push   $0x41e828
406ec1:	e8 ba bc ff ff       	call   0x402b80
406ec6:	33 c0                	xor    %eax,%eax
406ec8:	8b 5d 08             	mov    0x8(%ebp),%ebx
406ecb:	33 ff                	xor    %edi,%edi
406ecd:	3b df                	cmp    %edi,%ebx
406ecf:	0f 95 c0             	setne  %al
406ed2:	3b c7                	cmp    %edi,%eax
406ed4:	75 1d                	jne    0x406ef3
406ed6:	e8 71 bf ff ff       	call   0x402e4c
406edb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
406ee1:	57                   	push   %edi
406ee2:	57                   	push   %edi
406ee3:	57                   	push   %edi
406ee4:	57                   	push   %edi
406ee5:	57                   	push   %edi
406ee6:	e8 56 cd ff ff       	call   0x403c41
406eeb:	83 c4 14             	add    $0x14,%esp
406eee:	83 c8 ff             	or     $0xffffffff,%eax
406ef1:	eb 53                	jmp    0x406f46
406ef3:	83 3d 98 2d de 02 03 	cmpl   $0x3,0x2de2d98
406efa:	75 38                	jne    0x406f34
406efc:	6a 04                	push   $0x4
406efe:	e8 d4 cb ff ff       	call   0x403ad7
406f03:	59                   	pop    %ecx
406f04:	89 7d fc             	mov    %edi,-0x4(%ebp)
406f07:	53                   	push   %ebx
406f08:	e8 8d e6 ff ff       	call   0x40559a
406f0d:	59                   	pop    %ecx
406f0e:	89 45 e0             	mov    %eax,-0x20(%ebp)
406f11:	3b c7                	cmp    %edi,%eax
406f13:	74 0b                	je     0x406f20
406f15:	8b 73 fc             	mov    -0x4(%ebx),%esi
406f18:	83 ee 09             	sub    $0x9,%esi
406f1b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406f1e:	eb 03                	jmp    0x406f23
406f20:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406f23:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406f2a:	e8 25 00 00 00       	call   0x406f54
406f2f:	39 7d e0             	cmp    %edi,-0x20(%ebp)
406f32:	75 10                	jne    0x406f44
406f34:	53                   	push   %ebx
406f35:	57                   	push   %edi
406f36:	ff 35 24 0e 43 00    	push   0x430e24
406f3c:	ff 15 14 d1 41 00    	call   *0x41d114
406f42:	8b f0                	mov    %eax,%esi
406f44:	8b c6                	mov    %esi,%eax
406f46:	e8 7a bc ff ff       	call   0x402bc5
406f4b:	c3                   	ret
406f4c:	33 ff                	xor    %edi,%edi
406f4e:	8b 5d 08             	mov    0x8(%ebp),%ebx
406f51:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406f54:	6a 04                	push   $0x4
406f56:	e8 a2 ca ff ff       	call   0x4039fd
406f5b:	59                   	pop    %ecx
406f5c:	c3                   	ret
406f5d:	6a 02                	push   $0x2
406f5f:	e8 99 a8 ff ff       	call   0x4017fd
406f64:	59                   	pop    %ecx
406f65:	c3                   	ret
406f66:	8b ff                	mov    %edi,%edi
406f68:	55                   	push   %ebp
406f69:	8b ec                	mov    %esp,%ebp
406f6b:	83 ec 10             	sub    $0x10,%esp
406f6e:	ff 75 0c             	push   0xc(%ebp)
406f71:	8d 4d f0             	lea    -0x10(%ebp),%ecx
406f74:	e8 55 d6 ff ff       	call   0x4045ce
406f79:	8b 45 f0             	mov    -0x10(%ebp),%eax
406f7c:	83 b8 ac 00 00 00 01 	cmpl   $0x1,0xac(%eax)
406f83:	7e 13                	jle    0x406f98
406f85:	8d 45 f0             	lea    -0x10(%ebp),%eax
406f88:	50                   	push   %eax
406f89:	6a 04                	push   $0x4
406f8b:	ff 75 08             	push   0x8(%ebp)
406f8e:	e8 5e 1b 00 00       	call   0x408af1
406f93:	83 c4 0c             	add    $0xc,%esp
406f96:	eb 10                	jmp    0x406fa8
406f98:	8b 80 c8 00 00 00    	mov    0xc8(%eax),%eax
406f9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
406fa1:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
406fa5:	83 e0 04             	and    $0x4,%eax
406fa8:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
406fac:	74 07                	je     0x406fb5
406fae:	8b 4d f8             	mov    -0x8(%ebp),%ecx
406fb1:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
406fb5:	c9                   	leave
406fb6:	c3                   	ret
406fb7:	8b ff                	mov    %edi,%edi
406fb9:	55                   	push   %ebp
406fba:	8b ec                	mov    %esp,%ebp
406fbc:	83 3d ec 0f 43 00 00 	cmpl   $0x0,0x430fec
406fc3:	75 12                	jne    0x406fd7
406fc5:	8b 45 08             	mov    0x8(%ebp),%eax
406fc8:	8b 0d 28 fb 41 00    	mov    0x41fb28,%ecx
406fce:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
406fd2:	83 e0 04             	and    $0x4,%eax
406fd5:	5d                   	pop    %ebp
406fd6:	c3                   	ret
406fd7:	6a 00                	push   $0x0
406fd9:	ff 75 08             	push   0x8(%ebp)
406fdc:	e8 85 ff ff ff       	call   0x406f66
406fe1:	59                   	pop    %ecx
406fe2:	59                   	pop    %ecx
406fe3:	5d                   	pop    %ebp
406fe4:	c3                   	ret
406fe5:	8b ff                	mov    %edi,%edi
406fe7:	55                   	push   %ebp
406fe8:	8b ec                	mov    %esp,%ebp
406fea:	8b 45 08             	mov    0x8(%ebp),%eax
406fed:	85 c0                	test   %eax,%eax
406fef:	74 12                	je     0x407003
406ff1:	83 e8 08             	sub    $0x8,%eax
406ff4:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
406ffa:	75 07                	jne    0x407003
406ffc:	50                   	push   %eax
406ffd:	e8 a1 dd ff ff       	call   0x404da3
407002:	59                   	pop    %ecx
407003:	5d                   	pop    %ebp
407004:	c3                   	ret
407005:	8b ff                	mov    %edi,%edi
407007:	55                   	push   %ebp
407008:	8b ec                	mov    %esp,%ebp
40700a:	83 ec 14             	sub    $0x14,%esp
40700d:	a1 04 f0 41 00       	mov    0x41f004,%eax
407012:	33 c5                	xor    %ebp,%eax
407014:	89 45 fc             	mov    %eax,-0x4(%ebp)
407017:	53                   	push   %ebx
407018:	56                   	push   %esi
407019:	33 db                	xor    %ebx,%ebx
40701b:	57                   	push   %edi
40701c:	8b f1                	mov    %ecx,%esi
40701e:	39 1d 14 10 43 00    	cmp    %ebx,0x431014
407024:	75 38                	jne    0x40705e
407026:	53                   	push   %ebx
407027:	53                   	push   %ebx
407028:	33 ff                	xor    %edi,%edi
40702a:	47                   	inc    %edi
40702b:	57                   	push   %edi
40702c:	68 38 db 41 00       	push   $0x41db38
407031:	68 00 01 00 00       	push   $0x100
407036:	53                   	push   %ebx
407037:	ff 15 3c d0 41 00    	call   *0x41d03c
40703d:	85 c0                	test   %eax,%eax
40703f:	74 08                	je     0x407049
407041:	89 3d 14 10 43 00    	mov    %edi,0x431014
407047:	eb 15                	jmp    0x40705e
407049:	ff 15 58 d0 41 00    	call   *0x41d058
40704f:	83 f8 78             	cmp    $0x78,%eax
407052:	75 0a                	jne    0x40705e
407054:	c7 05 14 10 43 00 02 	movl   $0x2,0x431014
40705b:	00 00 00
40705e:	39 5d 14             	cmp    %ebx,0x14(%ebp)
407061:	7e 22                	jle    0x407085
407063:	8b 4d 14             	mov    0x14(%ebp),%ecx
407066:	8b 45 10             	mov    0x10(%ebp),%eax
407069:	49                   	dec    %ecx
40706a:	38 18                	cmp    %bl,(%eax)
40706c:	74 08                	je     0x407076
40706e:	40                   	inc    %eax