40a119:	53                   	push   %ebx
40a11a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a11d:	e8 d6 92 ff ff       	call   0x4033f8
40a122:	5b                   	pop    %ebx
40a123:	80 ff 2d             	cmp    $0x2d,%bh
40a126:	75 02                	jne    0x40a12a
40a128:	d9 e0                	fchs
40a12a:	80 fb 00             	cmp    $0x0,%bl
40a12d:	74 04                	je     0x40a133
40a12f:	df 3f                	fistpll (%edi)
40a131:	eb 02                	jmp    0x40a135
40a133:	db 3f                	fstpt  (%edi)
40a135:	9b df e0             	fstsw  %ax
40a138:	66 a9 09 00          	test   $0x9,%ax
40a13c:	75 06                	jne    0x40a144
40a13e:	b0 01                	mov    $0x1,%al
40a140:	eb 04                	jmp    0x40a146
40a142:	dd d8                	fstp   %st(0)
40a144:	31 c0                	xor    %eax,%eax
40a146:	9b db e2             	fclex
40a149:	d9 6d f8             	fldcw  -0x8(%ebp)
40a14c:	9b                   	fwait
40a14d:	eb 56                	jmp    0x40a1a5
40a14f:	ac                   	lods   %ds:(%esi),%al
40a150:	08 c0                	or     %al,%al
40a152:	74 04                	je     0x40a158
40a154:	3c 20                	cmp    $0x20,%al
40a156:	74 f7                	je     0x40a14f
40a158:	4e                   	dec    %esi
40a159:	c3                   	ret
40a15a:	31 c0                	xor    %eax,%eax
40a15c:	31 d2                	xor    %edx,%edx
40a15e:	ac                   	lods   %ds:(%esi),%al
40a15f:	2c 3a                	sub    $0x3a,%al
40a161:	04 0a                	add    $0xa,%al
40a163:	73 0f                	jae    0x40a174
40a165:	da 0d 70 b8 49 00    	fimull 0x49b870
40a16b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a16e:	da 45 f4             	fiaddl -0xc(%ebp)
40a171:	42                   	inc    %edx
40a172:	eb ea                	jmp    0x40a15e
40a174:	4e                   	dec    %esi
40a175:	c3                   	ret
40a176:	31 c0                	xor    %eax,%eax
40a178:	31 d2                	xor    %edx,%edx
40a17a:	8a 0e                	mov    (%esi),%cl
40a17c:	80 f9 2b             	cmp    $0x2b,%cl
40a17f:	74 05                	je     0x40a186
40a181:	80 f9 2d             	cmp    $0x2d,%cl
40a184:	75 01                	jne    0x40a187
40a186:	46                   	inc    %esi
40a187:	8a 06                	mov    (%esi),%al
40a189:	2c 3a                	sub    $0x3a,%al
40a18b:	04 0a                	add    $0xa,%al
40a18d:	73 0e                	jae    0x40a19d
40a18f:	46                   	inc    %esi
40a190:	6b d2 0a             	imul   $0xa,%edx,%edx
40a193:	01 c2                	add    %eax,%edx
40a195:	81 fa f4 01 00 00    	cmp    $0x1f4,%edx
40a19b:	72 ea                	jb     0x40a187
40a19d:	80 f9 2d             	cmp    $0x2d,%cl
40a1a0:	75 02                	jne    0x40a1a4
40a1a2:	f7 da                	neg    %edx
40a1a4:	c3                   	ret
40a1a5:	5b                   	pop    %ebx
40a1a6:	5e                   	pop    %esi
40a1a7:	5f                   	pop    %edi
40a1a8:	8b e5                	mov    %ebp,%esp
40a1aa:	5d                   	pop    %ebp
40a1ab:	c3                   	ret
40a1ac:	55                   	push   %ebp
40a1ad:	8b ec                	mov    %esp,%ebp
40a1af:	83 c4 c0             	add    $0xffffffc0,%esp
40a1b2:	53                   	push   %ebx
40a1b3:	8b d8                	mov    %eax,%ebx
40a1b5:	6a 00                	push   $0x0
40a1b7:	6a 0f                	push   $0xf
40a1b9:	6a 00                	push   $0x0
40a1bb:	8d 55 08             	lea    0x8(%ebp),%edx
40a1be:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a1c1:	33 c9                	xor    %ecx,%ecx
40a1c3:	e8 d0 f9 ff ff       	call   0x409b98
40a1c8:	8b c8                	mov    %eax,%ecx
40a1ca:	8d 55 c0             	lea    -0x40(%ebp),%edx
40a1cd:	8b c3                	mov    %ebx,%eax
40a1cf:	e8 64 a6 ff ff       	call   0x404838
40a1d4:	5b                   	pop    %ebx
40a1d5:	8b e5                	mov    %ebp,%esp
40a1d7:	5d                   	pop    %ebp
40a1d8:	c2 0c 00             	ret    $0xc
40a1db:	90                   	nop
40a1dc:	55                   	push   %ebp
40a1dd:	8b ec                	mov    %esp,%ebp
40a1df:	83 c4 c0             	add    $0xffffffc0,%esp
40a1e2:	53                   	push   %ebx
40a1e3:	8b d8                	mov    %eax,%ebx
40a1e5:	6a 00                	push   $0x0
40a1e7:	6a 00                	push   $0x0
40a1e9:	6a 00                	push   $0x0
40a1eb:	8d 55 08             	lea    0x8(%ebp),%edx
40a1ee:	8d 45 c0             	lea    -0x40(%ebp),%eax
40a1f1:	b1 01                	mov    $0x1,%cl
40a1f3:	e8 a0 f9 ff ff       	call   0x409b98
40a1f8:	8b c8                	mov    %eax,%ecx
40a1fa:	8d 55 c0             	lea    -0x40(%ebp),%edx
40a1fd:	8b c3                	mov    %ebx,%eax
40a1ff:	e8 34 a6 ff ff       	call   0x404838
40a204:	5b                   	pop    %ebx
40a205:	8b e5                	mov    %ebp,%esp
40a207:	5d                   	pop    %ebp
40a208:	c2 08 00             	ret    $0x8
40a20b:	90                   	nop
40a20c:	53                   	push   %ebx
40a20d:	83 c4 ec             	add    $0xffffffec,%esp
40a210:	8b d8                	mov    %eax,%ebx
40a212:	8b c3                	mov    %ebx,%eax
40a214:	e8 f3 a9 ff ff       	call   0x404c0c
40a219:	8b d4                	mov    %esp,%edx
40a21b:	33 c9                	xor    %ecx,%ecx
40a21d:	e8 76 fe ff ff       	call   0x40a098
40a222:	84 c0                	test   %al,%al
40a224:	75 19                	jne    0x40a23f
40a226:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40a22a:	c6 44 24 10 0b       	movb   $0xb,0x10(%esp)
40a22f:	8d 54 24 0c          	lea    0xc(%esp),%edx
40a233:	a1 54 74 4a 00       	mov    0x4a7454,%eax
40a238:	33 c9                	xor    %ecx,%ecx
40a23a:	e8 05 e5 ff ff       	call   0x408744
40a23f:	db 2c 24             	fldt   (%esp)
40a242:	83 c4 14             	add    $0x14,%esp
40a245:	5b                   	pop    %ebx
40a246:	c3                   	ret
40a247:	90                   	nop
40a248:	53                   	push   %ebx
40a249:	56                   	push   %esi
40a24a:	8b f2                	mov    %edx,%esi
40a24c:	8b d8                	mov    %eax,%ebx
40a24e:	8b c3                	mov    %ebx,%eax
40a250:	e8 b7 a9 ff ff       	call   0x404c0c
40a255:	8b d6                	mov    %esi,%edx
40a257:	33 c9                	xor    %ecx,%ecx
40a259:	e8 3a fe ff ff       	call   0x40a098
40a25e:	5e                   	pop    %esi
40a25f:	5b                   	pop    %ebx
40a260:	c3                   	ret
40a261:	8d 40 00             	lea    0x0(%eax),%eax
40a264:	53                   	push   %ebx
40a265:	56                   	push   %esi
40a266:	83 c4 f4             	add    $0xfffffff4,%esp
40a269:	8b f2                	mov    %edx,%esi
40a26b:	8b d8                	mov    %eax,%ebx
40a26d:	8b c3                	mov    %ebx,%eax
40a26f:	e8 98 a9 ff ff       	call   0x404c0c
40a274:	8b d4                	mov    %esp,%edx
40a276:	33 c9                	xor    %ecx,%ecx
40a278:	e8 1b fe ff ff       	call   0x40a098
40a27d:	84 c0                	test   %al,%al
40a27f:	74 06                	je     0x40a287
40a281:	db 2c 24             	fldt   (%esp)
40a284:	dd 1e                	fstpl  (%esi)
40a286:	9b                   	fwait
40a287:	83 c4 0c             	add    $0xc,%esp
40a28a:	5e                   	pop    %esi
40a28b:	5b                   	pop    %ebx
40a28c:	c3                   	ret
40a28d:	8d 40 00             	lea    0x0(%eax),%eax
40a290:	53                   	push   %ebx
40a291:	56                   	push   %esi
40a292:	83 c4 f4             	add    $0xfffffff4,%esp
40a295:	8b f2                	mov    %edx,%esi
40a297:	8b d8                	mov    %eax,%ebx
40a299:	8b c3                	mov    %ebx,%eax
40a29b:	e8 6c a9 ff ff       	call   0x404c0c
40a2a0:	8b d4                	mov    %esp,%edx
40a2a2:	33 c9                	xor    %ecx,%ecx
40a2a4:	e8 ef fd ff ff       	call   0x40a098
40a2a9:	84 c0                	test   %al,%al
40a2ab:	74 06                	je     0x40a2b3
40a2ad:	db 2c 24             	fldt   (%esp)
40a2b0:	d9 1e                	fstps  (%esi)
40a2b2:	9b                   	fwait
40a2b3:	83 c4 0c             	add    $0xc,%esp
40a2b6:	5e                   	pop    %esi
40a2b7:	5b                   	pop    %ebx
40a2b8:	c3                   	ret
40a2b9:	8d 40 00             	lea    0x0(%eax),%eax
40a2bc:	53                   	push   %ebx
40a2bd:	56                   	push   %esi
40a2be:	8b f2                	mov    %edx,%esi
40a2c0:	8b d8                	mov    %eax,%ebx
40a2c2:	8b c3                	mov    %ebx,%eax
40a2c4:	e8 43 a9 ff ff       	call   0x404c0c
40a2c9:	8b d6                	mov    %esi,%edx
40a2cb:	b1 01                	mov    $0x1,%cl
40a2cd:	e8 c6 fd ff ff       	call   0x40a098
40a2d2:	5e                   	pop    %esi
40a2d3:	5b                   	pop    %ebx
40a2d4:	c3                   	ret
40a2d5:	8d 40 00             	lea    0x0(%eax),%eax
40a2d8:	55                   	push   %ebp
40a2d9:	8b ec                	mov    %esp,%ebp
40a2db:	53                   	push   %ebx
40a2dc:	31 db                	xor    %ebx,%ebx
40a2de:	89 c1                	mov    %eax,%ecx
40a2e0:	dd 45 08             	fldl   0x8(%ebp)
40a2e3:	d8 8b 78 b8 49 00    	fmuls  0x49b878(%ebx)
40a2e9:	83 ec 08             	sub    $0x8,%esp
40a2ec:	df 3c 24             	fistpll (%esp)
40a2ef:	9b                   	fwait
40a2f0:	58                   	pop    %eax
40a2f1:	5a                   	pop    %edx
40a2f2:	09 d2                	or     %edx,%edx
40a2f4:	79 11                	jns    0x40a307
40a2f6:	f7 da                	neg    %edx
40a2f8:	f7 d8                	neg    %eax
40a2fa:	83 da 00             	sbb    $0x0,%edx
40a2fd:	f7 b3 7c b8 49 00    	divl   0x49b87c(%ebx)
40a303:	f7 d8                	neg    %eax
40a305:	eb 06                	jmp    0x40a30d
40a307:	f7 b3 7c b8 49 00    	divl   0x49b87c(%ebx)
40a30d:	05 5a 95 0a 00       	add    $0xa955a,%eax
40a312:	89 11                	mov    %edx,(%ecx)
40a314:	89 41 04             	mov    %eax,0x4(%ecx)
40a317:	5b                   	pop    %ebx
40a318:	5d                   	pop    %ebp
40a319:	c2 08 00             	ret    $0x8
40a31c:	55                   	push   %ebp
40a31d:	8b ec                	mov    %esp,%ebp
40a31f:	83 c4 f8             	add    $0xfffffff8,%esp
40a322:	56                   	push   %esi
40a323:	8b 75 0c             	mov    0xc(%ebp),%esi
40a326:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40a32a:	66 83 f8 18          	cmp    $0x18,%ax
40a32e:	73 4d                	jae    0x40a37d
40a330:	66 83 fa 3c          	cmp    $0x3c,%dx
40a334:	73 47                	jae    0x40a37d
40a336:	66 83 f9 3c          	cmp    $0x3c,%cx
40a33a:	73 41                	jae    0x40a37d
40a33c:	66 81 fe e8 03       	cmp    $0x3e8,%si
40a341:	73 3a                	jae    0x40a37d
40a343:	0f b7 c0             	movzwl %ax,%eax
40a346:	69 c0 80 ee 36 00    	imul   $0x36ee80,%eax,%eax
40a34c:	0f b7 d2             	movzwl %dx,%edx
40a34f:	69 d2 60 ea 00 00    	imul   $0xea60,%edx,%edx
40a355:	03 c2                	add    %edx,%eax
40a357:	0f b7 d1             	movzwl %cx,%edx
40a35a:	69 d2 e8 03 00 00    	imul   $0x3e8,%edx,%edx
40a360:	03 c2                	add    %edx,%eax
40a362:	0f b7 d6             	movzwl %si,%edx
40a365:	03 c2                	add    %edx,%eax
40a367:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a36a:	db 45 f8             	fildl  -0x8(%ebp)
40a36d:	d8 35 88 a3 40 00    	fdivs  0x40a388
40a373:	8b 45 08             	mov    0x8(%ebp),%eax
40a376:	dd 18                	fstpl  (%eax)
40a378:	9b                   	fwait
40a379:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40a37d:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
40a381:	5e                   	pop    %esi
40a382:	59                   	pop    %ecx
40a383:	59                   	pop    %ecx
40a384:	5d                   	pop    %ebp
40a385:	c2 08 00             	ret    $0x8
40a388:	80 cb a4             	or     $0xa4,%bl
40a38b:	4c                   	dec    %esp
40a38c:	55                   	push   %ebp
40a38d:	8b ec                	mov    %esp,%ebp
40a38f:	83 c4 f4             	add    $0xfffffff4,%esp
40a392:	53                   	push   %ebx
40a393:	56                   	push   %esi
40a394:	57                   	push   %edi
40a395:	8b f9                	mov    %ecx,%edi
40a397:	8b f2                	mov    %edx,%esi
40a399:	8b d8                	mov    %eax,%ebx
40a39b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a39e:	50                   	push   %eax
40a39f:	ff 75 10             	push   0x10(%ebp)
40a3a2:	ff 75 0c             	push   0xc(%ebp)
40a3a5:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a3a8:	e8 2b ff ff ff       	call   0x40a2d8
40a3ad:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a3b0:	8d 4d fe             	lea    -0x2(%ebp),%ecx
40a3b3:	66 ba 60 ea          	mov    $0xea60,%dx
40a3b7:	e8 6c e3 ff ff       	call   0x408728
40a3bc:	56                   	push   %esi
40a3bd:	8b cb                	mov    %ebx,%ecx
40a3bf:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
40a3c3:	66 ba 3c 00          	mov    $0x3c,%dx
40a3c7:	e8 5c e3 ff ff       	call   0x408728
40a3cc:	8b 45 08             	mov    0x8(%ebp),%eax
40a3cf:	50                   	push   %eax
40a3d0:	8b cf                	mov    %edi,%ecx
40a3d2:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40a3d6:	66 ba e8 03          	mov    $0x3e8,%dx
40a3da:	e8 49 e3 ff ff       	call   0x408728
40a3df:	5f                   	pop    %edi
40a3e0:	5e                   	pop    %esi
40a3e1:	5b                   	pop    %ebx
40a3e2:	8b e5                	mov    %ebp,%esp
40a3e4:	5d                   	pop    %ebp
40a3e5:	c2 0c 00             	ret    $0xc
40a3e8:	53                   	push   %ebx
40a3e9:	56                   	push   %esi
40a3ea:	8b c8                	mov    %eax,%ecx
40a3ec:	0f b7 c1             	movzwl %cx,%eax
40a3ef:	83 e0 03             	and    $0x3,%eax
40a3f2:	85 c0                	test   %eax,%eax
40a3f4:	75 21                	jne    0x40a417
40a3f6:	0f b7 d9             	movzwl %cx,%ebx
40a3f9:	8b c3                	mov    %ebx,%eax
40a3fb:	be 64 00 00 00       	mov    $0x64,%esi
40a400:	33 d2                	xor    %edx,%edx
40a402:	f7 f6                	div    %esi
40a404:	85 d2                	test   %edx,%edx
40a406:	75 14                	jne    0x40a41c
40a408:	8b c3                	mov    %ebx,%eax
40a40a:	b9 90 01 00 00       	mov    $0x190,%ecx
40a40f:	33 d2                	xor    %edx,%edx
40a411:	f7 f1                	div    %ecx
40a413:	85 d2                	test   %edx,%edx
40a415:	74 05                	je     0x40a41c
40a417:	33 c0                	xor    %eax,%eax
40a419:	5e                   	pop    %esi
40a41a:	5b                   	pop    %ebx
40a41b:	c3                   	ret
40a41c:	b0 01                	mov    $0x1,%al
40a41e:	5e                   	pop    %esi
40a41f:	5b                   	pop    %ebx
40a420:	c3                   	ret
40a421:	8d 40 00             	lea    0x0(%eax),%eax
40a424:	55                   	push   %ebp
40a425:	8b ec                	mov    %esp,%ebp
40a427:	83 c4 f8             	add    $0xfffffff8,%esp
40a42a:	53                   	push   %ebx
40a42b:	56                   	push   %esi
40a42c:	57                   	push   %edi
40a42d:	8b d9                	mov    %ecx,%ebx
40a42f:	8b fa                	mov    %edx,%edi
40a431:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40a435:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
40a439:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
40a43d:	e8 a6 ff ff ff       	call   0x40a3e8
40a442:	83 e0 7f             	and    $0x7f,%eax
40a445:	8d 04 40             	lea    (%eax,%eax,2),%eax
40a448:	8d 34 c5 d8 b7 49 00 	lea    0x49b7d8(,%eax,8),%esi
40a44f:	66 83 7d fe 01       	cmpw   $0x1,-0x2(%ebp)
40a454:	0f 82 86 00 00 00    	jb     0x40a4e0
40a45a:	66 81 7d fe 0f 27    	cmpw   $0x270f,-0x2(%ebp)
40a460:	77 7e                	ja     0x40a4e0
40a462:	66 83 ff 01          	cmp    $0x1,%di