409bc9:	88 45 f2             	mov    %al,-0xe(%ebp)
409bcc:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
409bd3:	b8 13 00 00 00       	mov    $0x13,%eax
409bd8:	80 f9 00             	cmp    $0x0,%cl
409bdb:	75 17                	jne    0x409bf4
409bdd:	8b 45 0c             	mov    0xc(%ebp),%eax
409be0:	83 f8 02             	cmp    $0x2,%eax
409be3:	7d 05                	jge    0x409bea
409be5:	b8 02 00 00 00       	mov    $0x2,%eax
409bea:	83 f8 12             	cmp    $0x12,%eax
409bed:	7e 05                	jle    0x409bf4
409bef:	b8 12 00 00 00       	mov    $0x12,%eax
409bf4:	89 45 0c             	mov    %eax,0xc(%ebp)
409bf7:	50                   	push   %eax
409bf8:	b8 0f 27 00 00       	mov    $0x270f,%eax
409bfd:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
409c01:	72 03                	jb     0x409c06
409c03:	8b 45 08             	mov    0x8(%ebp),%eax
409c06:	50                   	push   %eax
409c07:	8d 45 d4             	lea    -0x2c(%ebp),%eax
409c0a:	e8 5d 02 00 00       	call   0x409e6c
409c0f:	8b 7d fc             	mov    -0x4(%ebp),%edi
409c12:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
409c16:	2d ff 7f 00 00       	sub    $0x7fff,%eax
409c1b:	83 f8 02             	cmp    $0x2,%eax
409c1e:	73 1a                	jae    0x409c3a
409c20:	89 c1                	mov    %eax,%ecx
409c22:	e8 70 00 00 00       	call   0x409c97
409c27:	8d b4 49 88 9c 40 00 	lea    0x409c88(%ecx,%ecx,2),%esi
409c2e:	03 75 ec             	add    -0x14(%ebp),%esi
409c31:	b9 03 00 00 00       	mov    $0x3,%ecx
409c36:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409c38:	eb 2d                	jmp    0x409c67
409c3a:	8d 75 d7             	lea    -0x29(%ebp),%esi
409c3d:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
409c41:	80 fb 01             	cmp    $0x1,%bl
409c44:	74 10                	je     0x409c56
409c46:	80 fb 04             	cmp    $0x4,%bl
409c49:	77 09                	ja     0x409c54
409c4b:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
409c4f:	3b 45 0c             	cmp    0xc(%ebp),%eax
409c52:	7e 02                	jle    0x409c56
409c54:	b3 00                	mov    $0x0,%bl
409c56:	8d 1c 9d 74 9c 40 00 	lea    0x409c74(,%ebx,4),%ebx
409c5d:	03 5d ec             	add    -0x14(%ebp),%ebx
409c60:	8b 1b                	mov    (%ebx),%ebx
409c62:	03 5d ec             	add    -0x14(%ebp),%ebx
409c65:	ff d3                	call   *%ebx
409c67:	89 f8                	mov    %edi,%eax
409c69:	2b 45 fc             	sub    -0x4(%ebp),%eax
409c6c:	5b                   	pop    %ebx
409c6d:	5e                   	pop    %esi
409c6e:	5f                   	pop    %edi
409c6f:	e9 f1 01 00 00       	jmp    0x409e65
409c74:	a1 9c 40 00 fd       	mov    0xfd00409c,%eax
409c79:	9c                   	pushf
409c7a:	40                   	inc    %eax
409c7b:	00 34 9d 40 00 34 9d 	add    %dh,-0x62cbffc0(,%ebx,4)
409c82:	40                   	inc    %eax
409c83:	00 9e 9d 40 00 49    	add    %bl,0x4900409d(%esi)
409c89:	4e                   	dec    %esi
409c8a:	46                   	inc    %esi
409c8b:	4e                   	dec    %esi
409c8c:	41                   	inc    %ecx
409c8d:	4e                   	dec    %esi
409c8e:	ac                   	lods   %ds:(%esi),%al
409c8f:	08 c0                	or     %al,%al
409c91:	75 03                	jne    0x409c96
409c93:	b0 30                	mov    $0x30,%al
409c95:	4e                   	dec    %esi
409c96:	c3                   	ret
409c97:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409c9b:	74 03                	je     0x409ca0
409c9d:	b0 2d                	mov    $0x2d,%al
409c9f:	aa                   	stos   %al,%es:(%edi)
409ca0:	c3                   	ret
409ca1:	e8 f1 ff ff ff       	call   0x409c97
409ca6:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
409caa:	31 d2                	xor    %edx,%edx
409cac:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
409caf:	7f 1d                	jg     0x409cce
409cb1:	83 f9 fd             	cmp    $0xfffffffd,%ecx
409cb4:	7c 18                	jl     0x409cce
409cb6:	09 c9                	or     %ecx,%ecx
409cb8:	7f 1a                	jg     0x409cd4
409cba:	b0 30                	mov    $0x30,%al
409cbc:	aa                   	stos   %al,%es:(%edi)
409cbd:	80 3e 00             	cmpb   $0x0,(%esi)
409cc0:	74 3a                	je     0x409cfc
409cc2:	8a 45 fb             	mov    -0x5(%ebp),%al
409cc5:	aa                   	stos   %al,%es:(%edi)
409cc6:	f7 d9                	neg    %ecx
409cc8:	b0 30                	mov    $0x30,%al
409cca:	f3 aa                	rep stos %al,%es:(%edi)
409ccc:	eb 1a                	jmp    0x409ce8
409cce:	b9 01 00 00 00       	mov    $0x1,%ecx
409cd3:	42                   	inc    %edx
409cd4:	ac                   	lods   %ds:(%esi),%al
409cd5:	08 c0                	or     %al,%al
409cd7:	74 17                	je     0x409cf0
409cd9:	aa                   	stos   %al,%es:(%edi)
409cda:	e2 f8                	loop   0x409cd4
409cdc:	ac                   	lods   %ds:(%esi),%al
409cdd:	08 c0                	or     %al,%al
409cdf:	74 13                	je     0x409cf4
409ce1:	88 c4                	mov    %al,%ah
409ce3:	8a 45 fb             	mov    -0x5(%ebp),%al
409ce6:	66 ab                	stos   %ax,%es:(%edi)
409ce8:	ac                   	lods   %ds:(%esi),%al
409ce9:	08 c0                	or     %al,%al
409ceb:	74 07                	je     0x409cf4
409ced:	aa                   	stos   %al,%es:(%edi)
409cee:	eb f8                	jmp    0x409ce8
409cf0:	b0 30                	mov    $0x30,%al
409cf2:	f3 aa                	rep stos %al,%es:(%edi)
409cf4:	09 d2                	or     %edx,%edx
409cf6:	74 04                	je     0x409cfc
409cf8:	31 c0                	xor    %eax,%eax
409cfa:	eb 1e                	jmp    0x409d1a
409cfc:	c3                   	ret
409cfd:	e8 95 ff ff ff       	call   0x409c97
409d02:	e8 87 ff ff ff       	call   0x409c8e
409d07:	8a 65 fb             	mov    -0x5(%ebp),%ah
409d0a:	66 ab                	stos   %ax,%es:(%edi)
409d0c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409d0f:	49                   	dec    %ecx
409d10:	e8 79 ff ff ff       	call   0x409c8e
409d15:	aa                   	stos   %al,%es:(%edi)
409d16:	e2 f8                	loop   0x409d10
409d18:	b4 2b                	mov    $0x2b,%ah
409d1a:	8b 4d 08             	mov    0x8(%ebp),%ecx
409d1d:	83 f9 04             	cmp    $0x4,%ecx
409d20:	76 02                	jbe    0x409d24
409d22:	31 c9                	xor    %ecx,%ecx
409d24:	b0 45                	mov    $0x45,%al
409d26:	8a 5d d7             	mov    -0x29(%ebp),%bl
409d29:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
409d2d:	4a                   	dec    %edx
409d2e:	e8 21 fe ff ff       	call   0x409b54
409d33:	c3                   	ret
409d34:	e8 5e ff ff ff       	call   0x409c97
409d39:	8b 55 08             	mov    0x8(%ebp),%edx
409d3c:	83 fa 12             	cmp    $0x12,%edx
409d3f:	72 05                	jb     0x409d46
409d41:	ba 12 00 00 00       	mov    $0x12,%edx
409d46:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
409d4a:	09 c9                	or     %ecx,%ecx
409d4c:	7f 05                	jg     0x409d53
409d4e:	b0 30                	mov    $0x30,%al
409d50:	aa                   	stos   %al,%es:(%edi)
409d51:	eb 2a                	jmp    0x409d7d
409d53:	31 db                	xor    %ebx,%ebx
409d55:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
409d59:	74 0a                	je     0x409d65
409d5b:	89 c8                	mov    %ecx,%eax
409d5d:	48                   	dec    %eax
409d5e:	b3 03                	mov    $0x3,%bl
409d60:	f6 f3                	div    %bl
409d62:	88 e3                	mov    %ah,%bl
409d64:	43                   	inc    %ebx
409d65:	e8 24 ff ff ff       	call   0x409c8e
409d6a:	aa                   	stos   %al,%es:(%edi)
409d6b:	49                   	dec    %ecx
409d6c:	74 0f                	je     0x409d7d
409d6e:	4b                   	dec    %ebx
409d6f:	75 f4                	jne    0x409d65
409d71:	8a 45 fa             	mov    -0x6(%ebp),%al
409d74:	84 c0                	test   %al,%al
409d76:	74 ed                	je     0x409d65
409d78:	aa                   	stos   %al,%es:(%edi)
409d79:	b3 03                	mov    $0x3,%bl
409d7b:	eb e8                	jmp    0x409d65
409d7d:	09 d2                	or     %edx,%edx
409d7f:	74 1c                	je     0x409d9d
409d81:	8a 45 fb             	mov    -0x5(%ebp),%al
409d84:	84 c0                	test   %al,%al
409d86:	74 01                	je     0x409d89
409d88:	aa                   	stos   %al,%es:(%edi)
409d89:	e3 09                	jecxz  0x409d94
409d8b:	b0 30                	mov    $0x30,%al
409d8d:	aa                   	stos   %al,%es:(%edi)
409d8e:	4a                   	dec    %edx
409d8f:	74 0c                	je     0x409d9d
409d91:	41                   	inc    %ecx
409d92:	75 f9                	jne    0x409d8d
409d94:	e8 f5 fe ff ff       	call   0x409c8e
409d99:	aa                   	stos   %al,%es:(%edi)
409d9a:	4a                   	dec    %edx
409d9b:	75 f7                	jne    0x409d94
409d9d:	c3                   	ret
409d9e:	31 db                	xor    %ebx,%ebx
409da0:	8a 5d f3             	mov    -0xd(%ebp),%bl
409da3:	b9 03 00 00 00       	mov    $0x3,%ecx
409da8:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409dac:	74 08                	je     0x409db6
409dae:	8a 5d f2             	mov    -0xe(%ebp),%bl
409db1:	b9 0f 04 00 00       	mov    $0x40f,%ecx
409db6:	38 cb                	cmp    %cl,%bl
409db8:	76 02                	jbe    0x409dbc
409dba:	88 cb                	mov    %cl,%bl
409dbc:	00 eb                	add    %ch,%bl
409dbe:	8d 9c 9b 01 9e 40 00 	lea    0x409e01(%ebx,%ebx,4),%ebx
409dc5:	03 5d ec             	add    -0x14(%ebp),%ebx
409dc8:	b9 05 00 00 00       	mov    $0x5,%ecx
409dcd:	8a 03                	mov    (%ebx),%al
409dcf:	3c 40                	cmp    $0x40,%al
409dd1:	74 1e                	je     0x409df1
409dd3:	51                   	push   %ecx
409dd4:	53                   	push   %ebx
409dd5:	3c 24                	cmp    $0x24,%al
409dd7:	74 07                	je     0x409de0
409dd9:	3c 2a                	cmp    $0x2a,%al
409ddb:	74 0a                	je     0x409de7
409ddd:	aa                   	stos   %al,%es:(%edi)
409dde:	eb 0c                	jmp    0x409dec
409de0:	e8 0d 00 00 00       	call   0x409df2
409de5:	eb 05                	jmp    0x409dec
409de7:	e8 4d ff ff ff       	call   0x409d39
409dec:	5b                   	pop    %ebx
409ded:	59                   	pop    %ecx
409dee:	43                   	inc    %ebx
409def:	e2 dc                	loop   0x409dcd
409df1:	c3                   	ret
409df2:	56                   	push   %esi
409df3:	8b 75 f4             	mov    -0xc(%ebp),%esi
409df6:	85 f6                	test   %esi,%esi
409df8:	74 05                	je     0x409dff
409dfa:	8b 4e fc             	mov    -0x4(%esi),%ecx
409dfd:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409dff:	5e                   	pop    %esi
409e00:	c3                   	ret
409e01:	24 2a                	and    $0x2a,%al
409e03:	40                   	inc    %eax
409e04:	40                   	inc    %eax
409e05:	40                   	inc    %eax
409e06:	2a 24 40             	sub    (%eax,%eax,2),%ah
409e09:	40                   	inc    %eax
409e0a:	40                   	inc    %eax
409e0b:	24 20                	and    $0x20,%al
409e0d:	2a 40 40             	sub    0x40(%eax),%al
409e10:	2a 20                	sub    (%eax),%ah
409e12:	24 40                	and    $0x40,%al
409e14:	40                   	inc    %eax
409e15:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
409e18:	29 40 2d             	sub    %eax,0x2d(%eax)
409e1b:	24 2a                	and    $0x2a,%al
409e1d:	40                   	inc    %eax
409e1e:	40                   	inc    %eax
409e1f:	24 2d                	and    $0x2d,%al
409e21:	2a 40 40             	sub    0x40(%eax),%al
409e24:	24 2a                	and    $0x2a,%al
409e26:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
409e2b:	24 29                	and    $0x29,%al
409e2d:	40                   	inc    %eax
409e2e:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
409e33:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
409e39:	24 2d                	and    $0x2d,%al
409e3b:	40                   	inc    %eax
409e3c:	40                   	inc    %eax
409e3d:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
409e42:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
409e47:	2a 20                	sub    (%eax),%ah
409e49:	24 2d                	and    $0x2d,%al
409e4b:	40                   	inc    %eax
409e4c:	24 20                	and    $0x20,%al
409e4e:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
409e54:	2a 40 2a             	sub    0x2a(%eax),%al
409e57:	2d 20 24 40 28       	sub    $0x28402420,%eax
409e5c:	24 20                	and    $0x20,%al
409e5e:	2a 29                	sub    (%ecx),%ch
409e60:	28 2a                	sub    %ch,(%edx)
409e62:	20 24 29             	and    %ah,(%ecx,%ebp,1)
409e65:	8b e5                	mov    %ebp,%esp
409e67:	5d                   	pop    %ebp
409e68:	c2 0c 00             	ret    $0xc
409e6b:	90                   	nop
409e6c:	55                   	push   %ebp
409e6d:	8b ec                	mov    %esp,%ebp
409e6f:	83 c4 e0             	add    $0xffffffe0,%esp
409e72:	57                   	push   %edi
409e73:	56                   	push   %esi
409e74:	53                   	push   %ebx
409e75:	89 c3                	mov    %eax,%ebx
409e77:	89 d6                	mov    %edx,%esi
409e79:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409e80:	80 f9 00             	cmp    $0x0,%cl
409e83:	74 0a                	je     0x409e8f
409e85:	e8 31 01 00 00       	call   0x409fbb
409e8a:	e9 00 02 00 00       	jmp    0x40a08f
409e8f:	e8 05 00 00 00       	call   0x409e99
409e94:	e9 f6 01 00 00       	jmp    0x40a08f
409e99:	66 8b 46 08          	mov    0x8(%esi),%ax
409e9d:	89 c2                	mov    %eax,%edx
409e9f:	25 ff 7f 00 00       	and    $0x7fff,%eax
409ea4:	74 1e                	je     0x409ec4
409ea6:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
409eab:	75 22                	jne    0x409ecf
409ead:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
409eb3:	74 11                	je     0x409ec6
409eb5:	83 3e 00             	cmpl   $0x0,(%esi)
409eb8:	75 09                	jne    0x409ec3
409eba:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
409ec1:	74 03                	je     0x409ec6
409ec3:	40                   	inc    %eax
409ec4:	31 d2                	xor    %edx,%edx
409ec6:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
409eca:	e9 cd 00 00 00       	jmp    0x409f9c
409ecf:	db 2e                	fldt   (%esi)
409ed1:	2d ff 3f 00 00       	sub    $0x3fff,%eax
409ed6:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
409edc:	c1 f8 10             	sar    $0x10,%eax
409edf:	40                   	inc    %eax
409ee0:	89 45 f8             	mov    %eax,-0x8(%ebp)
409ee3:	b8 12 00 00 00       	mov    $0x12,%eax
409ee8:	2b 45 f8             	sub    -0x8(%ebp),%eax
409eeb:	d9 e1                	fabs
409eed:	53                   	push   %ebx
409eee:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409ef1:	e8 02 95 ff ff       	call   0x4033f8
409ef6:	5b                   	pop    %ebx
409ef7:	d9 fc                	frndint
409ef9:	8b 7d fc             	mov    -0x4(%ebp),%edi
409efc:	db af 64 b8 49 00    	fldt   0x49b864(%edi)
409f02:	d8 d9                	fcomp  %st(1)
409f04:	9b dd 7d f6          	fstsw  -0xa(%ebp)
409f08:	9b                   	fwait
409f09:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
409f0f:	74 09                	je     0x409f1a
409f11:	da b7 70 b8 49 00    	fidivl 0x49b870(%edi)
409f17:	ff 45 f8             	incl   -0x8(%ebp)
409f1a:	df 75 e8             	fbstp  -0x18(%ebp)
409f1d:	8d 7b 03             	lea    0x3(%ebx),%edi
409f20:	ba 09 00 00 00       	mov    $0x9,%edx
409f25:	9b                   	fwait
409f26:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
409f2a:	88 c4                	mov    %al,%ah
409f2c:	c0 e8 04             	shr    $0x4,%al
409f2f:	80 e4 0f             	and    $0xf,%ah
409f32:	66 05 30 30          	add    $0x3030,%ax
409f36:	66 ab                	stos   %ax,%es:(%edi)
409f38:	4a                   	dec    %edx
409f39:	75 eb                	jne    0x409f26
409f3b:	32 c0                	xor    %al,%al
409f3d:	aa                   	stos   %al,%es:(%edi)
409f3e:	8b 7d f8             	mov    -0x8(%ebp),%edi
409f41:	03 7d 08             	add    0x8(%ebp),%edi
409f44:	79 07                	jns    0x409f4d
409f46:	31 c0                	xor    %eax,%eax
409f48:	e9 77 ff ff ff       	jmp    0x409ec4
409f4d:	3b 7d 0c             	cmp    0xc(%ebp),%edi