40b21c:	66 ba b5 05          	mov    $0x5b5,%dx
40b220:	e8 37 de ff ff       	call   0x40905c
40b225:	66 8b 45 f0          	mov    -0x10(%ebp),%ax
40b229:	c1 e0 02             	shl    $0x2,%eax
40b22c:	66 03 d8             	add    %ax,%bx
40b22f:	8d 45 f2             	lea    -0xe(%ebp),%eax
40b232:	50                   	push   %eax
40b233:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40b236:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40b23a:	66 ba 6d 01          	mov    $0x16d,%dx
40b23e:	e8 19 de ff ff       	call   0x40905c
40b243:	66 83 7d f0 04       	cmpw   $0x4,-0x10(%ebp)
40b248:	75 0a                	jne    0x40b254
40b24a:	66 ff 4d f0          	decw   -0x10(%ebp)
40b24e:	66 81 45 f2 6d 01    	addw   $0x16d,-0xe(%ebp)
40b254:	66 03 5d f0          	add    -0x10(%ebp),%bx
40b258:	8b c3                	mov    %ebx,%eax
40b25a:	e8 d9 fd ff ff       	call   0x40b038
40b25f:	8b d0                	mov    %eax,%edx
40b261:	33 c0                	xor    %eax,%eax
40b263:	8a c2                	mov    %dl,%al
40b265:	8d 04 40             	lea    (%eax,%eax,2),%eax
40b268:	8d 34 c5 e0 a0 68 00 	lea    0x68a0e0(,%eax,8),%esi
40b26f:	66 b8 01 00          	mov    $0x1,%ax
40b273:	0f b7 c8             	movzwl %ax,%ecx
40b276:	66 8b 4c 4e fe       	mov    -0x2(%esi,%ecx,2),%cx
40b27b:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
40b27f:	66 8b 4d f2          	mov    -0xe(%ebp),%cx
40b283:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
40b287:	72 0b                	jb     0x40b294
40b289:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
40b28d:	66 29 4d f2          	sub    %cx,-0xe(%ebp)
40b291:	40                   	inc    %eax
40b292:	eb df                	jmp    0x40b273
40b294:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40b297:	66 89 19             	mov    %bx,(%ecx)
40b29a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40b29d:	66 89 01             	mov    %ax,(%ecx)
40b2a0:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
40b2a4:	40                   	inc    %eax
40b2a5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b2a8:	66 89 01             	mov    %ax,(%ecx)
40b2ab:	8b c2                	mov    %edx,%eax
40b2ad:	5e                   	pop    %esi
40b2ae:	5b                   	pop    %ebx
40b2af:	8b e5                	mov    %ebp,%esp
40b2b1:	5d                   	pop    %ebp
40b2b2:	c2 0c 00             	ret    $0xc
40b2b5:	8d 40 00             	lea    0x0(%eax),%eax
40b2b8:	55                   	push   %ebp
40b2b9:	8b ec                	mov    %esp,%ebp
40b2bb:	51                   	push   %ecx
40b2bc:	56                   	push   %esi
40b2bd:	8b f0                	mov    %eax,%esi
40b2bf:	ff 75 0c             	push   0xc(%ebp)
40b2c2:	ff 75 08             	push   0x8(%ebp)
40b2c5:	8d 45 fe             	lea    -0x2(%ebp),%eax
40b2c8:	50                   	push   %eax
40b2c9:	8b c6                	mov    %esi,%eax
40b2cb:	e8 9c fe ff ff       	call   0x40b16c
40b2d0:	5e                   	pop    %esi
40b2d1:	59                   	pop    %ecx
40b2d2:	5d                   	pop    %ebp
40b2d3:	c2 08 00             	ret    $0x8
40b2d6:	8b c0                	mov    %eax,%eax
40b2d8:	55                   	push   %ebp
40b2d9:	8b ec                	mov    %esp,%ebp
40b2db:	83 c4 f8             	add    $0xfffffff8,%esp
40b2de:	ff 75 0c             	push   0xc(%ebp)
40b2e1:	ff 75 08             	push   0x8(%ebp)
40b2e4:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b2e7:	e8 fc fb ff ff       	call   0x40aee8
40b2ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b2ef:	b9 07 00 00 00       	mov    $0x7,%ecx
40b2f4:	99                   	cltd
40b2f5:	f7 f9                	idiv   %ecx
40b2f7:	8b c2                	mov    %edx,%eax
40b2f9:	40                   	inc    %eax
40b2fa:	59                   	pop    %ecx
40b2fb:	59                   	pop    %ecx
40b2fc:	5d                   	pop    %ebp
40b2fd:	c2 08 00             	ret    $0x8
40b300:	83 c4 e8             	add    $0xffffffe8,%esp
40b303:	8d 44 24 08          	lea    0x8(%esp),%eax
40b307:	50                   	push   %eax
40b308:	e8 fb be ff ff       	call   0x407208
40b30d:	66 8b 4c 24 0e       	mov    0xe(%esp),%cx
40b312:	66 8b 54 24 0a       	mov    0xa(%esp),%dx
40b317:	66 8b 44 24 08       	mov    0x8(%esp),%ax
40b31c:	e8 1b fe ff ff       	call   0x40b13c
40b321:	dd 1c 24             	fstpl  (%esp)
40b324:	9b dd 04 24          	fldl   (%esp)
40b328:	83 c4 18             	add    $0x18,%esp
40b32b:	c3                   	ret
40b32c:	83 c4 e8             	add    $0xffffffe8,%esp
40b32f:	8d 44 24 08          	lea    0x8(%esp),%eax
40b333:	50                   	push   %eax
40b334:	e8 cf be ff ff       	call   0x407208
40b339:	66 8b 44 24 16       	mov    0x16(%esp),%ax
40b33e:	50                   	push   %eax
40b33f:	66 8b 4c 24 18       	mov    0x18(%esp),%cx
40b344:	66 8b 54 24 16       	mov    0x16(%esp),%dx
40b349:	66 8b 44 24 14       	mov    0x14(%esp),%ax
40b34e:	e8 49 fc ff ff       	call   0x40af9c
40b353:	dd 1c 24             	fstpl  (%esp)
40b356:	9b dd 04 24          	fldl   (%esp)
40b35a:	83 c4 18             	add    $0x18,%esp
40b35d:	c3                   	ret
40b35e:	8b c0                	mov    %eax,%eax
40b360:	83 c4 e0             	add    $0xffffffe0,%esp
40b363:	8d 44 24 08          	lea    0x8(%esp),%eax
40b367:	50                   	push   %eax
40b368:	e8 9b be ff ff       	call   0x407208
40b36d:	66 8b 4c 24 0e       	mov    0xe(%esp),%cx
40b372:	66 8b 54 24 0a       	mov    0xa(%esp),%dx
40b377:	66 8b 44 24 08       	mov    0x8(%esp),%ax
40b37c:	e8 bb fd ff ff       	call   0x40b13c
40b381:	dd 5c 24 18          	fstpl  0x18(%esp)
40b385:	9b                   	fwait
40b386:	66 8b 44 24 16       	mov    0x16(%esp),%ax
40b38b:	50                   	push   %eax
40b38c:	66 8b 4c 24 18       	mov    0x18(%esp),%cx
40b391:	66 8b 54 24 16       	mov    0x16(%esp),%dx
40b396:	66 8b 44 24 14       	mov    0x14(%esp),%ax
40b39b:	e8 fc fb ff ff       	call   0x40af9c
40b3a0:	dc 44 24 18          	faddl  0x18(%esp)
40b3a4:	dd 1c 24             	fstpl  (%esp)
40b3a7:	9b dd 04 24          	fldl   (%esp)
40b3ab:	83 c4 20             	add    $0x20,%esp
40b3ae:	c3                   	ret
40b3af:	90                   	nop
40b3b0:	83 c4 f0             	add    $0xfffffff0,%esp
40b3b3:	54                   	push   %esp
40b3b4:	e8 4f be ff ff       	call   0x407208
40b3b9:	66 8b 04 24          	mov    (%esp),%ax
40b3bd:	83 c4 10             	add    $0x10,%esp
40b3c0:	c3                   	ret
40b3c1:	8d 40 00             	lea    0x0(%eax),%eax
40b3c4:	55                   	push   %ebp
40b3c5:	8b ec                	mov    %esp,%ebp
40b3c7:	53                   	push   %ebx
40b3c8:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b3cb:	bb 00 01 00 00       	mov    $0x100,%ebx
40b3d0:	2b 99 fc fe ff ff    	sub    -0x104(%ecx),%ebx
40b3d6:	3b d3                	cmp    %ebx,%edx
40b3d8:	7d 02                	jge    0x40b3dc
40b3da:	8b da                	mov    %edx,%ebx
40b3dc:	85 db                	test   %ebx,%ebx
40b3de:	74 1a                	je     0x40b3fa
40b3e0:	8b 55 08             	mov    0x8(%ebp),%edx
40b3e3:	8b 92 fc fe ff ff    	mov    -0x104(%edx),%edx
40b3e9:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b3ec:	8d 94 11 00 ff ff ff 	lea    -0x100(%ecx,%edx,1),%edx
40b3f3:	8b cb                	mov    %ebx,%ecx
40b3f5:	e8 26 76 ff ff       	call   0x402a20
40b3fa:	8b 45 08             	mov    0x8(%ebp),%eax
40b3fd:	01 98 fc fe ff ff    	add    %ebx,-0x104(%eax)
40b403:	5b                   	pop    %ebx
40b404:	5d                   	pop    %ebp
40b405:	c3                   	ret
40b406:	8b c0                	mov    %eax,%eax
40b408:	55                   	push   %ebp
40b409:	8b ec                	mov    %esp,%ebp
40b40b:	53                   	push   %ebx
40b40c:	8b d8                	mov    %eax,%ebx
40b40e:	8b 45 08             	mov    0x8(%ebp),%eax
40b411:	50                   	push   %eax
40b412:	8b c3                	mov    %ebx,%eax
40b414:	e8 07 97 ff ff       	call   0x404b20
40b419:	8b d0                	mov    %eax,%edx
40b41b:	8b c3                	mov    %ebx,%eax
40b41d:	e8 a2 ff ff ff       	call   0x40b3c4
40b422:	59                   	pop    %ecx
40b423:	5b                   	pop    %ebx
40b424:	5d                   	pop    %ebp
40b425:	c3                   	ret
40b426:	8b c0                	mov    %eax,%eax
40b428:	55                   	push   %ebp
40b429:	8b ec                	mov    %esp,%ebp
40b42b:	83 c4 e0             	add    $0xffffffe0,%esp
40b42e:	53                   	push   %ebx
40b42f:	56                   	push   %esi
40b430:	8b f2                	mov    %edx,%esi
40b432:	8b d8                	mov    %eax,%ebx
40b434:	8b 45 08             	mov    0x8(%ebp),%eax
40b437:	50                   	push   %eax
40b438:	6a 04                	push   $0x4
40b43a:	89 75 e0             	mov    %esi,-0x20(%ebp)
40b43d:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
40b441:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40b444:	c6 45 ec 00          	movb   $0x0,-0x14(%ebp)
40b448:	8d 45 e0             	lea    -0x20(%ebp),%eax
40b44b:	50                   	push   %eax
40b44c:	6a 01                	push   $0x1
40b44e:	b9 98 a1 68 00       	mov    $0x68a198,%ecx
40b453:	8d 45 f0             	lea    -0x10(%ebp),%eax
40b456:	ba 10 00 00 00       	mov    $0x10,%edx
40b45b:	e8 e8 ec ff ff       	call   0x40a148
40b460:	8b d0                	mov    %eax,%edx
40b462:	8d 45 f0             	lea    -0x10(%ebp),%eax
40b465:	e8 5a ff ff ff       	call   0x40b3c4
40b46a:	59                   	pop    %ecx
40b46b:	5e                   	pop    %esi
40b46c:	5b                   	pop    %ebx
40b46d:	8b e5                	mov    %ebp,%esp
40b46f:	5d                   	pop    %ebp
40b470:	c3                   	ret
40b471:	8d 40 00             	lea    0x0(%eax),%eax
40b474:	55                   	push   %ebp
40b475:	8b ec                	mov    %esp,%ebp
40b477:	53                   	push   %ebx
40b478:	8b 45 08             	mov    0x8(%ebp),%eax
40b47b:	83 c0 fc             	add    $0xfffffffc,%eax
40b47e:	8b 10                	mov    (%eax),%edx
40b480:	eb 02                	jmp    0x40b484
40b482:	ff 00                	incl   (%eax)
40b484:	8b 08                	mov    (%eax),%ecx
40b486:	8a 09                	mov    (%ecx),%cl
40b488:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b48b:	3a 4b fb             	cmp    -0x5(%ebx),%cl
40b48e:	74 f2                	je     0x40b482
40b490:	8b 00                	mov    (%eax),%eax
40b492:	2b c2                	sub    %edx,%eax
40b494:	40                   	inc    %eax
40b495:	8b 55 08             	mov    0x8(%ebp),%edx
40b498:	89 42 f4             	mov    %eax,-0xc(%edx)
40b49b:	5b                   	pop    %ebx
40b49c:	5d                   	pop    %ebp
40b49d:	c3                   	ret
40b49e:	8b c0                	mov    %eax,%eax
40b4a0:	55                   	push   %ebp
40b4a1:	8b ec                	mov    %esp,%ebp
40b4a3:	8b 45 08             	mov    0x8(%ebp),%eax
40b4a6:	80 78 ed 00          	cmpb   $0x0,-0x13(%eax)
40b4aa:	75 2a                	jne    0x40b4d6
40b4ac:	8b 45 08             	mov    0x8(%ebp),%eax
40b4af:	8b 40 08             	mov    0x8(%eax),%eax
40b4b2:	ff 70 0c             	push   0xc(%eax)
40b4b5:	ff 70 08             	push   0x8(%eax)
40b4b8:	8b 45 08             	mov    0x8(%ebp),%eax
40b4bb:	8d 48 ee             	lea    -0x12(%eax),%ecx
40b4be:	8b 45 08             	mov    0x8(%ebp),%eax
40b4c1:	8d 50 f0             	lea    -0x10(%eax),%edx
40b4c4:	8b 45 08             	mov    0x8(%ebp),%eax
40b4c7:	83 c0 f2             	add    $0xfffffff2,%eax
40b4ca:	e8 e9 fd ff ff       	call   0x40b2b8
40b4cf:	8b 45 08             	mov    0x8(%ebp),%eax
40b4d2:	c6 40 ed 01          	movb   $0x1,-0x13(%eax)
40b4d6:	5d                   	pop    %ebp
40b4d7:	c3                   	ret
40b4d8:	55                   	push   %ebp
40b4d9:	8b ec                	mov    %esp,%ebp
40b4db:	8b 45 08             	mov    0x8(%ebp),%eax
40b4de:	80 78 e3 00          	cmpb   $0x0,-0x1d(%eax)
40b4e2:	75 31                	jne    0x40b515
40b4e4:	8b 45 08             	mov    0x8(%ebp),%eax
40b4e7:	8b 40 08             	mov    0x8(%eax),%eax
40b4ea:	ff 70 0c             	push   0xc(%eax)
40b4ed:	ff 70 08             	push   0x8(%eax)
40b4f0:	8b 45 08             	mov    0x8(%ebp),%eax
40b4f3:	83 c0 e4             	add    $0xffffffe4,%eax
40b4f6:	50                   	push   %eax
40b4f7:	8b 45 08             	mov    0x8(%ebp),%eax
40b4fa:	8d 48 e6             	lea    -0x1a(%eax),%ecx
40b4fd:	8b 45 08             	mov    0x8(%ebp),%eax
40b500:	8d 50 e8             	lea    -0x18(%eax),%edx
40b503:	8b 45 08             	mov    0x8(%ebp),%eax
40b506:	83 c0 ea             	add    $0xffffffea,%eax
40b509:	e8 ce fa ff ff       	call   0x40afdc
40b50e:	8b 45 08             	mov    0x8(%ebp),%eax
40b511:	c6 40 e3 01          	movb   $0x1,-0x1d(%eax)
40b515:	5d                   	pop    %ebp
40b516:	c3                   	ret
40b517:	90                   	nop
40b518:	55                   	push   %ebp
40b519:	8b ec                	mov    %esp,%ebp
40b51b:	81 c4 e8 fe ff ff    	add    $0xfffffee8,%esp
40b521:	53                   	push   %ebx
40b522:	56                   	push   %esi
40b523:	33 c9                	xor    %ecx,%ecx
40b525:	89 8d e8 fe ff ff    	mov    %ecx,-0x118(%ebp)
40b52b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b52e:	8b da                	mov    %edx,%ebx
40b530:	8b f0                	mov    %eax,%esi
40b532:	33 c0                	xor    %eax,%eax
40b534:	55                   	push   %ebp
40b535:	68 66 b6 40 00       	push   $0x40b666
40b53a:	64 ff 30             	push   %fs:(%eax)
40b53d:	64 89 20             	mov    %esp,%fs:(%eax)
40b540:	8b c3                	mov    %ebx,%eax
40b542:	e8 21 93 ff ff       	call   0x404868
40b547:	8b 45 08             	mov    0x8(%ebp),%eax
40b54a:	66 8b 40 f2          	mov    -0xe(%eax),%ax
40b54e:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
40b552:	8b 45 08             	mov    0x8(%ebp),%eax
40b555:	66 8b 40 f0          	mov    -0x10(%eax),%ax
40b559:	66 89 45 ee          	mov    %ax,-0x12(%ebp)
40b55d:	8b 45 08             	mov    0x8(%ebp),%eax
40b560:	66 8b 40 ee          	mov    -0x12(%eax),%ax
40b564:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
40b568:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b56b:	ba 7c b6 40 00       	mov    $0x40b67c,%edx
40b570:	e8 8b 93 ff ff       	call   0x404900
40b575:	68 00 01 00 00       	push   $0x100
40b57a:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
40b580:	50                   	push   %eax
40b581:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b584:	e8 8f 97 ff ff       	call   0x404d18
40b589:	50                   	push   %eax
40b58a:	8d 45 ec             	lea    -0x14(%ebp),%eax
40b58d:	50                   	push   %eax
40b58e:	6a 04                	push   $0x4
40b590:	e8 e3 bc ff ff       	call   0x407278
40b595:	50                   	push   %eax
40b596:	e8 35 bc ff ff       	call   0x4071d0
40b59b:	85 c0                	test   %eax,%eax
40b59d:	0f 84 a2 00 00 00    	je     0x40b645
40b5a3:	8b c3                	mov    %ebx,%eax
40b5a5:	8d 95 ec fe ff ff    	lea    -0x114(%ebp),%edx
40b5ab:	b9 00 01 00 00       	mov    $0x100,%ecx
40b5b0:	e8 1b 95 ff ff       	call   0x404ad0
40b5b5:	4e                   	dec    %esi
40b5b6:	0f 85 89 00 00 00    	jne    0x40b645
40b5bc:	a1 f8 87 6a 00       	mov    0x6a87f8,%eax
40b5c1:	83 e8 04             	sub    $0x4,%eax
40b5c4:	74 22                	je     0x40b5e8
40b5c6:	83 e8 0d             	sub    $0xd,%eax
40b5c9:	75 7a                	jne    0x40b645
40b5cb:	53                   	push   %ebx
40b5cc:	8b 03                	mov    (%ebx),%eax
40b5ce:	ba 01 00 00 00       	mov    $0x1,%edx
40b5d3:	e8 0c 23 00 00       	call   0x40d8e4
40b5d8:	8b c8                	mov    %eax,%ecx
40b5da:	8b 03                	mov    (%ebx),%eax
40b5dc:	ba 01 00 00 00       	mov    $0x1,%edx
40b5e1:	e8 92 97 ff ff       	call   0x404d78
40b5e6:	eb 5d                	jmp    0x40b645
40b5e8:	83 3d fc 87 6a 00 01 	cmpl   $0x1,0x6a87fc
40b5ef:	75 54                	jne    0x40b645
40b5f1:	8b 03                	mov    (%ebx),%eax
40b5f3:	e8 28 95 ff ff       	call   0x404b20
40b5f8:	8b d0                	mov    %eax,%edx
40b5fa:	8b 03                	mov    (%ebx),%eax
40b5fc:	e8 6f 21 00 00       	call   0x40d770
40b601:	83 f8 04             	cmp    $0x4,%eax
40b604:	75 3f                	jne    0x40b645
40b606:	8b 03                	mov    (%ebx),%eax
40b608:	ba 03 00 00 00       	mov    $0x3,%edx
40b60d:	e8 6e 22 00 00       	call   0x40d880
40b612:	8b f0                	mov    %eax,%esi