40c327:	e8 24 78 ff ff       	call   0x403b50
40c32c:	81 7d 08 00 20 00 00 	cmpl   $0x2000,0x8(%ebp)
40c333:	1b c0                	sbb    %eax,%eax
40c335:	f7 d8                	neg    %eax
40c337:	75 17                	jne    0x40c350
40c339:	e8 c9 b9 ff ff       	call   0x407d07
40c33e:	6a 09                	push   $0x9
40c340:	5e                   	pop    %esi
40c341:	89 30                	mov    %esi,(%eax)
40c343:	e8 e6 b8 ff ff       	call   0x407c2e
40c348:	8b c6                	mov    %esi,%eax
40c34a:	e8 47 78 ff ff       	call   0x403b96
40c34f:	c3                   	ret
40c350:	33 f6                	xor    %esi,%esi
40c352:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40c355:	6a 07                	push   $0x7
40c357:	e8 49 2b 00 00       	call   0x40eea5
40c35c:	59                   	pop    %ecx
40c35d:	89 75 fc             	mov    %esi,-0x4(%ebp)
40c360:	8b fe                	mov    %esi,%edi
40c362:	a1 c0 43 42 00       	mov    0x4243c0,%eax
40c367:	89 7d e0             	mov    %edi,-0x20(%ebp)
40c36a:	39 45 08             	cmp    %eax,0x8(%ebp)
40c36d:	7c 1f                	jl     0x40c38e
40c36f:	39 34 bd c0 41 42 00 	cmp    %esi,0x4241c0(,%edi,4)
40c376:	75 31                	jne    0x40c3a9
40c378:	e8 f4 fe ff ff       	call   0x40c271
40c37d:	89 04 bd c0 41 42 00 	mov    %eax,0x4241c0(,%edi,4)
40c384:	85 c0                	test   %eax,%eax
40c386:	75 14                	jne    0x40c39c
40c388:	6a 0c                	push   $0xc
40c38a:	5e                   	pop    %esi
40c38b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40c38e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c395:	e8 15 00 00 00       	call   0x40c3af
40c39a:	eb ac                	jmp    0x40c348
40c39c:	a1 c0 43 42 00       	mov    0x4243c0,%eax
40c3a1:	83 c0 40             	add    $0x40,%eax
40c3a4:	a3 c0 43 42 00       	mov    %eax,0x4243c0
40c3a9:	47                   	inc    %edi
40c3aa:	eb bb                	jmp    0x40c367
40c3ac:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40c3af:	6a 07                	push   $0x7
40c3b1:	e8 37 2b 00 00       	call   0x40eeed
40c3b6:	59                   	pop    %ecx
40c3b7:	c3                   	ret
40c3b8:	8b ff                	mov    %edi,%edi
40c3ba:	55                   	push   %ebp
40c3bb:	8b ec                	mov    %esp,%ebp
40c3bd:	8b 45 08             	mov    0x8(%ebp),%eax
40c3c0:	8b c8                	mov    %eax,%ecx
40c3c2:	83 e0 3f             	and    $0x3f,%eax
40c3c5:	c1 f9 06             	sar    $0x6,%ecx
40c3c8:	6b c0 30             	imul   $0x30,%eax,%eax
40c3cb:	03 04 8d c0 41 42 00 	add    0x4241c0(,%ecx,4),%eax
40c3d2:	50                   	push   %eax
40c3d3:	ff 15 2c b0 41 00    	call   *0x41b02c
40c3d9:	5d                   	pop    %ebp
40c3da:	c3                   	ret
40c3db:	8b ff                	mov    %edi,%edi
40c3dd:	55                   	push   %ebp
40c3de:	8b ec                	mov    %esp,%ebp
40c3e0:	51                   	push   %ecx
40c3e1:	53                   	push   %ebx
40c3e2:	56                   	push   %esi
40c3e3:	8b 75 08             	mov    0x8(%ebp),%esi
40c3e6:	85 f6                	test   %esi,%esi
40c3e8:	78 69                	js     0x40c453
40c3ea:	3b 35 c0 43 42 00    	cmp    0x4243c0,%esi
40c3f0:	73 61                	jae    0x40c453
40c3f2:	8b c6                	mov    %esi,%eax
40c3f4:	8b de                	mov    %esi,%ebx
40c3f6:	83 e0 3f             	and    $0x3f,%eax
40c3f9:	c1 fb 06             	sar    $0x6,%ebx
40c3fc:	6b c8 30             	imul   $0x30,%eax,%ecx
40c3ff:	8b 04 9d c0 41 42 00 	mov    0x4241c0(,%ebx,4),%eax
40c406:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c409:	83 7c 01 18 ff       	cmpl   $0xffffffff,0x18(%ecx,%eax,1)
40c40e:	75 43                	jne    0x40c453
40c410:	57                   	push   %edi
40c411:	e8 a5 ce ff ff       	call   0x4092bb
40c416:	8b 7d 0c             	mov    0xc(%ebp),%edi
40c419:	83 f8 01             	cmp    $0x1,%eax
40c41c:	75 22                	jne    0x40c440
40c41e:	83 ee 00             	sub    $0x0,%esi
40c421:	74 14                	je     0x40c437
40c423:	83 ee 01             	sub    $0x1,%esi
40c426:	74 0a                	je     0x40c432
40c428:	83 ee 01             	sub    $0x1,%esi
40c42b:	75 13                	jne    0x40c440
40c42d:	57                   	push   %edi
40c42e:	6a f4                	push   $0xfffffff4
40c430:	eb 08                	jmp    0x40c43a
40c432:	57                   	push   %edi
40c433:	6a f5                	push   $0xfffffff5
40c435:	eb 03                	jmp    0x40c43a
40c437:	57                   	push   %edi
40c438:	6a f6                	push   $0xfffffff6
40c43a:	ff 15 58 b1 41 00    	call   *0x41b158
40c440:	8b 04 9d c0 41 42 00 	mov    0x4241c0(,%ebx,4),%eax
40c447:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c44a:	89 7c 01 18          	mov    %edi,0x18(%ecx,%eax,1)
40c44e:	33 c0                	xor    %eax,%eax
40c450:	5f                   	pop    %edi
40c451:	eb 16                	jmp    0x40c469
40c453:	e8 af b8 ff ff       	call   0x407d07
40c458:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c45e:	e8 91 b8 ff ff       	call   0x407cf4
40c463:	83 20 00             	andl   $0x0,(%eax)
40c466:	83 c8 ff             	or     $0xffffffff,%eax
40c469:	5e                   	pop    %esi
40c46a:	5b                   	pop    %ebx
40c46b:	8b e5                	mov    %ebp,%esp
40c46d:	5d                   	pop    %ebp
40c46e:	c3                   	ret
40c46f:	8b ff                	mov    %edi,%edi
40c471:	55                   	push   %ebp
40c472:	8b ec                	mov    %esp,%ebp
40c474:	8b 45 08             	mov    0x8(%ebp),%eax
40c477:	8b c8                	mov    %eax,%ecx
40c479:	83 e0 3f             	and    $0x3f,%eax
40c47c:	c1 f9 06             	sar    $0x6,%ecx
40c47f:	6b c0 30             	imul   $0x30,%eax,%eax
40c482:	03 04 8d c0 41 42 00 	add    0x4241c0(,%ecx,4),%eax
40c489:	50                   	push   %eax
40c48a:	ff 15 34 b0 41 00    	call   *0x41b034
40c490:	5d                   	pop    %ebp
40c491:	c3                   	ret
40c492:	6a 1c                	push   $0x1c
40c494:	68 40 1d 42 00       	push   $0x421d40
40c499:	e8 b2 76 ff ff       	call   0x403b50
40c49e:	6a 07                	push   $0x7
40c4a0:	e8 00 2a 00 00       	call   0x40eea5
40c4a5:	59                   	pop    %ecx
40c4a6:	83 cf ff             	or     $0xffffffff,%edi
40c4a9:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c4ac:	33 db                	xor    %ebx,%ebx
40c4ae:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c4b1:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40c4b4:	81 fb 80 00 00 00    	cmp    $0x80,%ebx
40c4ba:	7d 4d                	jge    0x40c509
40c4bc:	8b 04 9d c0 41 42 00 	mov    0x4241c0(,%ebx,4),%eax
40c4c3:	89 45 d8             	mov    %eax,-0x28(%ebp)
40c4c6:	85 c0                	test   %eax,%eax
40c4c8:	75 53                	jne    0x40c51d
40c4ca:	e8 a2 fd ff ff       	call   0x40c271
40c4cf:	89 04 9d c0 41 42 00 	mov    %eax,0x4241c0(,%ebx,4)
40c4d6:	85 c0                	test   %eax,%eax
40c4d8:	74 2f                	je     0x40c509
40c4da:	83 05 c0 43 42 00 40 	addl   $0x40,0x4243c0
40c4e1:	8b fb                	mov    %ebx,%edi
40c4e3:	c1 e7 06             	shl    $0x6,%edi
40c4e6:	57                   	push   %edi
40c4e7:	e8 cc fe ff ff       	call   0x40c3b8
40c4ec:	59                   	pop    %ecx
40c4ed:	8b d7                	mov    %edi,%edx
40c4ef:	c1 fa 06             	sar    $0x6,%edx
40c4f2:	8b c7                	mov    %edi,%eax
40c4f4:	83 e0 3f             	and    $0x3f,%eax
40c4f7:	6b c8 30             	imul   $0x30,%eax,%ecx
40c4fa:	8b 04 95 c0 41 42 00 	mov    0x4241c0(,%edx,4),%eax
40c501:	c6 44 08 28 01       	movb   $0x1,0x28(%eax,%ecx,1)
40c506:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c509:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c510:	e8 86 00 00 00       	call   0x40c59b
40c515:	8b c7                	mov    %edi,%eax
40c517:	e8 7a 76 ff ff       	call   0x403b96
40c51c:	c3                   	ret
40c51d:	8d 88 00 0c 00 00    	lea    0xc00(%eax),%ecx
40c523:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40c526:	8b f0                	mov    %eax,%esi
40c528:	6a 30                	push   $0x30
40c52a:	58                   	pop    %eax
40c52b:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c52e:	3b f1                	cmp    %ecx,%esi
40c530:	74 60                	je     0x40c592
40c532:	f6 46 28 01          	testb  $0x1,0x28(%esi)
40c536:	75 1a                	jne    0x40c552
40c538:	56                   	push   %esi
40c539:	ff 15 2c b0 41 00    	call   *0x41b02c
40c53f:	f6 46 28 01          	testb  $0x1,0x28(%esi)
40c543:	74 11                	je     0x40c556
40c545:	56                   	push   %esi
40c546:	ff 15 34 b0 41 00    	call   *0x41b034
40c54c:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40c54f:	6a 30                	push   $0x30
40c551:	58                   	pop    %eax
40c552:	03 f0                	add    %eax,%esi
40c554:	eb d5                	jmp    0x40c52b
40c556:	2b 75 d8             	sub    -0x28(%ebp),%esi
40c559:	8b c6                	mov    %esi,%eax
40c55b:	99                   	cltd
40c55c:	6a 30                	push   $0x30
40c55e:	59                   	pop    %ecx
40c55f:	f7 f9                	idiv   %ecx
40c561:	c1 e3 06             	shl    $0x6,%ebx
40c564:	8d 34 03             	lea    (%ebx,%eax,1),%esi
40c567:	8b d6                	mov    %esi,%edx
40c569:	c1 fa 06             	sar    $0x6,%edx
40c56c:	8b ce                	mov    %esi,%ecx
40c56e:	83 e1 3f             	and    $0x3f,%ecx
40c571:	6b c9 30             	imul   $0x30,%ecx,%ecx
40c574:	8b 04 95 c0 41 42 00 	mov    0x4241c0(,%edx,4),%eax
40c57b:	c6 44 01 28 01       	movb   $0x1,0x28(%ecx,%eax,1)
40c580:	8b 04 95 c0 41 42 00 	mov    0x4241c0(,%edx,4),%eax
40c587:	89 7c 01 18          	mov    %edi,0x18(%ecx,%eax,1)
40c58b:	8b fe                	mov    %esi,%edi
40c58d:	e9 74 ff ff ff       	jmp    0x40c506
40c592:	43                   	inc    %ebx
40c593:	e9 19 ff ff ff       	jmp    0x40c4b1
40c598:	8b 7d e4             	mov    -0x1c(%ebp),%edi
40c59b:	6a 07                	push   $0x7
40c59d:	e8 4b 29 00 00       	call   0x40eeed
40c5a2:	59                   	pop    %ecx
40c5a3:	c3                   	ret
40c5a4:	8b ff                	mov    %edi,%edi
40c5a6:	55                   	push   %ebp
40c5a7:	8b ec                	mov    %esp,%ebp
40c5a9:	53                   	push   %ebx
40c5aa:	56                   	push   %esi
40c5ab:	8b 75 08             	mov    0x8(%ebp),%esi
40c5ae:	57                   	push   %edi
40c5af:	85 f6                	test   %esi,%esi
40c5b1:	78 67                	js     0x40c61a
40c5b3:	3b 35 c0 43 42 00    	cmp    0x4243c0,%esi
40c5b9:	73 5f                	jae    0x40c61a
40c5bb:	8b c6                	mov    %esi,%eax
40c5bd:	8b fe                	mov    %esi,%edi
40c5bf:	83 e0 3f             	and    $0x3f,%eax
40c5c2:	c1 ff 06             	sar    $0x6,%edi
40c5c5:	6b d8 30             	imul   $0x30,%eax,%ebx
40c5c8:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
40c5cf:	f6 44 03 28 01       	testb  $0x1,0x28(%ebx,%eax,1)
40c5d4:	74 44                	je     0x40c61a
40c5d6:	83 7c 03 18 ff       	cmpl   $0xffffffff,0x18(%ebx,%eax,1)
40c5db:	74 3d                	je     0x40c61a
40c5dd:	e8 d9 cc ff ff       	call   0x4092bb
40c5e2:	83 f8 01             	cmp    $0x1,%eax
40c5e5:	75 23                	jne    0x40c60a
40c5e7:	33 c0                	xor    %eax,%eax
40c5e9:	2b f0                	sub    %eax,%esi
40c5eb:	74 14                	je     0x40c601
40c5ed:	83 ee 01             	sub    $0x1,%esi
40c5f0:	74 0a                	je     0x40c5fc
40c5f2:	83 ee 01             	sub    $0x1,%esi
40c5f5:	75 13                	jne    0x40c60a
40c5f7:	50                   	push   %eax
40c5f8:	6a f4                	push   $0xfffffff4
40c5fa:	eb 08                	jmp    0x40c604
40c5fc:	50                   	push   %eax
40c5fd:	6a f5                	push   $0xfffffff5
40c5ff:	eb 03                	jmp    0x40c604
40c601:	50                   	push   %eax
40c602:	6a f6                	push   $0xfffffff6
40c604:	ff 15 58 b1 41 00    	call   *0x41b158
40c60a:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
40c611:	83 4c 03 18 ff       	orl    $0xffffffff,0x18(%ebx,%eax,1)
40c616:	33 c0                	xor    %eax,%eax
40c618:	eb 16                	jmp    0x40c630
40c61a:	e8 e8 b6 ff ff       	call   0x407d07
40c61f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c625:	e8 ca b6 ff ff       	call   0x407cf4
40c62a:	83 20 00             	andl   $0x0,(%eax)
40c62d:	83 c8 ff             	or     $0xffffffff,%eax
40c630:	5f                   	pop    %edi
40c631:	5e                   	pop    %esi
40c632:	5b                   	pop    %ebx
40c633:	5d                   	pop    %ebp
40c634:	c3                   	ret
40c635:	8b ff                	mov    %edi,%edi
40c637:	55                   	push   %ebp
40c638:	8b ec                	mov    %esp,%ebp
40c63a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c63d:	83 f9 fe             	cmp    $0xfffffffe,%ecx
40c640:	75 15                	jne    0x40c657
40c642:	e8 ad b6 ff ff       	call   0x407cf4
40c647:	83 20 00             	andl   $0x0,(%eax)
40c64a:	e8 b8 b6 ff ff       	call   0x407d07
40c64f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c655:	eb 43                	jmp    0x40c69a
40c657:	85 c9                	test   %ecx,%ecx
40c659:	78 27                	js     0x40c682
40c65b:	3b 0d c0 43 42 00    	cmp    0x4243c0,%ecx
40c661:	73 1f                	jae    0x40c682
40c663:	8b c1                	mov    %ecx,%eax
40c665:	83 e1 3f             	and    $0x3f,%ecx
40c668:	c1 f8 06             	sar    $0x6,%eax
40c66b:	6b c9 30             	imul   $0x30,%ecx,%ecx
40c66e:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40c675:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
40c67a:	74 06                	je     0x40c682
40c67c:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40c680:	5d                   	pop    %ebp
40c681:	c3                   	ret
40c682:	e8 6d b6 ff ff       	call   0x407cf4
40c687:	83 20 00             	andl   $0x0,(%eax)
40c68a:	e8 78 b6 ff ff       	call   0x407d07
40c68f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c695:	e8 94 b5 ff ff       	call   0x407c2e
40c69a:	83 c8 ff             	or     $0xffffffff,%eax
40c69d:	5d                   	pop    %ebp
40c69e:	c3                   	ret
40c69f:	8b ff                	mov    %edi,%edi
40c6a1:	55                   	push   %ebp
40c6a2:	8b ec                	mov    %esp,%ebp
40c6a4:	8b 45 08             	mov    0x8(%ebp),%eax
40c6a7:	56                   	push   %esi
40c6a8:	be 90 01 00 00       	mov    $0x190,%esi
40c6ad:	57                   	push   %edi
40c6ae:	8d 48 ff             	lea    -0x1(%eax),%ecx
40c6b1:	05 2b 01 00 00       	add    $0x12b,%eax
40c6b6:	99                   	cltd
40c6b7:	f7 fe                	idiv   %esi
40c6b9:	6a 64                	push   $0x64
40c6bb:	8b f0                	mov    %eax,%esi
40c6bd:	8b c1                	mov    %ecx,%eax
40c6bf:	99                   	cltd
40c6c0:	5f                   	pop    %edi
40c6c1:	f7 ff                	idiv   %edi
40c6c3:	5f                   	pop    %edi
40c6c4:	2b f0                	sub    %eax,%esi
40c6c6:	8b c1                	mov    %ecx,%eax
40c6c8:	99                   	cltd
40c6c9:	83 e2 03             	and    $0x3,%edx
40c6cc:	03 c2                	add    %edx,%eax
40c6ce:	c1 f8 02             	sar    $0x2,%eax
40c6d1:	83 c0 ef             	add    $0xffffffef,%eax
40c6d4:	03 c6                	add    %esi,%eax
40c6d6:	5e                   	pop    %esi
40c6d7:	5d                   	pop    %ebp
40c6d8:	c3                   	ret
40c6d9:	8b ff                	mov    %edi,%edi
40c6db:	55                   	push   %ebp
40c6dc:	8b ec                	mov    %esp,%ebp
40c6de:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c6e1:	8b c1                	mov    %ecx,%eax
40c6e3:	25 03 00 00 80       	and    $0x80000003,%eax
40c6e8:	79 05                	jns    0x40c6ef
40c6ea:	48                   	dec    %eax
40c6eb:	83 c8 fc             	or     $0xfffffffc,%eax
40c6ee:	40                   	inc    %eax
40c6ef:	75 12                	jne    0x40c703
40c6f1:	56                   	push   %esi
40c6f2:	6a 64                	push   $0x64
40c6f4:	8b c1                	mov    %ecx,%eax
40c6f6:	5e                   	pop    %esi
40c6f7:	99                   	cltd
40c6f8:	f7 fe                	idiv   %esi
40c6fa:	5e                   	pop    %esi
40c6fb:	85 d2                	test   %edx,%edx