40a422:	8d 8d ec f5 ff ff    	lea    -0xa14(%ebp),%ecx
40a428:	c7 45 fc 91 02 00 00 	movl   $0x291,-0x4(%ebp)
40a42f:	e8 b5 47 01 00       	call   0x41ebe9
40a434:	8d 8d ec f5 ff ff    	lea    -0xa14(%ebp),%ecx
40a43a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a43d:	e8 5e 46 01 00       	call   0x41eaa0
40a442:	85 ff                	test   %edi,%edi
40a444:	0f 84 fc 02 00 00    	je     0x40a746
40a44a:	8d 8d e4 f5 ff ff    	lea    -0xa1c(%ebp),%ecx
40a450:	e8 37 45 01 00       	call   0x41e98c
40a455:	56                   	push   %esi
40a456:	8d 8d e4 f5 ff ff    	lea    -0xa1c(%ebp),%ecx
40a45c:	c7 45 fc 92 02 00 00 	movl   $0x292,-0x4(%ebp)
40a463:	e8 81 47 01 00       	call   0x41ebe9
40a468:	8d 8d e4 f5 ff ff    	lea    -0xa1c(%ebp),%ecx
40a46e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a471:	e8 2a 46 01 00       	call   0x41eaa0
40a476:	85 ff                	test   %edi,%edi
40a478:	0f 84 c8 02 00 00    	je     0x40a746
40a47e:	8d 8d dc f5 ff ff    	lea    -0xa24(%ebp),%ecx
40a484:	e8 03 45 01 00       	call   0x41e98c
40a489:	56                   	push   %esi
40a48a:	8d 8d dc f5 ff ff    	lea    -0xa24(%ebp),%ecx
40a490:	c7 45 fc 93 02 00 00 	movl   $0x293,-0x4(%ebp)
40a497:	e8 4d 47 01 00       	call   0x41ebe9
40a49c:	8d 8d dc f5 ff ff    	lea    -0xa24(%ebp),%ecx
40a4a2:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a4a5:	e8 f6 45 01 00       	call   0x41eaa0
40a4aa:	85 ff                	test   %edi,%edi
40a4ac:	0f 84 94 02 00 00    	je     0x40a746
40a4b2:	8d 8d d4 f5 ff ff    	lea    -0xa2c(%ebp),%ecx
40a4b8:	e8 cf 44 01 00       	call   0x41e98c
40a4bd:	56                   	push   %esi
40a4be:	8d 8d d4 f5 ff ff    	lea    -0xa2c(%ebp),%ecx
40a4c4:	c7 45 fc 94 02 00 00 	movl   $0x294,-0x4(%ebp)
40a4cb:	e8 19 47 01 00       	call   0x41ebe9
40a4d0:	8d 8d d4 f5 ff ff    	lea    -0xa2c(%ebp),%ecx
40a4d6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a4d9:	e8 c2 45 01 00       	call   0x41eaa0
40a4de:	85 ff                	test   %edi,%edi
40a4e0:	0f 84 60 02 00 00    	je     0x40a746
40a4e6:	8d 8d cc f5 ff ff    	lea    -0xa34(%ebp),%ecx
40a4ec:	e8 9b 44 01 00       	call   0x41e98c
40a4f1:	56                   	push   %esi
40a4f2:	8d 8d cc f5 ff ff    	lea    -0xa34(%ebp),%ecx
40a4f8:	c7 45 fc 95 02 00 00 	movl   $0x295,-0x4(%ebp)
40a4ff:	e8 e5 46 01 00       	call   0x41ebe9
40a504:	8d 8d cc f5 ff ff    	lea    -0xa34(%ebp),%ecx
40a50a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a50d:	e8 8e 45 01 00       	call   0x41eaa0
40a512:	85 ff                	test   %edi,%edi
40a514:	0f 84 2c 02 00 00    	je     0x40a746
40a51a:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
40a520:	e8 67 44 01 00       	call   0x41e98c
40a525:	56                   	push   %esi
40a526:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
40a52c:	c7 45 fc 96 02 00 00 	movl   $0x296,-0x4(%ebp)
40a533:	e8 b1 46 01 00       	call   0x41ebe9
40a538:	8d 8d c4 f5 ff ff    	lea    -0xa3c(%ebp),%ecx
40a53e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a541:	e8 5a 45 01 00       	call   0x41eaa0
40a546:	85 ff                	test   %edi,%edi
40a548:	0f 84 f8 01 00 00    	je     0x40a746
40a54e:	8d 8d bc f5 ff ff    	lea    -0xa44(%ebp),%ecx
40a554:	e8 33 44 01 00       	call   0x41e98c
40a559:	56                   	push   %esi
40a55a:	8d 8d bc f5 ff ff    	lea    -0xa44(%ebp),%ecx
40a560:	c7 45 fc 97 02 00 00 	movl   $0x297,-0x4(%ebp)
40a567:	e8 7d 46 01 00       	call   0x41ebe9
40a56c:	8d 8d bc f5 ff ff    	lea    -0xa44(%ebp),%ecx
40a572:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a575:	e8 26 45 01 00       	call   0x41eaa0
40a57a:	85 ff                	test   %edi,%edi
40a57c:	0f 84 c4 01 00 00    	je     0x40a746
40a582:	8d 8d b4 f5 ff ff    	lea    -0xa4c(%ebp),%ecx
40a588:	e8 ff 43 01 00       	call   0x41e98c
40a58d:	56                   	push   %esi
40a58e:	8d 8d b4 f5 ff ff    	lea    -0xa4c(%ebp),%ecx
40a594:	c7 45 fc 98 02 00 00 	movl   $0x298,-0x4(%ebp)
40a59b:	e8 49 46 01 00       	call   0x41ebe9
40a5a0:	8d 8d b4 f5 ff ff    	lea    -0xa4c(%ebp),%ecx
40a5a6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a5a9:	e8 f2 44 01 00       	call   0x41eaa0
40a5ae:	85 ff                	test   %edi,%edi
40a5b0:	0f 84 90 01 00 00    	je     0x40a746
40a5b6:	8d 8d ac f5 ff ff    	lea    -0xa54(%ebp),%ecx
40a5bc:	e8 cb 43 01 00       	call   0x41e98c
40a5c1:	56                   	push   %esi
40a5c2:	8d 8d ac f5 ff ff    	lea    -0xa54(%ebp),%ecx
40a5c8:	c7 45 fc 99 02 00 00 	movl   $0x299,-0x4(%ebp)
40a5cf:	e8 15 46 01 00       	call   0x41ebe9
40a5d4:	8d 8d ac f5 ff ff    	lea    -0xa54(%ebp),%ecx
40a5da:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a5dd:	e8 be 44 01 00       	call   0x41eaa0
40a5e2:	85 ff                	test   %edi,%edi
40a5e4:	0f 84 5c 01 00 00    	je     0x40a746
40a5ea:	8d 8d a4 f5 ff ff    	lea    -0xa5c(%ebp),%ecx
40a5f0:	e8 97 43 01 00       	call   0x41e98c
40a5f5:	56                   	push   %esi
40a5f6:	8d 8d a4 f5 ff ff    	lea    -0xa5c(%ebp),%ecx
40a5fc:	c7 45 fc 9a 02 00 00 	movl   $0x29a,-0x4(%ebp)
40a603:	e8 e1 45 01 00       	call   0x41ebe9
40a608:	8d 8d a4 f5 ff ff    	lea    -0xa5c(%ebp),%ecx
40a60e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a611:	e8 8a 44 01 00       	call   0x41eaa0
40a616:	85 ff                	test   %edi,%edi
40a618:	0f 84 28 01 00 00    	je     0x40a746
40a61e:	8d 8d 9c f5 ff ff    	lea    -0xa64(%ebp),%ecx
40a624:	e8 63 43 01 00       	call   0x41e98c
40a629:	56                   	push   %esi
40a62a:	8d 8d 9c f5 ff ff    	lea    -0xa64(%ebp),%ecx
40a630:	c7 45 fc 9b 02 00 00 	movl   $0x29b,-0x4(%ebp)
40a637:	e8 ad 45 01 00       	call   0x41ebe9
40a63c:	8d 8d 9c f5 ff ff    	lea    -0xa64(%ebp),%ecx
40a642:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a645:	e8 56 44 01 00       	call   0x41eaa0
40a64a:	85 ff                	test   %edi,%edi
40a64c:	0f 84 f4 00 00 00    	je     0x40a746
40a652:	8d 8d 94 f5 ff ff    	lea    -0xa6c(%ebp),%ecx
40a658:	e8 2f 43 01 00       	call   0x41e98c
40a65d:	56                   	push   %esi
40a65e:	8d 8d 94 f5 ff ff    	lea    -0xa6c(%ebp),%ecx
40a664:	c7 45 fc 9c 02 00 00 	movl   $0x29c,-0x4(%ebp)
40a66b:	e8 79 45 01 00       	call   0x41ebe9
40a670:	8d 8d 94 f5 ff ff    	lea    -0xa6c(%ebp),%ecx
40a676:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a679:	e8 22 44 01 00       	call   0x41eaa0
40a67e:	85 ff                	test   %edi,%edi
40a680:	0f 84 c0 00 00 00    	je     0x40a746
40a686:	8d 8d 8c f5 ff ff    	lea    -0xa74(%ebp),%ecx
40a68c:	e8 fb 42 01 00       	call   0x41e98c
40a691:	56                   	push   %esi
40a692:	8d 8d 8c f5 ff ff    	lea    -0xa74(%ebp),%ecx
40a698:	c7 45 fc 9d 02 00 00 	movl   $0x29d,-0x4(%ebp)
40a69f:	e8 45 45 01 00       	call   0x41ebe9
40a6a4:	8d 8d 8c f5 ff ff    	lea    -0xa74(%ebp),%ecx
40a6aa:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a6ad:	e8 ee 43 01 00       	call   0x41eaa0
40a6b2:	85 ff                	test   %edi,%edi
40a6b4:	0f 84 8c 00 00 00    	je     0x40a746
40a6ba:	8d 8d 84 f5 ff ff    	lea    -0xa7c(%ebp),%ecx
40a6c0:	e8 c7 42 01 00       	call   0x41e98c
40a6c5:	56                   	push   %esi
40a6c6:	8d 8d 84 f5 ff ff    	lea    -0xa7c(%ebp),%ecx
40a6cc:	c7 45 fc 9e 02 00 00 	movl   $0x29e,-0x4(%ebp)
40a6d3:	e8 11 45 01 00       	call   0x41ebe9
40a6d8:	8d 8d 84 f5 ff ff    	lea    -0xa7c(%ebp),%ecx
40a6de:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a6e1:	e8 ba 43 01 00       	call   0x41eaa0
40a6e6:	85 ff                	test   %edi,%edi
40a6e8:	74 5c                	je     0x40a746
40a6ea:	8d 8d 7c f5 ff ff    	lea    -0xa84(%ebp),%ecx
40a6f0:	e8 97 42 01 00       	call   0x41e98c
40a6f5:	56                   	push   %esi
40a6f6:	8d 8d 7c f5 ff ff    	lea    -0xa84(%ebp),%ecx
40a6fc:	c7 45 fc 9f 02 00 00 	movl   $0x29f,-0x4(%ebp)
40a703:	e8 e1 44 01 00       	call   0x41ebe9
40a708:	8d 8d 7c f5 ff ff    	lea    -0xa84(%ebp),%ecx
40a70e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a711:	e8 8a 43 01 00       	call   0x41eaa0
40a716:	85 ff                	test   %edi,%edi
40a718:	74 2c                	je     0x40a746
40a71a:	8d 8d 74 f5 ff ff    	lea    -0xa8c(%ebp),%ecx
40a720:	e8 67 42 01 00       	call   0x41e98c
40a725:	56                   	push   %esi
40a726:	8d 8d 74 f5 ff ff    	lea    -0xa8c(%ebp),%ecx
40a72c:	c7 45 fc a0 02 00 00 	movl   $0x2a0,-0x4(%ebp)
40a733:	e8 b1 44 01 00       	call   0x41ebe9
40a738:	8d 8d 74 f5 ff ff    	lea    -0xa8c(%ebp),%ecx
40a73e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a741:	e8 5a 43 01 00       	call   0x41eaa0
40a746:	8b 55 08             	mov    0x8(%ebp),%edx
40a749:	bf 8e 0a 00 00       	mov    $0xa8e,%edi
40a74e:	0f b6 45 0c          	movzbl 0xc(%ebp),%eax
40a752:	0f b6 94 15 d8 ea ff 	movzbl -0x1528(%ebp,%edx,1),%edx
40a759:	ff
40a75a:	03 c2                	add    %edx,%eax
40a75c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a75f:	99                   	cltd
40a760:	f7 ff                	idiv   %edi
40a762:	8b bd 6c f5 ff ff    	mov    -0xa94(%ebp),%edi
40a768:	8a 84 15 d8 ea ff ff 	mov    -0x1528(%ebp,%edx,1),%al
40a76f:	30 04 0f             	xor    %al,(%edi,%ecx,1)
40a772:	8b 45 14             	mov    0x14(%ebp),%eax
40a775:	47                   	inc    %edi
40a776:	ff 4d 14             	decl   0x14(%ebp)
40a779:	85 c0                	test   %eax,%eax
40a77b:	89 bd 6c f5 ff ff    	mov    %edi,-0xa94(%ebp)
40a781:	0f 85 ba 77 ff ff    	jne    0x401f41
40a787:	5b                   	pop    %ebx
40a788:	8b c1                	mov    %ecx,%eax
40a78a:	5e                   	pop    %esi
40a78b:	eb 02                	jmp    0x40a78f
40a78d:	33 c0                	xor    %eax,%eax
40a78f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a792:	5f                   	pop    %edi
40a793:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a79a:	c9                   	leave
40a79b:	c3                   	ret
40a79c:	55                   	push   %ebp
40a79d:	8b ec                	mov    %esp,%ebp
40a79f:	51                   	push   %ecx
40a7a0:	51                   	push   %ecx
40a7a1:	53                   	push   %ebx
40a7a2:	56                   	push   %esi
40a7a3:	57                   	push   %edi
40a7a4:	8b 7d 08             	mov    0x8(%ebp),%edi
40a7a7:	83 65 08 00          	andl   $0x0,0x8(%ebp)
40a7ab:	8b 47 3c             	mov    0x3c(%edi),%eax
40a7ae:	8b 74 38 78          	mov    0x78(%eax,%edi,1),%esi
40a7b2:	8b 44 3e 20          	mov    0x20(%esi,%edi,1),%eax
40a7b6:	03 f7                	add    %edi,%esi
40a7b8:	03 c7                	add    %edi,%eax
40a7ba:	8b 5e 1c             	mov    0x1c(%esi),%ebx
40a7bd:	8b 4e 24             	mov    0x24(%esi),%ecx
40a7c0:	03 df                	add    %edi,%ebx
40a7c2:	03 cf                	add    %edi,%ecx
40a7c4:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
40a7c8:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a7cb:	76 25                	jbe    0x40a7f2
40a7cd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a7d0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a7d3:	8b c7                	mov    %edi,%eax
40a7d5:	03 01                	add    (%ecx),%eax
40a7d7:	50                   	push   %eax
40a7d8:	e8 9c 76 ff ff       	call   0x401e79
40a7dd:	3b 45 0c             	cmp    0xc(%ebp),%eax
40a7e0:	59                   	pop    %ecx
40a7e1:	74 16                	je     0x40a7f9
40a7e3:	ff 45 08             	incl   0x8(%ebp)
40a7e6:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
40a7ea:	8b 45 08             	mov    0x8(%ebp),%eax
40a7ed:	3b 46 18             	cmp    0x18(%esi),%eax
40a7f0:	72 de                	jb     0x40a7d0
40a7f2:	33 c0                	xor    %eax,%eax
40a7f4:	5f                   	pop    %edi
40a7f5:	5e                   	pop    %esi
40a7f6:	5b                   	pop    %ebx
40a7f7:	c9                   	leave
40a7f8:	c3                   	ret
40a7f9:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a7fc:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a7ff:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
40a803:	8b 04 83             	mov    (%ebx,%eax,4),%eax
40a806:	03 c7                	add    %edi,%eax
40a808:	eb ea                	jmp    0x40a7f4
40a80a:	b8 3c 77 42 00       	mov    $0x42773c,%eax
40a80f:	e8 1c 14 00 00       	call   0x40bc30
40a814:	83 ec 28             	sub    $0x28,%esp
40a817:	8a 45 0c             	mov    0xc(%ebp),%al
40a81a:	53                   	push   %ebx
40a81b:	56                   	push   %esi
40a81c:	33 db                	xor    %ebx,%ebx
40a81e:	57                   	push   %edi
40a81f:	53                   	push   %ebx
40a820:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a823:	88 45 dc             	mov    %al,-0x24(%ebp)
40a826:	e8 da 02 00 00       	call   0x40ab05
40a82b:	be 20 12 43 00       	mov    $0x431220,%esi
40a830:	56                   	push   %esi
40a831:	e8 2a 19 00 00       	call   0x40c160
40a836:	59                   	pop    %ecx
40a837:	50                   	push   %eax
40a838:	56                   	push   %esi
40a839:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40a83c:	e8 50 01 00 00       	call   0x40a991
40a841:	53                   	push   %ebx
40a842:	53                   	push   %ebx
40a843:	68 04 12 43 00       	push   $0x431204
40a848:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a84b:	ff 15 5c 97 43 00    	call   *0x43975c
40a851:	3b c3                	cmp    %ebx,%eax
40a853:	0f 84 d3 00 00 00    	je     0x40a92c
40a859:	8a 45 0c             	mov    0xc(%ebp),%al
40a85c:	53                   	push   %ebx
40a85d:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40a860:	88 45 cc             	mov    %al,-0x34(%ebp)
40a863:	e8 9d 02 00 00       	call   0x40ab05
40a868:	be f4 11 43 00       	mov    $0x4311f4,%esi
40a86d:	56                   	push   %esi
40a86e:	e8 ed 18 00 00       	call   0x40c160
40a873:	59                   	pop    %ecx
40a874:	50                   	push   %eax
40a875:	56                   	push   %esi
40a876:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40a879:	e8 13 01 00 00       	call   0x40a991
40a87e:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a881:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40a885:	3b c3                	cmp    %ebx,%eax
40a887:	75 05                	jne    0x40a88e
40a889:	b8 8c 98 42 00       	mov    $0x42988c,%eax
40a88e:	53                   	push   %ebx
40a88f:	53                   	push   %ebx
40a890:	50                   	push   %eax
40a891:	ff 15 60 97 43 00    	call   *0x439760
40a897:	68 e8 11 43 00       	push   $0x4311e8
40a89c:	8b f0                	mov    %eax,%esi
40a89e:	e8 ad 18 00 00       	call   0x40c150
40a8a3:	59                   	pop    %ecx
40a8a4:	50                   	push   %eax
40a8a5:	56                   	push   %esi
40a8a6:	e8 f1 fe ff ff       	call   0x40a79c
40a8ab:	59                   	pop    %ecx
40a8ac:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a8af:	59                   	pop    %ecx
40a8b0:	6a 0a                	push   $0xa
40a8b2:	68 4d 01 00 00       	push   $0x14d
40a8b7:	53                   	push   %ebx
40a8b8:	ff 15 64 97 43 00    	call   *0x439764
40a8be:	8b f0                	mov    %eax,%esi
40a8c0:	3b f3                	cmp    %ebx,%esi
40a8c2:	74 5b                	je     0x40a91f
40a8c4:	56                   	push   %esi
40a8c5:	53                   	push   %ebx
40a8c6:	ff 15 68 97 43 00    	call   *0x439768
40a8cc:	3b c3                	cmp    %ebx,%eax
40a8ce:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a8d1:	74 4c                	je     0x40a91f
40a8d3:	56                   	push   %esi
40a8d4:	53                   	push   %ebx
40a8d5:	ff 15 6c 97 43 00    	call   *0x43976c
40a8db:	68 d8 11 43 00       	push   $0x4311d8
40a8e0:	68 70 75 43 00       	push   $0x437570
40a8e5:	8b f8                	mov    %eax,%edi
40a8e7:	e8 52 05 00 00       	call   0x40ae3e
40a8ec:	59                   	pop    %ecx
40a8ed:	8b f0                	mov    %eax,%esi
40a8ef:	59                   	pop    %ecx
40a8f0:	6a 0a                	push   $0xa
40a8f2:	8b ce                	mov    %esi,%ecx
40a8f4:	e8 48 02 00 00       	call   0x40ab41
40a8f9:	8b ce                	mov    %esi,%ecx
40a8fb:	e8 6a 03 00 00       	call   0x40ac6a
40a900:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40a903:	53                   	push   %ebx
40a904:	c1 e0 03             	shl    $0x3,%eax
40a907:	50                   	push   %eax
40a908:	68 00 30 00 00       	push   $0x3000
40a90d:	57                   	push   %edi
40a90e:	53                   	push   %ebx
40a90f:	ff 15 70 97 43 00    	call   *0x439770
40a915:	50                   	push   %eax
40a916:	ff 55 f0             	call   *-0x10(%ebp)
40a919:	8b f0                	mov    %eax,%esi
40a91b:	3b f3                	cmp    %ebx,%esi
40a91d:	75 1f                	jne    0x40a93e
40a91f:	6a 01                	push   $0x1
40a921:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40a924:	88 5d fc             	mov    %bl,-0x4(%ebp)
40a927:	e8 d9 01 00 00       	call   0x40ab05