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
40a4c1:	8d 40 00             	lea    0x0(%eax),%eax
40a4c4:	55                   	push   %ebp
40a4c5:	8b ec                	mov    %esp,%ebp
40a4c7:	53                   	push   %ebx
40a4c8:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a4cb:	bb 00 01 00 00       	mov    $0x100,%ebx
40a4d0:	2b 99 fc fe ff ff    	sub    -0x104(%ecx),%ebx
40a4d6:	3b d3                	cmp    %ebx,%edx
40a4d8:	7d 02                	jge    0x40a4dc
40a4da:	8b da                	mov    %edx,%ebx
40a4dc:	85 db                	test   %ebx,%ebx
40a4de:	74 1a                	je     0x40a4fa
40a4e0:	8b 55 08             	mov    0x8(%ebp),%edx
40a4e3:	8b 92 fc fe ff ff    	mov    -0x104(%edx),%edx
40a4e9:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a4ec:	8d 94 11 00 ff ff ff 	lea    -0x100(%ecx,%edx,1),%edx
40a4f3:	8b cb                	mov    %ebx,%ecx
40a4f5:	e8 e2 89 ff ff       	call   0x402edc
40a4fa:	8b 45 08             	mov    0x8(%ebp),%eax
40a4fd:	01 98 fc fe ff ff    	add    %ebx,-0x104(%eax)
40a503:	5b                   	pop    %ebx
40a504:	5d                   	pop    %ebp
40a505:	c3                   	ret
40a506:	8b c0                	mov    %eax,%eax
40a508:	55                   	push   %ebp
40a509:	8b ec                	mov    %esp,%ebp
40a50b:	8b d0                	mov    %eax,%edx
40a50d:	85 d2                	test   %edx,%edx
40a50f:	74 05                	je     0x40a516
40a511:	83 ea 04             	sub    $0x4,%edx
40a514:	8b 12                	mov    (%edx),%edx
40a516:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a519:	51                   	push   %ecx
40a51a:	e8 a5 ff ff ff       	call   0x40a4c4
40a51f:	59                   	pop    %ecx
40a520:	5d                   	pop    %ebp
40a521:	c3                   	ret
40a522:	8b c0                	mov    %eax,%eax
40a524:	55                   	push   %ebp
40a525:	8b ec                	mov    %esp,%ebp
40a527:	83 c4 e0             	add    $0xffffffe0,%esp
40a52a:	53                   	push   %ebx
40a52b:	56                   	push   %esi
40a52c:	8b f2                	mov    %edx,%esi
40a52e:	8b d8                	mov    %eax,%ebx
40a530:	8b 45 08             	mov    0x8(%ebp),%eax
40a533:	50                   	push   %eax
40a534:	6a 04                	push   $0x4
40a536:	89 75 e0             	mov    %esi,-0x20(%ebp)
40a539:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
40a53d:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40a540:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
40a544:	8d 45 e0             	lea    -0x20(%ebp),%eax
40a547:	50                   	push   %eax
40a548:	6a 01                	push   $0x1
40a54a:	b9 84 08 46 00       	mov    $0x460884,%ecx
40a54f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a552:	ba 10 00 00 00       	mov    $0x10,%edx
40a557:	e8 78 ef ff ff       	call   0x4094d4
40a55c:	8b d0                	mov    %eax,%edx
40a55e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a561:	e8 5e ff ff ff       	call   0x40a4c4
40a566:	59                   	pop    %ecx
40a567:	5e                   	pop    %esi
40a568:	5b                   	pop    %ebx
40a569:	8b e5                	mov    %ebp,%esp
40a56b:	5d                   	pop    %ebp
40a56c:	c3                   	ret
40a56d:	8d 40 00             	lea    0x0(%eax),%eax
40a570:	55                   	push   %ebp
40a571:	8b ec                	mov    %esp,%ebp
40a573:	53                   	push   %ebx
40a574:	8b 45 08             	mov    0x8(%ebp),%eax
40a577:	83 c0 fc             	add    $0xfffffffc,%eax
40a57a:	8b 10                	mov    (%eax),%edx
40a57c:	eb 02                	jmp    0x40a580
40a57e:	ff 00                	incl   (%eax)
40a580:	8b 08                	mov    (%eax),%ecx
40a582:	0f b6 09             	movzbl (%ecx),%ecx
40a585:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a588:	3a 4b fb             	cmp    -0x5(%ebx),%cl
40a58b:	74 f1                	je     0x40a57e
40a58d:	8b 00                	mov    (%eax),%eax
40a58f:	2b c2                	sub    %edx,%eax
40a591:	40                   	inc    %eax
40a592:	8b 55 08             	mov    0x8(%ebp),%edx
40a595:	89 42 f4             	mov    %eax,-0xc(%edx)
40a598:	5b                   	pop    %ebx
40a599:	5d                   	pop    %ebp
40a59a:	c3                   	ret
40a59b:	90                   	nop
40a59c:	55                   	push   %ebp
40a59d:	8b ec                	mov    %esp,%ebp
40a59f:	8b 45 08             	mov    0x8(%ebp),%eax
40a5a2:	80 78 ed 00          	cmpb   $0x0,-0x13(%eax)
40a5a6:	75 2a                	jne    0x40a5d2
40a5a8:	8b 45 08             	mov    0x8(%ebp),%eax
40a5ab:	8b 40 08             	mov    0x8(%eax),%eax
40a5ae:	ff 70 0c             	push   0xc(%eax)
40a5b1:	ff 70 08             	push   0x8(%eax)
40a5b4:	8b 45 08             	mov    0x8(%ebp),%eax
40a5b7:	8d 48 ee             	lea    -0x12(%eax),%ecx
40a5ba:	8b 45 08             	mov    0x8(%ebp),%eax
40a5bd:	8d 50 f0             	lea    -0x10(%eax),%edx
40a5c0:	8b 45 08             	mov    0x8(%ebp),%eax
40a5c3:	83 c0 f2             	add    $0xfffffff2,%eax
40a5c6:	e8 9d fe ff ff       	call   0x40a468
40a5cb:	8b 45 08             	mov    0x8(%ebp),%eax
40a5ce:	c6 40 ed 01          	movb   $0x1,-0x13(%eax)
40a5d2:	5d                   	pop    %ebp
40a5d3:	c3                   	ret
40a5d4:	55                   	push   %ebp
40a5d5:	8b ec                	mov    %esp,%ebp
40a5d7:	8b 45 08             	mov    0x8(%ebp),%eax
40a5da:	80 78 e3 00          	cmpb   $0x0,-0x1d(%eax)
40a5de:	75 31                	jne    0x40a611
40a5e0:	8b 45 08             	mov    0x8(%ebp),%eax
40a5e3:	8b 40 08             	mov    0x8(%eax),%eax
40a5e6:	ff 70 0c             	push   0xc(%eax)
40a5e9:	ff 70 08             	push   0x8(%eax)
40a5ec:	8b 45 08             	mov    0x8(%ebp),%eax
40a5ef:	83 c0 e4             	add    $0xffffffe4,%eax
40a5f2:	50                   	push   %eax
40a5f3:	8b 45 08             	mov    0x8(%ebp),%eax
40a5f6:	8d 48 e6             	lea    -0x1a(%eax),%ecx
40a5f9:	8b 45 08             	mov    0x8(%ebp),%eax
40a5fc:	8d 50 e8             	lea    -0x18(%eax),%edx
40a5ff:	8b 45 08             	mov    0x8(%ebp),%eax
40a602:	83 c0 ea             	add    $0xffffffea,%eax
40a605:	e8 ae fb ff ff       	call   0x40a1b8
40a60a:	8b 45 08             	mov    0x8(%ebp),%eax
40a60d:	c6 40 e3 01          	movb   $0x1,-0x1d(%eax)
40a611:	5d                   	pop    %ebp
40a612:	c3                   	ret
40a613:	90                   	nop
40a614:	55                   	push   %ebp
40a615:	8b ec                	mov    %esp,%ebp
40a617:	81 c4 e4 fe ff ff    	add    $0xfffffee4,%esp
40a61d:	53                   	push   %ebx
40a61e:	56                   	push   %esi
40a61f:	33 c9                	xor    %ecx,%ecx
40a621:	89 8d e4 fe ff ff    	mov    %ecx,-0x11c(%ebp)
40a627:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40a62a:	8b da                	mov    %edx,%ebx
40a62c:	8b f0                	mov    %eax,%esi
40a62e:	33 c0                	xor    %eax,%eax
40a630:	55                   	push   %ebp
40a631:	68 76 a7 40 00       	push   $0x40a776
40a636:	64 ff 30             	push   %fs:(%eax)
40a639:	64 89 20             	mov    %esp,%fs:(%eax)
40a63c:	8b c3                	mov    %ebx,%eax
40a63e:	e8 dd a0 ff ff       	call   0x404720
40a643:	8b 45 08             	mov    0x8(%ebp),%eax
40a646:	0f b7 40 f2          	movzwl -0xe(%eax),%eax
40a64a:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40a64e:	8b 45 08             	mov    0x8(%ebp),%eax
40a651:	0f b7 40 f0          	movzwl -0x10(%eax),%eax
40a655:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40a659:	8b 45 08             	mov    0x8(%ebp),%eax
40a65c:	0f b7 40 ee          	movzwl -0x12(%eax),%eax
40a660:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
40a664:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a667:	ba 8c a7 40 00       	mov    $0x40a78c,%edx
40a66c:	e8 47 a1 ff ff       	call   0x4047b8
40a671:	68 00 01 00 00       	push   $0x100
40a676:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40a67c:	50                   	push   %eax
40a67d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a680:	e8 5f a5 ff ff       	call   0x404be4
40a685:	50                   	push   %eax
40a686:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a689:	50                   	push   %eax
40a68a:	6a 04                	push   $0x4
40a68c:	e8 4f c3 ff ff       	call   0x4069e0
40a691:	50                   	push   %eax