40ab37:	8b 7d 08             	mov    0x8(%ebp),%edi
40ab3a:	09 ff                	or     %edi,%edi
40ab3c:	7d 02                	jge    0x40ab40
40ab3e:	31 ff                	xor    %edi,%edi
40ab40:	83 ff 04             	cmp    $0x4,%edi
40ab43:	7c 1f                	jl     0x40ab64
40ab45:	bf 04 00 00 00       	mov    $0x4,%edi
40ab4a:	41                   	inc    %ecx
40ab4b:	2d 00 00 64 a7       	sub    $0xa7640000,%eax
40ab50:	81 da b3 b6 e0 0d    	sbb    $0xde0b6b3,%edx
40ab56:	73 f2                	jae    0x40ab4a
40ab58:	49                   	dec    %ecx
40ab59:	05 00 00 64 a7       	add    $0xa7640000,%eax
40ab5e:	81 d2 b3 b6 e0 0d    	adc    $0xde0b6b3,%edx
40ab64:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ab67:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40ab6a:	df 6d e0             	fildll -0x20(%ebp)
40ab6d:	89 fa                	mov    %edi,%edx
40ab6f:	b8 04 00 00 00       	mov    $0x4,%eax
40ab74:	29 d0                	sub    %edx,%eax
40ab76:	74 0a                	je     0x40ab82
40ab78:	8b 7d fc             	mov    -0x4(%ebp),%edi
40ab7b:	da b4 87 07 ab 40 00 	fidivl 0x40ab07(%edi,%eax,4)
40ab82:	df 75 e8             	fbstp  -0x18(%ebp)
40ab85:	8d 7b 03             	lea    0x3(%ebx),%edi
40ab88:	9b                   	fwait
40ab89:	09 c9                	or     %ecx,%ecx
40ab8b:	75 1b                	jne    0x40aba8
40ab8d:	b9 09 00 00 00       	mov    $0x9,%ecx
40ab92:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
40ab96:	88 c4                	mov    %al,%ah
40ab98:	c0 e8 04             	shr    $0x4,%al
40ab9b:	75 1e                	jne    0x40abbb
40ab9d:	88 e0                	mov    %ah,%al
40ab9f:	24 0f                	and    $0xf,%al
40aba1:	75 1f                	jne    0x40abc2
40aba3:	49                   	dec    %ecx
40aba4:	75 ec                	jne    0x40ab92
40aba6:	eb 39                	jmp    0x40abe1
40aba8:	88 c8                	mov    %cl,%al
40abaa:	04 30                	add    $0x30,%al
40abac:	aa                   	stos   %al,%es:(%edi)
40abad:	b9 09 00 00 00       	mov    $0x9,%ecx
40abb2:	8a 44 29 e7          	mov    -0x19(%ecx,%ebp,1),%al
40abb6:	88 c4                	mov    %al,%ah
40abb8:	c0 e8 04             	shr    $0x4,%al
40abbb:	04 30                	add    $0x30,%al
40abbd:	aa                   	stos   %al,%es:(%edi)
40abbe:	88 e0                	mov    %ah,%al
40abc0:	24 0f                	and    $0xf,%al
40abc2:	04 30                	add    $0x30,%al
40abc4:	aa                   	stos   %al,%es:(%edi)
40abc5:	49                   	dec    %ecx
40abc6:	75 ea                	jne    0x40abb2
40abc8:	89 f8                	mov    %edi,%eax
40abca:	8d 4c 13 03          	lea    0x3(%ebx,%edx,1),%ecx
40abce:	29 c8                	sub    %ecx,%eax
40abd0:	c6 07 00             	movb   $0x0,(%edi)
40abd3:	4f                   	dec    %edi
40abd4:	80 3f 30             	cmpb   $0x30,(%edi)
40abd7:	74 f7                	je     0x40abd0
40abd9:	8b 56 04             	mov    0x4(%esi),%edx
40abdc:	c1 ea 1f             	shr    $0x1f,%edx
40abdf:	eb 07                	jmp    0x40abe8
40abe1:	31 c0                	xor    %eax,%eax
40abe3:	31 d2                	xor    %edx,%edx
40abe5:	88 43 03             	mov    %al,0x3(%ebx)
40abe8:	66 89 03             	mov    %ax,(%ebx)
40abeb:	88 53 02             	mov    %dl,0x2(%ebx)
40abee:	c3                   	ret
40abef:	5b                   	pop    %ebx
40abf0:	5e                   	pop    %esi
40abf1:	5f                   	pop    %edi
40abf2:	8b e5                	mov    %ebp,%esp
40abf4:	5d                   	pop    %ebp
40abf5:	c2 08 00             	ret    $0x8
40abf8:	55                   	push   %ebp
40abf9:	8b ec                	mov    %esp,%ebp
40abfb:	83 c4 f4             	add    $0xfffffff4,%esp
40abfe:	57                   	push   %edi
40abff:	56                   	push   %esi
40ac00:	53                   	push   %ebx
40ac01:	89 c6                	mov    %eax,%esi
40ac03:	89 d7                	mov    %edx,%edi
40ac05:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40ac0c:	a0 3b 87 6a 00       	mov    0x6a873b,%al
40ac11:	88 45 fb             	mov    %al,-0x5(%ebp)
40ac14:	89 cb                	mov    %ecx,%ebx
40ac16:	9b d9 7d f8          	fstcw  -0x8(%ebp)
40ac1a:	9b db e2             	fclex
40ac1d:	d9 2d 8c a1 68 00    	fldcw  0x68a18c
40ac23:	d9 ee                	fldz
40ac25:	e8 85 00 00 00       	call   0x40acaf
40ac2a:	8a 3e                	mov    (%esi),%bh
40ac2c:	80 ff 2b             	cmp    $0x2b,%bh
40ac2f:	74 05                	je     0x40ac36
40ac31:	80 ff 2d             	cmp    $0x2d,%bh
40ac34:	75 01                	jne    0x40ac37
40ac36:	46                   	inc    %esi
40ac37:	89 f1                	mov    %esi,%ecx
40ac39:	e8 7c 00 00 00       	call   0x40acba
40ac3e:	31 d2                	xor    %edx,%edx
40ac40:	8a 06                	mov    (%esi),%al
40ac42:	3a 45 fb             	cmp    -0x5(%ebp),%al
40ac45:	75 08                	jne    0x40ac4f
40ac47:	46                   	inc    %esi
40ac48:	e8 6d 00 00 00       	call   0x40acba
40ac4d:	f7 da                	neg    %edx
40ac4f:	39 f1                	cmp    %esi,%ecx
40ac51:	74 4f                	je     0x40aca2
40ac53:	8a 06                	mov    (%esi),%al
40ac55:	24 df                	and    $0xdf,%al
40ac57:	3c 45                	cmp    $0x45,%al
40ac59:	75 0a                	jne    0x40ac65
40ac5b:	46                   	inc    %esi
40ac5c:	52                   	push   %edx
40ac5d:	e8 74 00 00 00       	call   0x40acd6
40ac62:	58                   	pop    %eax
40ac63:	01 c2                	add    %eax,%edx
40ac65:	e8 45 00 00 00       	call   0x40acaf
40ac6a:	80 3e 00             	cmpb   $0x0,(%esi)
40ac6d:	75 33                	jne    0x40aca2
40ac6f:	89 d0                	mov    %edx,%eax
40ac71:	80 fb 01             	cmp    $0x1,%bl
40ac74:	75 03                	jne    0x40ac79
40ac76:	83 c0 04             	add    $0x4,%eax
40ac79:	53                   	push   %ebx
40ac7a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40ac7d:	e8 46 89 ff ff       	call   0x4035c8
40ac82:	5b                   	pop    %ebx
40ac83:	80 ff 2d             	cmp    $0x2d,%bh
40ac86:	75 02                	jne    0x40ac8a
40ac88:	d9 e0                	fchs
40ac8a:	80 fb 00             	cmp    $0x0,%bl
40ac8d:	74 04                	je     0x40ac93
40ac8f:	df 3f                	fistpll (%edi)
40ac91:	eb 02                	jmp    0x40ac95
40ac93:	db 3f                	fstpt  (%edi)
40ac95:	9b df e0             	fstsw  %ax
40ac98:	66 a9 09 00          	test   $0x9,%ax
40ac9c:	75 06                	jne    0x40aca4
40ac9e:	b0 01                	mov    $0x1,%al
40aca0:	eb 04                	jmp    0x40aca6
40aca2:	dd d8                	fstp   %st(0)
40aca4:	31 c0                	xor    %eax,%eax
40aca6:	9b db e2             	fclex
40aca9:	d9 6d f8             	fldcw  -0x8(%ebp)
40acac:	9b                   	fwait
40acad:	eb 56                	jmp    0x40ad05
40acaf:	ac                   	lods   %ds:(%esi),%al
40acb0:	08 c0                	or     %al,%al
40acb2:	74 04                	je     0x40acb8
40acb4:	3c 20                	cmp    $0x20,%al
40acb6:	74 f7                	je     0x40acaf
40acb8:	4e                   	dec    %esi
40acb9:	c3                   	ret
40acba:	31 c0                	xor    %eax,%eax
40acbc:	31 d2                	xor    %edx,%edx
40acbe:	ac                   	lods   %ds:(%esi),%al
40acbf:	2c 3a                	sub    $0x3a,%al
40acc1:	04 0a                	add    $0xa,%al
40acc3:	73 0f                	jae    0x40acd4
40acc5:	da 0d 88 a1 68 00    	fimull 0x68a188
40accb:	89 45 f4             	mov    %eax,-0xc(%ebp)
40acce:	da 45 f4             	fiaddl -0xc(%ebp)
40acd1:	42                   	inc    %edx
40acd2:	eb ea                	jmp    0x40acbe
40acd4:	4e                   	dec    %esi
40acd5:	c3                   	ret
40acd6:	31 c0                	xor    %eax,%eax
40acd8:	31 d2                	xor    %edx,%edx
40acda:	8a 0e                	mov    (%esi),%cl
40acdc:	80 f9 2b             	cmp    $0x2b,%cl
40acdf:	74 05                	je     0x40ace6
40ace1:	80 f9 2d             	cmp    $0x2d,%cl
40ace4:	75 01                	jne    0x40ace7
40ace6:	46                   	inc    %esi
40ace7:	8a 06                	mov    (%esi),%al
40ace9:	2c 3a                	sub    $0x3a,%al
40aceb:	04 0a                	add    $0xa,%al
40aced:	73 0e                	jae    0x40acfd
40acef:	46                   	inc    %esi
40acf0:	6b d2 0a             	imul   $0xa,%edx,%edx
40acf3:	01 c2                	add    %eax,%edx
40acf5:	81 fa f4 01 00 00    	cmp    $0x1f4,%edx
40acfb:	72 ea                	jb     0x40ace7
40acfd:	80 f9 2d             	cmp    $0x2d,%cl
40ad00:	75 02                	jne    0x40ad04
40ad02:	f7 da                	neg    %edx
40ad04:	c3                   	ret
40ad05:	5b                   	pop    %ebx
40ad06:	5e                   	pop    %esi
40ad07:	5f                   	pop    %edi
40ad08:	8b e5                	mov    %ebp,%esp
40ad0a:	5d                   	pop    %ebp
40ad0b:	c3                   	ret
40ad0c:	55                   	push   %ebp
40ad0d:	8b ec                	mov    %esp,%ebp
40ad0f:	83 c4 c0             	add    $0xffffffc0,%esp
40ad12:	53                   	push   %ebx
40ad13:	8b d8                	mov    %eax,%ebx
40ad15:	6a 00                	push   $0x0
40ad17:	6a 0f                	push   $0xf
40ad19:	6a 00                	push   $0x0
40ad1b:	8d 55 08             	lea    0x8(%ebp),%edx
40ad1e:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ad21:	33 c9                	xor    %ecx,%ecx
40ad23:	e8 cc f9 ff ff       	call   0x40a6f4
40ad28:	8b c8                	mov    %eax,%ecx
40ad2a:	8d 55 c0             	lea    -0x40(%ebp),%edx
40ad2d:	8b c3                	mov    %ebx,%eax
40ad2f:	e8 24 9c ff ff       	call   0x404958
40ad34:	5b                   	pop    %ebx
40ad35:	8b e5                	mov    %ebp,%esp
40ad37:	5d                   	pop    %ebp
40ad38:	c2 0c 00             	ret    $0xc
40ad3b:	90                   	nop
40ad3c:	55                   	push   %ebp
40ad3d:	8b ec                	mov    %esp,%ebp
40ad3f:	8b d0                	mov    %eax,%edx
40ad41:	db 6d 08             	fldt   0x8(%ebp)
40ad44:	d8 0d 88 ad 40 00    	fmuls  0x40ad88
40ad4a:	df 2d d0 a0 68 00    	fildll 0x68a0d0
40ad50:	de d9                	fcompp
40ad52:	df e0                	fnstsw %ax
40ad54:	9e                   	sahf
40ad55:	77 16                	ja     0x40ad6d
40ad57:	db 6d 08             	fldt   0x8(%ebp)
40ad5a:	d8 0d 88 ad 40 00    	fmuls  0x40ad88
40ad60:	df 2d d8 a0 68 00    	fildll 0x68a0d8
40ad66:	de d9                	fcompp
40ad68:	df e0                	fnstsw %ax
40ad6a:	9e                   	sahf
40ad6b:	73 04                	jae    0x40ad71
40ad6d:	33 c0                	xor    %eax,%eax
40ad6f:	eb 02                	jmp    0x40ad73
40ad71:	b0 01                	mov    $0x1,%al
40ad73:	84 c0                	test   %al,%al
40ad75:	74 0c                	je     0x40ad83
40ad77:	db 6d 08             	fldt   0x8(%ebp)
40ad7a:	d8 0d 88 ad 40 00    	fmuls  0x40ad88
40ad80:	df 3a                	fistpll (%edx)
40ad82:	9b                   	fwait
40ad83:	5d                   	pop    %ebp
40ad84:	c2 0c 00             	ret    $0xc
40ad87:	00 00                	add    %al,(%eax)
40ad89:	40                   	inc    %eax
40ad8a:	1c 46                	sbb    $0x46,%al
40ad8c:	55                   	push   %ebp
40ad8d:	8b ec                	mov    %esp,%ebp
40ad8f:	83 c4 ec             	add    $0xffffffec,%esp
40ad92:	33 c0                	xor    %eax,%eax
40ad94:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ad97:	33 c0                	xor    %eax,%eax
40ad99:	55                   	push   %ebp
40ad9a:	68 fe ad 40 00       	push   $0x40adfe
40ad9f:	64 ff 30             	push   %fs:(%eax)
40ada2:	64 89 20             	mov    %esp,%fs:(%eax)
40ada5:	66 8b 45 10          	mov    0x10(%ebp),%ax
40ada9:	50                   	push   %eax
40adaa:	ff 75 0c             	push   0xc(%ebp)
40adad:	ff 75 08             	push   0x8(%ebp)
40adb0:	8d 45 f8             	lea    -0x8(%ebp),%eax
40adb3:	e8 84 ff ff ff       	call   0x40ad3c
40adb8:	84 c0                	test   %al,%al
40adba:	75 2c                	jne    0x40ade8
40adbc:	66 8b 45 10          	mov    0x10(%ebp),%ax
40adc0:	50                   	push   %eax
40adc1:	ff 75 0c             	push   0xc(%ebp)
40adc4:	ff 75 08             	push   0x8(%ebp)
40adc7:	8d 45 ec             	lea    -0x14(%ebp),%eax
40adca:	e8 3d ff ff ff       	call   0x40ad0c
40adcf:	8b 45 ec             	mov    -0x14(%ebp),%eax
40add2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40add5:	c6 45 f4 0b          	movb   $0xb,-0xc(%ebp)
40add9:	8d 55 f0             	lea    -0x10(%ebp),%edx
40addc:	a1 10 72 6a 00       	mov    0x6a7210,%eax
40ade1:	33 c9                	xor    %ecx,%ecx
40ade3:	e8 a8 e2 ff ff       	call   0x409090
40ade8:	33 c0                	xor    %eax,%eax
40adea:	5a                   	pop    %edx
40adeb:	59                   	pop    %ecx
40adec:	59                   	pop    %ecx
40aded:	64 89 10             	mov    %edx,%fs:(%eax)
40adf0:	68 05 ae 40 00       	push   $0x40ae05
40adf5:	8d 45 ec             	lea    -0x14(%ebp),%eax
40adf8:	e8 6b 9a ff ff       	call   0x404868
40adfd:	c3                   	ret
40adfe:	e9 09 94 ff ff       	jmp    0x40420c
40ae03:	eb f0                	jmp    0x40adf5
40ae05:	df 6d f8             	fildll -0x8(%ebp)
40ae08:	8b e5                	mov    %ebp,%esp
40ae0a:	5d                   	pop    %ebp
40ae0b:	c2 0c 00             	ret    $0xc
40ae0e:	8b c0                	mov    %eax,%eax
40ae10:	55                   	push   %ebp
40ae11:	8b ec                	mov    %esp,%ebp
40ae13:	83 c4 c0             	add    $0xffffffc0,%esp
40ae16:	53                   	push   %ebx
40ae17:	56                   	push   %esi
40ae18:	57                   	push   %edi
40ae19:	8b f9                	mov    %ecx,%edi
40ae1b:	8b f2                	mov    %edx,%esi
40ae1d:	8b d8                	mov    %eax,%ebx
40ae1f:	53                   	push   %ebx
40ae20:	56                   	push   %esi
40ae21:	57                   	push   %edi
40ae22:	8d 55 0c             	lea    0xc(%ebp),%edx
40ae25:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ae28:	33 c9                	xor    %ecx,%ecx
40ae2a:	e8 c5 f8 ff ff       	call   0x40a6f4
40ae2f:	8b c8                	mov    %eax,%ecx
40ae31:	8d 55 c0             	lea    -0x40(%ebp),%edx
40ae34:	8b 45 08             	mov    0x8(%ebp),%eax
40ae37:	e8 1c 9b ff ff       	call   0x404958
40ae3c:	5f                   	pop    %edi
40ae3d:	5e                   	pop    %esi
40ae3e:	5b                   	pop    %ebx
40ae3f:	8b e5                	mov    %ebp,%esp
40ae41:	5d                   	pop    %ebp
40ae42:	c2 10 00             	ret    $0x10
40ae45:	8d 40 00             	lea    0x0(%eax),%eax
40ae48:	53                   	push   %ebx
40ae49:	83 c4 ec             	add    $0xffffffec,%esp
40ae4c:	8b d8                	mov    %eax,%ebx
40ae4e:	8b c3                	mov    %ebx,%eax
40ae50:	e8 c3 9e ff ff       	call   0x404d18
40ae55:	8b d4                	mov    %esp,%edx
40ae57:	33 c9                	xor    %ecx,%ecx
40ae59:	e8 9a fd ff ff       	call   0x40abf8
40ae5e:	84 c0                	test   %al,%al
40ae60:	75 19                	jne    0x40ae7b
40ae62:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40ae66:	c6 44 24 10 0b       	movb   $0xb,0x10(%esp)
40ae6b:	8d 54 24 0c          	lea    0xc(%esp),%edx
40ae6f:	a1 0c 6d 6a 00       	mov    0x6a6d0c,%eax
40ae74:	33 c9                	xor    %ecx,%ecx
40ae76:	e8 15 e2 ff ff       	call   0x409090
40ae7b:	db 2c 24             	fldt   (%esp)
40ae7e:	83 c4 14             	add    $0x14,%esp
40ae81:	5b                   	pop    %ebx
40ae82:	c3                   	ret
40ae83:	90                   	nop
40ae84:	53                   	push   %ebx
40ae85:	56                   	push   %esi
40ae86:	8b f2                	mov    %edx,%esi
40ae88:	8b d8                	mov    %eax,%ebx
40ae8a:	8b c3                	mov    %ebx,%eax
40ae8c:	e8 87 9e ff ff       	call   0x404d18
40ae91:	8b d6                	mov    %esi,%edx