40a100:	c3                   	ret
40a101:	8d 40 00             	lea    0x0(%eax),%eax
40a104:	55                   	push   %ebp
40a105:	8b ec                	mov    %esp,%ebp
40a107:	53                   	push   %ebx
40a108:	31 db                	xor    %ebx,%ebx
40a10a:	89 c1                	mov    %eax,%ecx
40a10c:	dd 45 08             	fldl   0x8(%ebp)
40a10f:	d8 8b 7c 08 46 00    	fmuls  0x46087c(%ebx)
40a115:	83 ec 08             	sub    $0x8,%esp
40a118:	df 3c 24             	fistpll (%esp)
40a11b:	9b                   	fwait
40a11c:	58                   	pop    %eax
40a11d:	5a                   	pop    %edx
40a11e:	09 d2                	or     %edx,%edx
40a120:	79 11                	jns    0x40a133
40a122:	f7 da                	neg    %edx
40a124:	f7 d8                	neg    %eax
40a126:	83 da 00             	sbb    $0x0,%edx
40a129:	f7 b3 80 08 46 00    	divl   0x460880(%ebx)
40a12f:	f7 d8                	neg    %eax
40a131:	eb 06                	jmp    0x40a139
40a133:	f7 b3 80 08 46 00    	divl   0x460880(%ebx)
40a139:	05 5a 95 0a 00       	add    $0xa955a,%eax
40a13e:	89 11                	mov    %edx,(%ecx)
40a140:	89 41 04             	mov    %eax,0x4(%ecx)
40a143:	5b                   	pop    %ebx
40a144:	5d                   	pop    %ebp
40a145:	c2 08 00             	ret    $0x8
40a148:	55                   	push   %ebp
40a149:	8b ec                	mov    %esp,%ebp
40a14b:	83 c4 f8             	add    $0xfffffff8,%esp
40a14e:	56                   	push   %esi
40a14f:	8b 75 0c             	mov    0xc(%ebp),%esi
40a152:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40a156:	66 83 f8 18          	cmp    $0x18,%ax
40a15a:	73 4d                	jae    0x40a1a9
40a15c:	66 83 fa 3c          	cmp    $0x3c,%dx
40a160:	73 47                	jae    0x40a1a9
40a162:	66 83 f9 3c          	cmp    $0x3c,%cx
40a166:	73 41                	jae    0x40a1a9
40a168:	66 81 fe e8 03       	cmp    $0x3e8,%si
40a16d:	73 3a                	jae    0x40a1a9
40a16f:	0f b7 c0             	movzwl %ax,%eax
40a172:	69 c0 80 ee 36 00    	imul   $0x36ee80,%eax,%eax
40a178:	0f b7 d2             	movzwl %dx,%edx
40a17b:	69 d2 60 ea 00 00    	imul   $0xea60,%edx,%edx
40a181:	03 c2                	add    %edx,%eax
40a183:	0f b7 d1             	movzwl %cx,%edx
40a186:	69 d2 e8 03 00 00    	imul   $0x3e8,%edx,%edx
40a18c:	03 c2                	add    %edx,%eax
40a18e:	0f b7 d6             	movzwl %si,%edx
40a191:	03 c2                	add    %edx,%eax
40a193:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a196:	db 45 f8             	fildl  -0x8(%ebp)
40a199:	d8 35 b4 a1 40 00    	fdivs  0x40a1b4
40a19f:	8b 45 08             	mov    0x8(%ebp),%eax
40a1a2:	dd 18                	fstpl  (%eax)
40a1a4:	9b                   	fwait
40a1a5:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40a1a9:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
40a1ad:	5e                   	pop    %esi
40a1ae:	59                   	pop    %ecx
40a1af:	59                   	pop    %ecx
40a1b0:	5d                   	pop    %ebp
40a1b1:	c2 08 00             	ret    $0x8
40a1b4:	80 cb a4             	or     $0xa4,%bl
40a1b7:	4c                   	dec    %esp
40a1b8:	55                   	push   %ebp
40a1b9:	8b ec                	mov    %esp,%ebp
40a1bb:	83 c4 f4             	add    $0xfffffff4,%esp
40a1be:	53                   	push   %ebx
40a1bf:	56                   	push   %esi
40a1c0:	57                   	push   %edi
40a1c1:	8b f9                	mov    %ecx,%edi
40a1c3:	8b f2                	mov    %edx,%esi
40a1c5:	8b d8                	mov    %eax,%ebx
40a1c7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a1ca:	50                   	push   %eax
40a1cb:	ff 75 10             	push   0x10(%ebp)
40a1ce:	ff 75 0c             	push   0xc(%ebp)
40a1d1:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a1d4:	e8 2b ff ff ff       	call   0x40a104
40a1d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a1dc:	8d 4d fe             	lea    -0x2(%ebp),%ecx
40a1df:	66 ba 60 ea          	mov    $0xea60,%dx
40a1e3:	e8 f4 e3 ff ff       	call   0x4085dc
40a1e8:	56                   	push   %esi
40a1e9:	8b cb                	mov    %ebx,%ecx
40a1eb:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
40a1ef:	66 ba 3c 00          	mov    $0x3c,%dx
40a1f3:	e8 e4 e3 ff ff       	call   0x4085dc
40a1f8:	8b 45 08             	mov    0x8(%ebp),%eax
40a1fb:	50                   	push   %eax
40a1fc:	8b cf                	mov    %edi,%ecx
40a1fe:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40a202:	66 ba e8 03          	mov    $0x3e8,%dx
40a206:	e8 d1 e3 ff ff       	call   0x4085dc
40a20b:	5f                   	pop    %edi
40a20c:	5e                   	pop    %esi
40a20d:	5b                   	pop    %ebx
40a20e:	8b e5                	mov    %ebp,%esp
40a210:	5d                   	pop    %ebp
40a211:	c2 0c 00             	ret    $0xc
40a214:	53                   	push   %ebx
40a215:	56                   	push   %esi
40a216:	8b c8                	mov    %eax,%ecx
40a218:	0f b7 c1             	movzwl %cx,%eax
40a21b:	83 e0 03             	and    $0x3,%eax
40a21e:	85 c0                	test   %eax,%eax
40a220:	75 21                	jne    0x40a243
40a222:	0f b7 d9             	movzwl %cx,%ebx
40a225:	8b c3                	mov    %ebx,%eax
40a227:	be 64 00 00 00       	mov    $0x64,%esi
40a22c:	33 d2                	xor    %edx,%edx
40a22e:	f7 f6                	div    %esi
40a230:	85 d2                	test   %edx,%edx
40a232:	75 14                	jne    0x40a248
40a234:	8b c3                	mov    %ebx,%eax
40a236:	b9 90 01 00 00       	mov    $0x190,%ecx
40a23b:	33 d2                	xor    %edx,%edx
40a23d:	f7 f1                	div    %ecx
40a23f:	85 d2                	test   %edx,%edx
40a241:	74 05                	je     0x40a248
40a243:	33 c0                	xor    %eax,%eax
40a245:	5e                   	pop    %esi
40a246:	5b                   	pop    %ebx
40a247:	c3                   	ret
40a248:	b0 01                	mov    $0x1,%al
40a24a:	5e                   	pop    %esi
40a24b:	5b                   	pop    %ebx
40a24c:	c3                   	ret
40a24d:	8d 40 00             	lea    0x0(%eax),%eax
40a250:	55                   	push   %ebp
40a251:	8b ec                	mov    %esp,%ebp
40a253:	83 c4 f8             	add    $0xfffffff8,%esp
40a256:	53                   	push   %ebx
40a257:	56                   	push   %esi
40a258:	57                   	push   %edi
40a259:	8b d9                	mov    %ecx,%ebx
40a25b:	8b fa                	mov    %edx,%edi
40a25d:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
40a261:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
40a265:	0f b7 45 fe          	movzwl -0x2(%ebp),%eax
40a269:	e8 a6 ff ff ff       	call   0x40a214
40a26e:	83 e0 7f             	and    $0x7f,%eax
40a271:	8d 04 40             	lea    (%eax,%eax,2),%eax
40a274:	8d 34 c5 dc 07 46 00 	lea    0x4607dc(,%eax,8),%esi
40a27b:	66 83 7d fe 01       	cmpw   $0x1,-0x2(%ebp)
40a280:	0f 82 86 00 00 00    	jb     0x40a30c
40a286:	66 81 7d fe 0f 27    	cmpw   $0x270f,-0x2(%ebp)
40a28c:	77 7e                	ja     0x40a30c
40a28e:	66 83 ff 01          	cmp    $0x1,%di
40a292:	72 78                	jb     0x40a30c
40a294:	66 83 ff 0c          	cmp    $0xc,%di
40a298:	77 72                	ja     0x40a30c
40a29a:	66 83 fb 01          	cmp    $0x1,%bx
40a29e:	72 6c                	jb     0x40a30c
40a2a0:	0f b7 c7             	movzwl %di,%eax
40a2a3:	66 3b 5c 46 fe       	cmp    -0x2(%esi,%eax,2),%bx
40a2a8:	77 62                	ja     0x40a30c
40a2aa:	0f b7 c7             	movzwl %di,%eax
40a2ad:	48                   	dec    %eax
40a2ae:	85 c0                	test   %eax,%eax
40a2b0:	7e 0e                	jle    0x40a2c0
40a2b2:	b9 01 00 00 00       	mov    $0x1,%ecx
40a2b7:	66 03 5c 4e fe       	add    -0x2(%esi,%ecx,2),%bx
40a2bc:	41                   	inc    %ecx
40a2bd:	48                   	dec    %eax
40a2be:	75 f7                	jne    0x40a2b7
40a2c0:	0f b7 4d fe          	movzwl -0x2(%ebp),%ecx
40a2c4:	49                   	dec    %ecx
40a2c5:	8b c1                	mov    %ecx,%eax
40a2c7:	be 64 00 00 00       	mov    $0x64,%esi
40a2cc:	99                   	cltd
40a2cd:	f7 fe                	idiv   %esi
40a2cf:	69 f1 6d 01 00 00    	imul   $0x16d,%ecx,%esi
40a2d5:	8b d1                	mov    %ecx,%edx
40a2d7:	85 d2                	test   %edx,%edx
40a2d9:	79 03                	jns    0x40a2de
40a2db:	83 c2 03             	add    $0x3,%edx
40a2de:	c1 fa 02             	sar    $0x2,%edx
40a2e1:	03 f2                	add    %edx,%esi
40a2e3:	2b f0                	sub    %eax,%esi
40a2e5:	8b c1                	mov    %ecx,%eax
40a2e7:	b9 90 01 00 00       	mov    $0x190,%ecx
40a2ec:	99                   	cltd
40a2ed:	f7 f9                	idiv   %ecx
40a2ef:	03 f0                	add    %eax,%esi
40a2f1:	0f b7 c3             	movzwl %bx,%eax
40a2f4:	03 f0                	add    %eax,%esi
40a2f6:	81 ee 5a 95 0a 00    	sub    $0xa955a,%esi
40a2fc:	89 75 f8             	mov    %esi,-0x8(%ebp)
40a2ff:	db 45 f8             	fildl  -0x8(%ebp)
40a302:	8b 45 08             	mov    0x8(%ebp),%eax
40a305:	dd 18                	fstpl  (%eax)
40a307:	9b                   	fwait
40a308:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
40a30c:	0f b6 45 fd          	movzbl -0x3(%ebp),%eax
40a310:	5f                   	pop    %edi
40a311:	5e                   	pop    %esi
40a312:	5b                   	pop    %ebx
40a313:	59                   	pop    %ecx
40a314:	59                   	pop    %ecx
40a315:	5d                   	pop    %ebp
40a316:	c2 04 00             	ret    $0x4
40a319:	8d 40 00             	lea    0x0(%eax),%eax
40a31c:	55                   	push   %ebp
40a31d:	8b ec                	mov    %esp,%ebp
40a31f:	83 c4 e8             	add    $0xffffffe8,%esp
40a322:	53                   	push   %ebx
40a323:	56                   	push   %esi
40a324:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40a327:	89 55 f8             	mov    %edx,-0x8(%ebp)
40a32a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a32d:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a330:	ff 75 10             	push   0x10(%ebp)
40a333:	ff 75 0c             	push   0xc(%ebp)
40a336:	8d 45 e8             	lea    -0x18(%ebp),%eax
40a339:	e8 c6 fd ff ff       	call   0x40a104
40a33e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40a341:	85 c9                	test   %ecx,%ecx
40a343:	7f 24                	jg     0x40a369
40a345:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a348:	66 c7 00 00 00       	movw   $0x0,(%eax)
40a34d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a350:	66 c7 00 00 00       	movw   $0x0,(%eax)
40a355:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a358:	66 c7 00 00 00       	movw   $0x0,(%eax)
40a35d:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40a362:	33 d2                	xor    %edx,%edx
40a364:	e9 f2 00 00 00       	jmp    0x40a45b
40a369:	8b c1                	mov    %ecx,%eax
40a36b:	be 07 00 00 00       	mov    $0x7,%esi
40a370:	99                   	cltd
40a371:	f7 fe                	idiv   %esi
40a373:	42                   	inc    %edx
40a374:	66 89 13             	mov    %dx,(%ebx)
40a377:	49                   	dec    %ecx
40a378:	66 bb 01 00          	mov    $0x1,%bx
40a37c:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40a382:	7c 13                	jl     0x40a397
40a384:	81 e9 b1 3a 02 00    	sub    $0x23ab1,%ecx
40a38a:	66 81 c3 90 01       	add    $0x190,%bx
40a38f:	81 f9 b1 3a 02 00    	cmp    $0x23ab1,%ecx
40a395:	7d ed                	jge    0x40a384
40a397:	8d 45 f2             	lea    -0xe(%ebp),%eax
40a39a:	50                   	push   %eax
40a39b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a39e:	66 ba ac 8e          	mov    $0x8eac,%dx
40a3a2:	91                   	xchg   %eax,%ecx
40a3a3:	e8 34 e2 ff ff       	call   0x4085dc
40a3a8:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
40a3ad:	75 0a                	jne    0x40a3b9
40a3af:	66 ff 4d f0          	decw   -0x10(%ebp)
40a3b3:	66 81 45 f2 ac 8e    	addw   $0x8eac,-0xe(%ebp)
40a3b9:	66 6b 45 f0 64       	imul   $0x64,-0x10(%ebp),%ax
40a3be:	66 03 d8             	add    %ax,%bx
40a3c1:	8d 45 f2             	lea    -0xe(%ebp),%eax
40a3c4:	50                   	push   %eax
40a3c5:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a3c8:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40a3cc:	66 ba b5 05          	mov    $0x5b5,%dx
40a3d0:	e8 07 e2 ff ff       	call   0x4085dc
40a3d5:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
40a3d9:	03 c0                	add    %eax,%eax
40a3db:	03 c0                	add    %eax,%eax
40a3dd:	66 03 d8             	add    %ax,%bx
40a3e0:	8d 45 f2             	lea    -0xe(%ebp),%eax
40a3e3:	50                   	push   %eax
40a3e4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40a3e7:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40a3eb:	66 ba 6d 01          	mov    $0x16d,%dx
40a3ef:	e8 e8 e1 ff ff       	call   0x4085dc
40a3f4:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
40a3f9:	75 0a                	jne    0x40a405
40a3fb:	66 ff 4d f0          	decw   -0x10(%ebp)
40a3ff:	66 81 45 f2 6d 01    	addw   $0x16d,-0xe(%ebp)
40a405:	66 03 5d f0          	add    -0x10(%ebp),%bx
40a409:	8b c3                	mov    %ebx,%eax
40a40b:	e8 04 fe ff ff       	call   0x40a214
40a410:	8b d0                	mov    %eax,%edx
40a412:	0f b6 c2             	movzbl %dl,%eax
40a415:	8d 04 40             	lea    (%eax,%eax,2),%eax
40a418:	8d 34 c5 dc 07 46 00 	lea    0x4607dc(,%eax,8),%esi
40a41f:	66 b8 01 00          	mov    $0x1,%ax
40a423:	0f b7 c8             	movzwl %ax,%ecx
40a426:	0f b7 4c 4e fe       	movzwl -0x2(%esi,%ecx,2),%ecx
40a42b:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
40a42f:	0f b7 4d f2          	movzwl -0xe(%ebp),%ecx
40a433:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
40a437:	72 0b                	jb     0x40a444
40a439:	0f b7 4d f0          	movzwl -0x10(%ebp),%ecx
40a43d:	66 29 4d f2          	sub    %cx,-0xe(%ebp)
40a441:	40                   	inc    %eax
40a442:	eb df                	jmp    0x40a423
40a444:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a447:	66 89 19             	mov    %bx,(%ecx)
40a44a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a44d:	66 89 01             	mov    %ax,(%ecx)
40a450:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40a454:	40                   	inc    %eax
40a455:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a458:	66 89 01             	mov    %ax,(%ecx)
40a45b:	8b c2                	mov    %edx,%eax
40a45d:	5e                   	pop    %esi
40a45e:	5b                   	pop    %ebx
40a45f:	8b e5                	mov    %ebp,%esp
40a461:	5d                   	pop    %ebp
40a462:	c2 0c 00             	ret    $0xc
40a465:	8d 40 00             	lea    0x0(%eax),%eax
40a468:	55                   	push   %ebp
40a469:	8b ec                	mov    %esp,%ebp
40a46b:	51                   	push   %ecx
40a46c:	56                   	push   %esi
40a46d:	8b f0                	mov    %eax,%esi
40a46f:	ff 75 0c             	push   0xc(%ebp)
40a472:	ff 75 08             	push   0x8(%ebp)
40a475:	8d 45 fe             	lea    -0x2(%ebp),%eax
40a478:	50                   	push   %eax
40a479:	8b c6                	mov    %esi,%eax
40a47b:	e8 9c fe ff ff       	call   0x40a31c
40a480:	5e                   	pop    %esi
40a481:	59                   	pop    %ecx
40a482:	5d                   	pop    %ebp
40a483:	c2 08 00             	ret    $0x8
40a486:	8b c0                	mov    %eax,%eax
40a488:	55                   	push   %ebp
40a489:	8b ec                	mov    %esp,%ebp
40a48b:	83 c4 f8             	add    $0xfffffff8,%esp
40a48e:	ff 75 0c             	push   0xc(%ebp)
40a491:	ff 75 08             	push   0x8(%ebp)
40a494:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a497:	e8 68 fc ff ff       	call   0x40a104
40a49c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a49f:	b9 07 00 00 00       	mov    $0x7,%ecx
40a4a4:	99                   	cltd
40a4a5:	f7 f9                	idiv   %ecx
40a4a7:	8b c2                	mov    %edx,%eax
40a4a9:	40                   	inc    %eax
40a4aa:	59                   	pop    %ecx
40a4ab:	59                   	pop    %ecx
40a4ac:	5d                   	pop    %ebp
40a4ad:	c2 08 00             	ret    $0x8
40a4b0:	83 c4 f0             	add    $0xfffffff0,%esp
40a4b3:	54                   	push   %esp
40a4b4:	e8 f7 c4 ff ff       	call   0x4069b0
40a4b9:	0f b7 04 24          	movzwl (%esp),%eax
40a4bd:	83 c4 10             	add    $0x10,%esp
40a4c0:	c3                   	ret