416ec1:	8b 7d 1c             	mov    0x1c(%ebp),%edi
416ec4:	74 26                	je     0x416eec
416ec6:	83 60 20 e1          	andl   $0xffffffe1,0x20(%eax)
416eca:	8b 45 18             	mov    0x18(%ebp),%eax
416ecd:	d9 00                	flds   (%eax)
416ecf:	8b 45 08             	mov    0x8(%ebp),%eax
416ed2:	d9 58 10             	fstps  0x10(%eax)
416ed5:	8b 45 08             	mov    0x8(%ebp),%eax
416ed8:	09 58 60             	or     %ebx,0x60(%eax)
416edb:	8b 45 08             	mov    0x8(%ebp),%eax
416ede:	83 60 60 e1          	andl   $0xffffffe1,0x60(%eax)
416ee2:	d9 07                	flds   (%edi)
416ee4:	8b 45 08             	mov    0x8(%ebp),%eax
416ee7:	d9 58 50             	fstps  0x50(%eax)
416eea:	eb 34                	jmp    0x416f20
416eec:	8b 48 20             	mov    0x20(%eax),%ecx
416eef:	83 e1 e3             	and    $0xffffffe3,%ecx
416ef2:	83 c9 02             	or     $0x2,%ecx
416ef5:	89 48 20             	mov    %ecx,0x20(%eax)
416ef8:	8b 45 18             	mov    0x18(%ebp),%eax
416efb:	dd 00                	fldl   (%eax)
416efd:	8b 45 08             	mov    0x8(%ebp),%eax
416f00:	dd 58 10             	fstpl  0x10(%eax)
416f03:	8b 45 08             	mov    0x8(%ebp),%eax
416f06:	09 58 60             	or     %ebx,0x60(%eax)
416f09:	8b 45 08             	mov    0x8(%ebp),%eax
416f0c:	8b 48 60             	mov    0x60(%eax),%ecx
416f0f:	83 e1 e3             	and    $0xffffffe3,%ecx
416f12:	83 c9 02             	or     $0x2,%ecx
416f15:	89 48 60             	mov    %ecx,0x60(%eax)
416f18:	dd 07                	fldl   (%edi)
416f1a:	8b 45 08             	mov    0x8(%ebp),%eax
416f1d:	dd 58 50             	fstpl  0x50(%eax)
416f20:	e8 04 03 00 00       	call   0x417229
416f25:	8d 45 08             	lea    0x8(%ebp),%eax
416f28:	50                   	push   %eax
416f29:	53                   	push   %ebx
416f2a:	6a 00                	push   $0x0
416f2c:	ff 75 10             	push   0x10(%ebp)
416f2f:	ff 15 c4 a0 41 00    	call   *0x41a0c4
416f35:	8b 4d 08             	mov    0x8(%ebp),%ecx
416f38:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
416f3c:	74 03                	je     0x416f41
416f3e:	83 26 fe             	andl   $0xfffffffe,(%esi)
416f41:	f6 41 08 08          	testb  $0x8,0x8(%ecx)
416f45:	74 03                	je     0x416f4a
416f47:	83 26 fb             	andl   $0xfffffffb,(%esi)
416f4a:	f6 41 08 04          	testb  $0x4,0x8(%ecx)
416f4e:	74 03                	je     0x416f53
416f50:	83 26 f7             	andl   $0xfffffff7,(%esi)
416f53:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
416f57:	74 03                	je     0x416f5c
416f59:	83 26 ef             	andl   $0xffffffef,(%esi)
416f5c:	84 59 08             	test   %bl,0x8(%ecx)
416f5f:	74 03                	je     0x416f64
416f61:	83 26 df             	andl   $0xffffffdf,(%esi)
416f64:	8b 01                	mov    (%ecx),%eax
416f66:	83 e0 03             	and    $0x3,%eax
416f69:	33 db                	xor    %ebx,%ebx
416f6b:	2b c3                	sub    %ebx,%eax
416f6d:	ba ff f3 ff ff       	mov    $0xfffff3ff,%edx
416f72:	74 2f                	je     0x416fa3
416f74:	48                   	dec    %eax
416f75:	74 1e                	je     0x416f95
416f77:	48                   	dec    %eax
416f78:	74 0b                	je     0x416f85
416f7a:	48                   	dec    %eax
416f7b:	75 28                	jne    0x416fa5
416f7d:	81 0e 00 0c 00 00    	orl    $0xc00,(%esi)
416f83:	eb 20                	jmp    0x416fa5
416f85:	8b 06                	mov    (%esi),%eax
416f87:	25 ff fb ff ff       	and    $0xfffffbff,%eax
416f8c:	0d 00 08 00 00       	or     $0x800,%eax
416f91:	89 06                	mov    %eax,(%esi)
416f93:	eb 10                	jmp    0x416fa5
416f95:	8b 06                	mov    (%esi),%eax
416f97:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
416f9c:	0d 00 04 00 00       	or     $0x400,%eax
416fa1:	eb ee                	jmp    0x416f91
416fa3:	21 16                	and    %edx,(%esi)
416fa5:	8b 01                	mov    (%ecx),%eax
416fa7:	c1 e8 02             	shr    $0x2,%eax
416faa:	83 e0 07             	and    $0x7,%eax
416fad:	2b c3                	sub    %ebx,%eax
416faf:	74 15                	je     0x416fc6
416fb1:	48                   	dec    %eax
416fb2:	74 07                	je     0x416fbb
416fb4:	48                   	dec    %eax
416fb5:	75 1a                	jne    0x416fd1
416fb7:	21 16                	and    %edx,(%esi)
416fb9:	eb 16                	jmp    0x416fd1
416fbb:	8b 06                	mov    (%esi),%eax
416fbd:	23 c2                	and    %edx,%eax
416fbf:	0d 00 02 00 00       	or     $0x200,%eax
416fc4:	eb 09                	jmp    0x416fcf
416fc6:	8b 06                	mov    (%esi),%eax
416fc8:	23 c2                	and    %edx,%eax
416fca:	0d 00 03 00 00       	or     $0x300,%eax
416fcf:	89 06                	mov    %eax,(%esi)
416fd1:	39 5d 20             	cmp    %ebx,0x20(%ebp)
416fd4:	74 07                	je     0x416fdd
416fd6:	d9 41 50             	flds   0x50(%ecx)
416fd9:	d9 1f                	fstps  (%edi)
416fdb:	eb 05                	jmp    0x416fe2
416fdd:	dd 41 50             	fldl   0x50(%ecx)
416fe0:	dd 1f                	fstpl  (%edi)
416fe2:	5f                   	pop    %edi
416fe3:	5e                   	pop    %esi
416fe4:	5b                   	pop    %ebx
416fe5:	5d                   	pop    %ebp
416fe6:	c3                   	ret
416fe7:	8b ff                	mov    %edi,%edi
416fe9:	55                   	push   %ebp
416fea:	8b ec                	mov    %esp,%ebp
416fec:	6a 00                	push   $0x0
416fee:	ff 75 1c             	push   0x1c(%ebp)
416ff1:	ff 75 18             	push   0x18(%ebp)
416ff4:	ff 75 14             	push   0x14(%ebp)
416ff7:	ff 75 10             	push   0x10(%ebp)
416ffa:	ff 75 0c             	push   0xc(%ebp)
416ffd:	ff 75 08             	push   0x8(%ebp)
417000:	e8 06 fd ff ff       	call   0x416d0b
417005:	83 c4 1c             	add    $0x1c,%esp
417008:	5d                   	pop    %ebp
417009:	c3                   	ret
41700a:	8b ff                	mov    %edi,%edi
41700c:	55                   	push   %ebp
41700d:	8b ec                	mov    %esp,%ebp
41700f:	83 ec 14             	sub    $0x14,%esp
417012:	8b 45 08             	mov    0x8(%ebp),%eax
417015:	53                   	push   %ebx
417016:	56                   	push   %esi
417017:	33 db                	xor    %ebx,%ebx
417019:	8b f0                	mov    %eax,%esi
41701b:	83 e6 1f             	and    $0x1f,%esi
41701e:	43                   	inc    %ebx
41701f:	89 75 fc             	mov    %esi,-0x4(%ebp)
417022:	a8 08                	test   $0x8,%al
417024:	74 14                	je     0x41703a
417026:	84 5d 10             	test   %bl,0x10(%ebp)
417029:	74 0f                	je     0x41703a
41702b:	53                   	push   %ebx
41702c:	e8 32 02 00 00       	call   0x417263
417031:	59                   	pop    %ecx
417032:	83 e6 f7             	and    $0xfffffff7,%esi
417035:	e9 90 01 00 00       	jmp    0x4171ca
41703a:	a8 04                	test   $0x4,%al
41703c:	74 16                	je     0x417054
41703e:	f6 45 10 04          	testb  $0x4,0x10(%ebp)
417042:	74 10                	je     0x417054
417044:	6a 04                	push   $0x4
417046:	e8 18 02 00 00       	call   0x417263
41704b:	59                   	pop    %ecx
41704c:	83 e6 fb             	and    $0xfffffffb,%esi
41704f:	e9 76 01 00 00       	jmp    0x4171ca
417054:	84 c3                	test   %al,%bl
417056:	0f 84 9a 00 00 00    	je     0x4170f6
41705c:	f6 45 10 08          	testb  $0x8,0x10(%ebp)
417060:	0f 84 90 00 00 00    	je     0x4170f6
417066:	6a 08                	push   $0x8
417068:	e8 f6 01 00 00       	call   0x417263
41706d:	8b 45 10             	mov    0x10(%ebp),%eax
417070:	59                   	pop    %ecx
417071:	b9 00 0c 00 00       	mov    $0xc00,%ecx
417076:	23 c1                	and    %ecx,%eax
417078:	74 54                	je     0x4170ce
41707a:	3d 00 04 00 00       	cmp    $0x400,%eax
41707f:	74 37                	je     0x4170b8
417081:	3d 00 08 00 00       	cmp    $0x800,%eax
417086:	74 1a                	je     0x4170a2
417088:	3b c1                	cmp    %ecx,%eax
41708a:	75 62                	jne    0x4170ee
41708c:	d9 ee                	fldz
41708e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417091:	dc 19                	fcompl (%ecx)
417093:	df e0                	fnstsw %ax
417095:	dd 05 a8 c2 42 00    	fldl   0x42c2a8
41709b:	f6 c4 05             	test   $0x5,%ah
41709e:	7b 4c                	jnp    0x4170ec
4170a0:	eb 48                	jmp    0x4170ea
4170a2:	d9 ee                	fldz
4170a4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4170a7:	dc 19                	fcompl (%ecx)
4170a9:	df e0                	fnstsw %ax
4170ab:	f6 c4 05             	test   $0x5,%ah
4170ae:	7b 2c                	jnp    0x4170dc
4170b0:	dd 05 a8 c2 42 00    	fldl   0x42c2a8
4170b6:	eb 32                	jmp    0x4170ea
4170b8:	d9 ee                	fldz
4170ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4170bd:	dc 19                	fcompl (%ecx)
4170bf:	df e0                	fnstsw %ax
4170c1:	f6 c4 05             	test   $0x5,%ah
4170c4:	7a 1e                	jp     0x4170e4
4170c6:	dd 05 a8 c2 42 00    	fldl   0x42c2a8
4170cc:	eb 1e                	jmp    0x4170ec
4170ce:	d9 ee                	fldz
4170d0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4170d3:	dc 19                	fcompl (%ecx)
4170d5:	df e0                	fnstsw %ax
4170d7:	f6 c4 05             	test   $0x5,%ah
4170da:	7a 08                	jp     0x4170e4
4170dc:	dd 05 98 c2 42 00    	fldl   0x42c298
4170e2:	eb 08                	jmp    0x4170ec
4170e4:	dd 05 98 c2 42 00    	fldl   0x42c298
4170ea:	d9 e0                	fchs
4170ec:	dd 19                	fstpl  (%ecx)
4170ee:	83 e6 fe             	and    $0xfffffffe,%esi
4170f1:	e9 d4 00 00 00       	jmp    0x4171ca
4170f6:	a8 02                	test   $0x2,%al
4170f8:	0f 84 cc 00 00 00    	je     0x4171ca
4170fe:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
417102:	0f 84 c2 00 00 00    	je     0x4171ca
417108:	33 f6                	xor    %esi,%esi
41710a:	a8 10                	test   $0x10,%al
41710c:	74 02                	je     0x417110
41710e:	8b f3                	mov    %ebx,%esi
417110:	d9 ee                	fldz
417112:	57                   	push   %edi
417113:	8b 7d 0c             	mov    0xc(%ebp),%edi
417116:	dc 1f                	fcompl (%edi)
417118:	df e0                	fnstsw %ax
41711a:	f6 c4 44             	test   $0x44,%ah
41711d:	0f 8b 91 00 00 00    	jnp    0x4171b4
417123:	dd 07                	fldl   (%edi)
417125:	8d 45 f8             	lea    -0x8(%ebp),%eax
417128:	50                   	push   %eax
417129:	51                   	push   %ecx
41712a:	51                   	push   %ecx
41712b:	dd 1c 24             	fstpl  (%esp)
41712e:	e8 f7 21 00 00       	call   0x41932a
417133:	8b 4d f8             	mov    -0x8(%ebp),%ecx
417136:	dd 5d ec             	fstpl  -0x14(%ebp)
417139:	81 c1 00 fa ff ff    	add    $0xfffffa00,%ecx
41713f:	83 c4 0c             	add    $0xc,%esp
417142:	81 f9 ce fb ff ff    	cmp    $0xfffffbce,%ecx
417148:	7d 0d                	jge    0x417157
41714a:	dd 45 ec             	fldl   -0x14(%ebp)
41714d:	8b f3                	mov    %ebx,%esi
41714f:	dc 0d 50 d6 41 00    	fmull  0x41d650
417155:	eb 53                	jmp    0x4171aa
417157:	d9 ee                	fldz
417159:	dc 5d ec             	fcompl -0x14(%ebp)
41715c:	df e0                	fnstsw %ax
41715e:	f6 c4 41             	test   $0x41,%ah
417161:	75 04                	jne    0x417167
417163:	8b d3                	mov    %ebx,%edx
417165:	eb 02                	jmp    0x417169
417167:	33 d2                	xor    %edx,%edx
417169:	8b 45 f2             	mov    -0xe(%ebp),%eax
41716c:	83 e0 0f             	and    $0xf,%eax
41716f:	83 c8 10             	or     $0x10,%eax
417172:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
417176:	b8 03 fc ff ff       	mov    $0xfffffc03,%eax
41717b:	3b c8                	cmp    %eax,%ecx
41717d:	7d 22                	jge    0x4171a1
41717f:	2b c1                	sub    %ecx,%eax
417181:	84 5d ec             	test   %bl,-0x14(%ebp)
417184:	74 06                	je     0x41718c
417186:	85 f6                	test   %esi,%esi
417188:	75 02                	jne    0x41718c
41718a:	8b f3                	mov    %ebx,%esi
41718c:	d1 6d ec             	shrl   $1,-0x14(%ebp)
41718f:	84 5d f0             	test   %bl,-0x10(%ebp)
417192:	74 07                	je     0x41719b
417194:	81 4d ec 00 00 00 80 	orl    $0x80000000,-0x14(%ebp)
41719b:	d1 6d f0             	shrl   $1,-0x10(%ebp)
41719e:	48                   	dec    %eax
41719f:	75 e0                	jne    0x417181
4171a1:	85 d2                	test   %edx,%edx
4171a3:	74 08                	je     0x4171ad
4171a5:	dd 45 ec             	fldl   -0x14(%ebp)
4171a8:	d9 e0                	fchs
4171aa:	dd 5d ec             	fstpl  -0x14(%ebp)
4171ad:	dd 45 ec             	fldl   -0x14(%ebp)
4171b0:	dd 1f                	fstpl  (%edi)
4171b2:	eb 02                	jmp    0x4171b6
4171b4:	8b f3                	mov    %ebx,%esi
4171b6:	5f                   	pop    %edi
4171b7:	85 f6                	test   %esi,%esi
4171b9:	74 08                	je     0x4171c3
4171bb:	6a 10                	push   $0x10
4171bd:	e8 a1 00 00 00       	call   0x417263
4171c2:	59                   	pop    %ecx
4171c3:	83 65 fc fd          	andl   $0xfffffffd,-0x4(%ebp)
4171c7:	8b 75 fc             	mov    -0x4(%ebp),%esi
4171ca:	f6 45 08 10          	testb  $0x10,0x8(%ebp)
4171ce:	74 11                	je     0x4171e1
4171d0:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
4171d4:	74 0b                	je     0x4171e1
4171d6:	6a 20                	push   $0x20
4171d8:	e8 86 00 00 00       	call   0x417263
4171dd:	59                   	pop    %ecx
4171de:	83 e6 ef             	and    $0xffffffef,%esi
4171e1:	33 c0                	xor    %eax,%eax
4171e3:	85 f6                	test   %esi,%esi
4171e5:	5e                   	pop    %esi
4171e6:	0f 94 c0             	sete   %al
4171e9:	5b                   	pop    %ebx
4171ea:	c9                   	leave
4171eb:	c3                   	ret
4171ec:	8b ff                	mov    %edi,%edi
4171ee:	55                   	push   %ebp
4171ef:	8b ec                	mov    %esp,%ebp
4171f1:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
4171f5:	74 15                	je     0x41720c
4171f7:	7e 1e                	jle    0x417217
4171f9:	83 7d 08 03          	cmpl   $0x3,0x8(%ebp)
4171fd:	7f 18                	jg     0x417217
4171ff:	e8 d1 e8 fe ff       	call   0x405ad5
417204:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
41720a:	5d                   	pop    %ebp
41720b:	c3                   	ret
41720c:	e8 c4 e8 fe ff       	call   0x405ad5
417211:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
417217:	5d                   	pop    %ebp
417218:	c3                   	ret
417219:	8b ff                	mov    %edi,%edi
41721b:	55                   	push   %ebp
41721c:	8b ec                	mov    %esp,%ebp
41721e:	51                   	push   %ecx
41721f:	9b dd 7d fc          	fstsw  -0x4(%ebp)
417223:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
417227:	c9                   	leave
417228:	c3                   	ret
417229:	8b ff                	mov    %edi,%edi
41722b:	55                   	push   %ebp
41722c:	8b ec                	mov    %esp,%ebp
41722e:	51                   	push   %ecx
41722f:	dd 7d fc             	fnstsw -0x4(%ebp)
417232:	db e2                	fnclex
417234:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
417238:	c9                   	leave
417239:	c3                   	ret
41723a:	8b ff                	mov    %edi,%edi
41723c:	55                   	push   %ebp
41723d:	8b ec                	mov    %esp,%ebp
41723f:	51                   	push   %ecx
417240:	9b d9 7d fc          	fstcw  -0x4(%ebp)
417244:	8b 45 0c             	mov    0xc(%ebp),%eax
417247:	8b 4d 08             	mov    0x8(%ebp),%ecx
41724a:	23 4d 0c             	and    0xc(%ebp),%ecx
41724d:	f7 d0                	not    %eax
41724f:	23 45 fc             	and    -0x4(%ebp),%eax
417252:	0b c1                	or     %ecx,%eax
417254:	0f b7 c0             	movzwl %ax,%eax
417257:	89 45 0c             	mov    %eax,0xc(%ebp)
41725a:	d9 6d 0c             	fldcw  0xc(%ebp)
41725d:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
417261:	c9                   	leave