4099ae:	89 fa                	mov    %edi,%edx
4099b0:	89 d9                	mov    %ebx,%ecx
4099b2:	e8 75 fc ff ff       	call   0x40962c
4099b7:	e9 2d 02 00 00       	jmp    0x409be9
4099bc:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
4099c0:	75 16                	jne    0x4099d8
4099c2:	b9 02 00 00 00       	mov    $0x2,%ecx
4099c7:	e8 16 00 00 00       	call   0x4099e2
4099cc:	74 d7                	je     0x4099a5
4099ce:	3b 75 cc             	cmp    -0x34(%ebp),%esi
4099d1:	74 05                	je     0x4099d8
4099d3:	e8 45 00 00 00       	call   0x409a1d
4099d8:	e8 eb 00 00 00       	call   0x409ac8
4099dd:	e9 07 02 00 00       	jmp    0x409be9
4099e2:	8b 75 08             	mov    0x8(%ebp),%esi
4099e5:	e3 1d                	jecxz  0x409a04
4099e7:	ac                   	lods   %ds:(%esi),%al
4099e8:	3c 27                	cmp    $0x27,%al
4099ea:	74 24                	je     0x409a10
4099ec:	3c 22                	cmp    $0x22,%al
4099ee:	74 20                	je     0x409a10
4099f0:	08 c0                	or     %al,%al
4099f2:	74 10                	je     0x409a04
4099f4:	3c 3b                	cmp    $0x3b,%al
4099f6:	75 ef                	jne    0x4099e7
4099f8:	e2 ed                	loop   0x4099e7
4099fa:	8a 06                	mov    (%esi),%al
4099fc:	08 c0                	or     %al,%al
4099fe:	74 04                	je     0x409a04
409a00:	3c 3b                	cmp    $0x3b,%al
409a02:	75 0b                	jne    0x409a0f
409a04:	8b 75 08             	mov    0x8(%ebp),%esi
409a07:	8a 06                	mov    (%esi),%al
409a09:	08 c0                	or     %al,%al
409a0b:	74 02                	je     0x409a0f
409a0d:	3c 3b                	cmp    $0x3b,%al
409a0f:	c3                   	ret
409a10:	88 c4                	mov    %al,%ah
409a12:	ac                   	lods   %ds:(%esi),%al
409a13:	38 e0                	cmp    %ah,%al
409a15:	74 d0                	je     0x4099e7
409a17:	08 c0                	or     %al,%al
409a19:	75 f7                	jne    0x409a12
409a1b:	eb e7                	jmp    0x409a04
409a1d:	53                   	push   %ebx
409a1e:	89 75 cc             	mov    %esi,-0x34(%ebp)
409a21:	bb ff 7f 00 00       	mov    $0x7fff,%ebx
409a26:	31 c9                	xor    %ecx,%ecx
409a28:	31 d2                	xor    %edx,%edx
409a2a:	c7 45 e8 ff ff ff ff 	movl   $0xffffffff,-0x18(%ebp)
409a31:	88 55 cb             	mov    %dl,-0x35(%ebp)
409a34:	88 55 ef             	mov    %dl,-0x11(%ebp)
409a37:	ac                   	lods   %ds:(%esi),%al
409a38:	3c 23                	cmp    $0x23,%al
409a3a:	74 26                	je     0x409a62
409a3c:	3c 30                	cmp    $0x30,%al
409a3e:	74 25                	je     0x409a65
409a40:	3c 2e                	cmp    $0x2e,%al
409a42:	74 2c                	je     0x409a70
409a44:	3c 2c                	cmp    $0x2c,%al
409a46:	74 33                	je     0x409a7b
409a48:	3c 27                	cmp    $0x27,%al
409a4a:	74 35                	je     0x409a81
409a4c:	3c 22                	cmp    $0x22,%al
409a4e:	74 31                	je     0x409a81
409a50:	3c 45                	cmp    $0x45,%al
409a52:	74 3a                	je     0x409a8e
409a54:	3c 65                	cmp    $0x65,%al
409a56:	74 36                	je     0x409a8e
409a58:	3c 3b                	cmp    $0x3b,%al
409a5a:	74 46                	je     0x409aa2
409a5c:	08 c0                	or     %al,%al
409a5e:	75 d7                	jne    0x409a37
409a60:	eb 40                	jmp    0x409aa2
409a62:	42                   	inc    %edx
409a63:	eb d2                	jmp    0x409a37
409a65:	39 da                	cmp    %ebx,%edx
409a67:	7d 02                	jge    0x409a6b
409a69:	89 d3                	mov    %edx,%ebx
409a6b:	42                   	inc    %edx
409a6c:	89 d1                	mov    %edx,%ecx
409a6e:	eb c7                	jmp    0x409a37
409a70:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
409a74:	75 c1                	jne    0x409a37
409a76:	89 55 e8             	mov    %edx,-0x18(%ebp)
409a79:	eb bc                	jmp    0x409a37
409a7b:	c6 45 cb 01          	movb   $0x1,-0x35(%ebp)
409a7f:	eb b6                	jmp    0x409a37
409a81:	88 c4                	mov    %al,%ah
409a83:	ac                   	lods   %ds:(%esi),%al
409a84:	38 e0                	cmp    %ah,%al
409a86:	74 af                	je     0x409a37
409a88:	08 c0                	or     %al,%al
409a8a:	75 f7                	jne    0x409a83
409a8c:	eb 14                	jmp    0x409aa2
409a8e:	ac                   	lods   %ds:(%esi),%al
409a8f:	3c 2d                	cmp    $0x2d,%al
409a91:	74 04                	je     0x409a97
409a93:	3c 2b                	cmp    $0x2b,%al
409a95:	75 a1                	jne    0x409a38
409a97:	c6 45 ef 01          	movb   $0x1,-0x11(%ebp)
409a9b:	ac                   	lods   %ds:(%esi),%al
409a9c:	3c 30                	cmp    $0x30,%al
409a9e:	74 fb                	je     0x409a9b
409aa0:	eb 96                	jmp    0x409a38
409aa2:	89 55 f0             	mov    %edx,-0x10(%ebp)
409aa5:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
409aa9:	75 03                	jne    0x409aae
409aab:	89 55 e8             	mov    %edx,-0x18(%ebp)
409aae:	8b 45 e8             	mov    -0x18(%ebp),%eax
409ab1:	29 c8                	sub    %ecx,%eax
409ab3:	7e 02                	jle    0x409ab7
409ab5:	31 c0                	xor    %eax,%eax
409ab7:	89 45 c4             	mov    %eax,-0x3c(%ebp)
409aba:	8b 45 e8             	mov    -0x18(%ebp),%eax
409abd:	29 d8                	sub    %ebx,%eax
409abf:	7d 02                	jge    0x409ac3
409ac1:	31 c0                	xor    %eax,%eax
409ac3:	89 45 c0             	mov    %eax,-0x40(%ebp)
409ac6:	5b                   	pop    %ebx
409ac7:	c3                   	ret
409ac8:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
409acc:	74 07                	je     0x409ad5
409ace:	8b 45 e8             	mov    -0x18(%ebp),%eax
409ad1:	31 d2                	xor    %edx,%edx
409ad3:	eb 13                	jmp    0x409ae8
409ad5:	0f bf 45 d0          	movswl -0x30(%ebp),%eax
409ad9:	3b 45 e8             	cmp    -0x18(%ebp),%eax
409adc:	7f 03                	jg     0x409ae1
409ade:	8b 45 e8             	mov    -0x18(%ebp),%eax
409ae1:	0f bf 55 d0          	movswl -0x30(%ebp),%edx
409ae5:	2b 55 e8             	sub    -0x18(%ebp),%edx
409ae8:	89 45 bc             	mov    %eax,-0x44(%ebp)
409aeb:	89 55 b8             	mov    %edx,-0x48(%ebp)
409aee:	8b 75 cc             	mov    -0x34(%ebp),%esi
409af1:	8b 7d fc             	mov    -0x4(%ebp),%edi
409af4:	8d 5d d3             	lea    -0x2d(%ebp),%ebx
409af7:	80 7d d2 00          	cmpb   $0x0,-0x2e(%ebp)
409afb:	74 08                	je     0x409b05
409afd:	3b 75 08             	cmp    0x8(%ebp),%esi
409b00:	75 03                	jne    0x409b05
409b02:	b0 2d                	mov    $0x2d,%al
409b04:	aa                   	stos   %al,%es:(%edi)
409b05:	ac                   	lods   %ds:(%esi),%al
409b06:	3c 23                	cmp    $0x23,%al
409b08:	74 27                	je     0x409b31
409b0a:	3c 30                	cmp    $0x30,%al
409b0c:	74 23                	je     0x409b31
409b0e:	3c 2e                	cmp    $0x2e,%al
409b10:	74 f3                	je     0x409b05
409b12:	3c 2c                	cmp    $0x2c,%al
409b14:	74 ef                	je     0x409b05
409b16:	3c 27                	cmp    $0x27,%al
409b18:	74 1e                	je     0x409b38
409b1a:	3c 22                	cmp    $0x22,%al
409b1c:	74 1a                	je     0x409b38
409b1e:	3c 45                	cmp    $0x45,%al
409b20:	74 24                	je     0x409b46
409b22:	3c 65                	cmp    $0x65,%al
409b24:	74 20                	je     0x409b46
409b26:	3c 3b                	cmp    $0x3b,%al
409b28:	74 53                	je     0x409b7d
409b2a:	08 c0                	or     %al,%al
409b2c:	74 4f                	je     0x409b7d
409b2e:	aa                   	stos   %al,%es:(%edi)
409b2f:	eb d4                	jmp    0x409b05
409b31:	e8 4d 00 00 00       	call   0x409b83
409b36:	eb cd                	jmp    0x409b05
409b38:	88 c4                	mov    %al,%ah
409b3a:	ac                   	lods   %ds:(%esi),%al
409b3b:	38 e0                	cmp    %ah,%al
409b3d:	74 c6                	je     0x409b05
409b3f:	08 c0                	or     %al,%al
409b41:	74 3a                	je     0x409b7d
409b43:	aa                   	stos   %al,%es:(%edi)
409b44:	eb f4                	jmp    0x409b3a
409b46:	8a 26                	mov    (%esi),%ah
409b48:	80 fc 2b             	cmp    $0x2b,%ah
409b4b:	74 07                	je     0x409b54
409b4d:	80 fc 2d             	cmp    $0x2d,%ah
409b50:	75 dc                	jne    0x409b2e
409b52:	32 e4                	xor    %ah,%ah
409b54:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
409b59:	41                   	inc    %ecx
409b5a:	46                   	inc    %esi
409b5b:	80 3e 30             	cmpb   $0x30,(%esi)
409b5e:	74 f9                	je     0x409b59
409b60:	83 f9 04             	cmp    $0x4,%ecx
409b63:	72 05                	jb     0x409b6a
409b65:	b9 04 00 00 00       	mov    $0x4,%ecx
409b6a:	53                   	push   %ebx
409b6b:	8a 5d d3             	mov    -0x2d(%ebp),%bl
409b6e:	0f bf 55 d0          	movswl -0x30(%ebp),%edx
409b72:	2b 55 e8             	sub    -0x18(%ebp),%edx
409b75:	e8 6e fa ff ff       	call   0x4095e8
409b7a:	5b                   	pop    %ebx
409b7b:	eb 88                	jmp    0x409b05
409b7d:	89 f8                	mov    %edi,%eax
409b7f:	2b 45 fc             	sub    -0x4(%ebp),%eax
409b82:	c3                   	ret
409b83:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
409b87:	74 1b                	je     0x409ba4
409b89:	7c 0c                	jl     0x409b97
409b8b:	e8 14 00 00 00       	call   0x409ba4
409b90:	ff 4d b8             	decl   -0x48(%ebp)
409b93:	75 f6                	jne    0x409b8b
409b95:	eb 0d                	jmp    0x409ba4
409b97:	ff 45 b8             	incl   -0x48(%ebp)
409b9a:	8b 45 bc             	mov    -0x44(%ebp),%eax
409b9d:	3b 45 c0             	cmp    -0x40(%ebp),%eax
409ba0:	7e 12                	jle    0x409bb4
409ba2:	eb 41                	jmp    0x409be5
409ba4:	8a 03                	mov    (%ebx),%al
409ba6:	43                   	inc    %ebx
409ba7:	08 c0                	or     %al,%al
409ba9:	75 0b                	jne    0x409bb6
409bab:	4b                   	dec    %ebx
409bac:	8b 45 bc             	mov    -0x44(%ebp),%eax
409baf:	3b 45 c4             	cmp    -0x3c(%ebp),%eax
409bb2:	7e 31                	jle    0x409be5
409bb4:	b0 30                	mov    $0x30,%al
409bb6:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
409bba:	75 09                	jne    0x409bc5
409bbc:	88 c4                	mov    %al,%ah
409bbe:	8a 45 f7             	mov    -0x9(%ebp),%al
409bc1:	66 ab                	stos   %ax,%es:(%edi)
409bc3:	eb 20                	jmp    0x409be5
409bc5:	aa                   	stos   %al,%es:(%edi)
409bc6:	80 7d cb 00          	cmpb   $0x0,-0x35(%ebp)
409bca:	74 19                	je     0x409be5
409bcc:	8b 45 bc             	mov    -0x44(%ebp),%eax
409bcf:	83 f8 01             	cmp    $0x1,%eax
409bd2:	7e 11                	jle    0x409be5
409bd4:	b2 03                	mov    $0x3,%dl
409bd6:	f6 f2                	div    %dl
409bd8:	80 fc 01             	cmp    $0x1,%ah
409bdb:	75 08                	jne    0x409be5
409bdd:	8a 45 f6             	mov    -0xa(%ebp),%al
409be0:	84 c0                	test   %al,%al
409be2:	74 01                	je     0x409be5
409be4:	aa                   	stos   %al,%es:(%edi)
409be5:	ff 4d bc             	decl   -0x44(%ebp)
409be8:	c3                   	ret
409be9:	5b                   	pop    %ebx
409bea:	5e                   	pop    %esi
409beb:	5f                   	pop    %edi
409bec:	8b e5                	mov    %ebp,%esp
409bee:	5d                   	pop    %ebp
409bef:	c2 04 00             	ret    $0x4
409bf2:	8b c0                	mov    %eax,%eax
409bf4:	55                   	push   %ebp
409bf5:	8b ec                	mov    %esp,%ebp
409bf7:	83 c4 e0             	add    $0xffffffe0,%esp
409bfa:	57                   	push   %edi
409bfb:	56                   	push   %esi
409bfc:	53                   	push   %ebx
409bfd:	89 c3                	mov    %eax,%ebx
409bff:	89 d6                	mov    %edx,%esi
409c01:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
409c08:	80 f9 00             	cmp    $0x0,%cl
409c0b:	74 0a                	je     0x409c17
409c0d:	e8 31 01 00 00       	call   0x409d43
409c12:	e9 00 02 00 00       	jmp    0x409e17
409c17:	e8 05 00 00 00       	call   0x409c21
409c1c:	e9 f6 01 00 00       	jmp    0x409e17
409c21:	66 8b 46 08          	mov    0x8(%esi),%ax
409c25:	89 c2                	mov    %eax,%edx
409c27:	25 ff 7f 00 00       	and    $0x7fff,%eax
409c2c:	74 1e                	je     0x409c4c
409c2e:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
409c33:	75 22                	jne    0x409c57
409c35:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
409c3b:	74 11                	je     0x409c4e
409c3d:	83 3e 00             	cmpl   $0x0,(%esi)
409c40:	75 09                	jne    0x409c4b
409c42:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
409c49:	74 03                	je     0x409c4e
409c4b:	40                   	inc    %eax
409c4c:	31 d2                	xor    %edx,%edx
409c4e:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
409c52:	e9 cd 00 00 00       	jmp    0x409d24
409c57:	db 2e                	fldt   (%esi)
409c59:	2d ff 3f 00 00       	sub    $0x3fff,%eax
409c5e:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
409c64:	c1 f8 10             	sar    $0x10,%eax
409c67:	40                   	inc    %eax
409c68:	89 45 f8             	mov    %eax,-0x8(%ebp)
409c6b:	b8 12 00 00 00       	mov    $0x12,%eax
409c70:	2b 45 f8             	sub    -0x8(%ebp),%eax
409c73:	d9 e1                	fabs
409c75:	53                   	push   %ebx
409c76:	8b 5d fc             	mov    -0x4(%ebp),%ebx
409c79:	e8 b2 92 ff ff       	call   0x402f30
409c7e:	5b                   	pop    %ebx
409c7f:	d9 fc                	frndint
409c81:	8b 7d fc             	mov    -0x4(%ebp),%edi
409c84:	db af 68 d1 48 00    	fldt   0x48d168(%edi)
409c8a:	d8 d9                	fcomp  %st(1)
409c8c:	9b dd 7d f6          	fstsw  -0xa(%ebp)
409c90:	9b                   	fwait
409c91:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
409c97:	74 09                	je     0x409ca2
409c99:	da b7 74 d1 48 00    	fidivl 0x48d174(%edi)
409c9f:	ff 45 f8             	incl   -0x8(%ebp)
409ca2:	df 75 e8             	fbstp  -0x18(%ebp)
409ca5:	8d 7b 03             	lea    0x3(%ebx),%edi
409ca8:	ba 09 00 00 00       	mov    $0x9,%edx
409cad:	9b                   	fwait
409cae:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
409cb2:	88 c4                	mov    %al,%ah
409cb4:	c0 e8 04             	shr    $0x4,%al
409cb7:	80 e4 0f             	and    $0xf,%ah
409cba:	66 05 30 30          	add    $0x3030,%ax
409cbe:	66 ab                	stos   %ax,%es:(%edi)
409cc0:	4a                   	dec    %edx
409cc1:	75 eb                	jne    0x409cae
409cc3:	32 c0                	xor    %al,%al
409cc5:	aa                   	stos   %al,%es:(%edi)
409cc6:	8b 7d f8             	mov    -0x8(%ebp),%edi
409cc9:	03 7d 08             	add    0x8(%ebp),%edi
409ccc:	79 07                	jns    0x409cd5
409cce:	31 c0                	xor    %eax,%eax
409cd0:	e9 77 ff ff ff       	jmp    0x409c4c
409cd5:	3b 7d 0c             	cmp    0xc(%ebp),%edi
409cd8:	72 03                	jb     0x409cdd
409cda:	8b 7d 0c             	mov    0xc(%ebp),%edi
409cdd:	83 ff 12             	cmp    $0x12,%edi
409ce0:	73 27                	jae    0x409d09
409ce2:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
409ce7:	72 25                	jb     0x409d0e
409ce9:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409cee:	4f                   	dec    %edi
409cef:	78 0d                	js     0x409cfe
409cf1:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
409cf5:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
409cfa:	77 ed                	ja     0x409ce9
409cfc:	eb 1f                	jmp    0x409d1d
409cfe:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
409d04:	ff 45 f8             	incl   -0x8(%ebp)
409d07:	eb 14                	jmp    0x409d1d
409d09:	bf 12 00 00 00       	mov    $0x12,%edi
409d0e:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
409d13:	4f                   	dec    %edi
409d14:	78 19                	js     0x409d2f
409d16:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
409d1b:	74 f1                	je     0x409d0e
409d1d:	66 8b 56 08          	mov    0x8(%esi),%dx
409d21:	8b 45 f8             	mov    -0x8(%ebp),%eax
409d24:	66 c1 ea 0f          	shr    $0xf,%dx
409d28:	66 89 03             	mov    %ax,(%ebx)