40f3d7:	8b ec                	mov    %esp,%ebp
40f3d9:	83 ec 14             	sub    $0x14,%esp
40f3dc:	53                   	push   %ebx
40f3dd:	56                   	push   %esi
40f3de:	57                   	push   %edi
40f3df:	ba 70 3e 40 00       	mov    $0x403e70,%edx
40f3e4:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40f3e7:	bf c0 3e 40 00       	mov    $0x403ec0,%edi
40f3ec:	bb 90 01 00 00       	mov    $0x190,%ebx
40f3f1:	89 7d f4             	mov    %edi,-0xc(%ebp)
40f3f4:	2b da                	sub    %edx,%ebx
40f3f6:	33 f6                	xor    %esi,%esi
40f3f8:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f3fb:	8b c7                	mov    %edi,%eax
40f3fd:	83 38 08             	cmpl   $0x8,(%eax)
40f400:	0f 84 a5 00 00 00    	je     0x40f4ab
40f406:	83 38 06             	cmpl   $0x6,(%eax)
40f409:	0f 8d 8c 00 00 00    	jge    0x40f49b
40f40f:	0f b6 0c 32          	movzbl (%edx,%esi,1),%ecx
40f413:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f416:	e8 35 f6 ff ff       	call   0x40ea50
40f41b:	85 c0                	test   %eax,%eax
40f41d:	75 79                	jne    0x40f498
40f41f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f422:	0f b7 44 48 04       	movzwl 0x4(%eax,%ecx,2),%eax
40f427:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f42a:	66 85 c0             	test   %ax,%ax
40f42d:	74 1c                	je     0x40f44b
40f42f:	8b 7d f0             	mov    -0x10(%ebp),%edi
40f432:	8d 04 13             	lea    (%ebx,%edx,1),%eax
40f435:	03 c6                	add    %esi,%eax
40f437:	c7 05 14 a3 41 00 01 	movl   $0x1,0x41a314
40f43e:	00 00 00
40f441:	c1 e0 05             	shl    $0x5,%eax
40f444:	66 89 b8 40 57 41 00 	mov    %di,0x415740(%eax)
40f44b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f44e:	0f b7 84 48 04 02 00 	movzwl 0x204(%eax,%ecx,2),%eax
40f455:	00
40f456:	8b c8                	mov    %eax,%ecx
40f458:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f45b:	8d 0c 33             	lea    (%ebx,%esi,1),%ecx
40f45e:	03 ca                	add    %edx,%ecx
40f460:	c1 e1 05             	shl    $0x5,%ecx
40f463:	66 85 c0             	test   %ax,%ax
40f466:	74 05                	je     0x40f46d
40f468:	0f b7 c0             	movzwl %ax,%eax
40f46b:	eb 05                	jmp    0x40f472
40f46d:	b8 00 30 00 00       	mov    $0x3000,%eax
40f472:	8b 7d f8             	mov    -0x8(%ebp),%edi
40f475:	66 89 81 42 57 41 00 	mov    %ax,0x415742(%ecx)
40f47c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f47f:	0f b7 84 47 04 04 00 	movzwl 0x404(%edi,%eax,2),%eax
40f486:	00
40f487:	66 85 c0             	test   %ax,%ax
40f48a:	75 05                	jne    0x40f491
40f48c:	b8 00 30 00 00       	mov    $0x3000,%eax
40f491:	66 89 81 44 57 41 00 	mov    %ax,0x415744(%ecx)
40f498:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f49b:	46                   	inc    %esi
40f49c:	83 c0 04             	add    $0x4,%eax
40f49f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f4a2:	83 fe 10             	cmp    $0x10,%esi
40f4a5:	0f 8c 52 ff ff ff    	jl     0x40f3fd
40f4ab:	8b 7d f4             	mov    -0xc(%ebp),%edi
40f4ae:	83 c2 10             	add    $0x10,%edx
40f4b1:	83 c7 40             	add    $0x40,%edi
40f4b4:	89 7d f4             	mov    %edi,-0xc(%ebp)
40f4b7:	81 ff 00 40 40 00    	cmp    $0x404000,%edi
40f4bd:	0f 8c 33 ff ff ff    	jl     0x40f3f6
40f4c3:	5f                   	pop    %edi
40f4c4:	5e                   	pop    %esi
40f4c5:	5b                   	pop    %ebx
40f4c6:	c9                   	leave
40f4c7:	c3                   	ret
40f4c8:	8b ff                	mov    %edi,%edi
40f4ca:	55                   	push   %ebp
40f4cb:	8b ec                	mov    %esp,%ebp
40f4cd:	83 ec 30             	sub    $0x30,%esp
40f4d0:	a1 18 51 41 00       	mov    0x415118,%eax
40f4d5:	33 c5                	xor    %ebp,%eax
40f4d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f4da:	53                   	push   %ebx
40f4db:	56                   	push   %esi
40f4dc:	57                   	push   %edi
40f4dd:	8b f1                	mov    %ecx,%esi
40f4df:	33 ff                	xor    %edi,%edi
40f4e1:	33 c9                	xor    %ecx,%ecx
40f4e3:	89 75 d0             	mov    %esi,-0x30(%ebp)
40f4e6:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40f4e9:	33 db                	xor    %ebx,%ebx
40f4eb:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40f4ee:	83 ff 50             	cmp    $0x50,%edi
40f4f1:	0f 8d c2 00 00 00    	jge    0x40f5b9
40f4f7:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40f4fa:	8b 04 85 c0 3e 40 00 	mov    0x403ec0(,%eax,4),%eax
40f501:	83 f8 08             	cmp    $0x8,%eax
40f504:	0f 84 af 00 00 00    	je     0x40f5b9
40f50a:	83 f8 06             	cmp    $0x6,%eax
40f50d:	0f 8d 99 00 00 00    	jge    0x40f5ac
40f513:	8b 0c be             	mov    (%esi,%edi,4),%ecx
40f516:	e8 66 f5 ff ff       	call   0x40ea81
40f51b:	85 c0                	test   %eax,%eax
40f51d:	75 13                	jne    0x40f532
40f51f:	66 39 45 08          	cmp    %ax,0x8(%ebp)
40f523:	0f 94 c0             	sete   %al
40f526:	50                   	push   %eax
40f527:	ff 34 be             	push   (%esi,%edi,4)
40f52a:	ff 15 dc b1 41 00    	call   *0x41b1dc
40f530:	eb 76                	jmp    0x40f5a8
40f532:	33 db                	xor    %ebx,%ebx
40f534:	66 39 5d 08          	cmp    %bx,0x8(%ebp)
40f538:	74 60                	je     0x40f59a
40f53a:	8b 0c be             	mov    (%esi,%edi,4),%ecx
40f53d:	8d 55 dc             	lea    -0x24(%ebp),%edx
40f540:	e8 9a f4 ff ff       	call   0x40e9df
40f545:	33 f6                	xor    %esi,%esi
40f547:	b8 00 30 00 00       	mov    $0x3000,%eax
40f54c:	66 39 44 75 dc       	cmp    %ax,-0x24(%ebp,%esi,2)
40f551:	74 06                	je     0x40f559
40f553:	46                   	inc    %esi
40f554:	83 fe 03             	cmp    $0x3,%esi
40f557:	7c ee                	jl     0x40f547
40f559:	85 f6                	test   %esi,%esi
40f55b:	75 05                	jne    0x40f562
40f55d:	33 db                	xor    %ebx,%ebx
40f55f:	43                   	inc    %ebx
40f560:	eb 32                	jmp    0x40f594
40f562:	83 fe 03             	cmp    $0x3,%esi
40f565:	74 2d                	je     0x40f594
40f567:	8b 55 dc             	mov    -0x24(%ebp),%edx
40f56a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f56d:	e8 5f 92 ff ff       	call   0x4087d1
40f572:	33 db                	xor    %ebx,%ebx
40f574:	85 c0                	test   %eax,%eax
40f576:	0f 94 c3             	sete   %bl
40f579:	85 c0                	test   %eax,%eax
40f57b:	75 17                	jne    0x40f594
40f57d:	83 fe 02             	cmp    $0x2,%esi
40f580:	75 12                	jne    0x40f594
40f582:	8b 55 de             	mov    -0x22(%ebp),%edx
40f585:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f588:	e8 44 92 ff ff       	call   0x4087d1
40f58d:	8b d8                	mov    %eax,%ebx
40f58f:	f7 db                	neg    %ebx
40f591:	1b db                	sbb    %ebx,%ebx
40f593:	43                   	inc    %ebx
40f594:	8b 75 d0             	mov    -0x30(%ebp),%esi
40f597:	53                   	push   %ebx
40f598:	eb 02                	jmp    0x40f59c
40f59a:	6a 01                	push   $0x1
40f59c:	ff 34 be             	push   (%esi,%edi,4)
40f59f:	ff 15 dc b1 41 00    	call   *0x41b1dc
40f5a5:	8b 5d d8             	mov    -0x28(%ebp),%ebx
40f5a8:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40f5ab:	47                   	inc    %edi
40f5ac:	43                   	inc    %ebx
40f5ad:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40f5b0:	83 fb 10             	cmp    $0x10,%ebx
40f5b3:	0f 8c 35 ff ff ff    	jl     0x40f4ee
40f5b9:	83 c1 10             	add    $0x10,%ecx
40f5bc:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40f5bf:	83 f9 50             	cmp    $0x50,%ecx
40f5c2:	0f 8c 21 ff ff ff    	jl     0x40f4e9
40f5c8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f5cb:	5f                   	pop    %edi
40f5cc:	5e                   	pop    %esi
40f5cd:	33 cd                	xor    %ebp,%ecx
40f5cf:	5b                   	pop    %ebx
40f5d0:	e8 0b 43 00 00       	call   0x4138e0
40f5d5:	c9                   	leave
40f5d6:	c2 04 00             	ret    $0x4
40f5d9:	8b ff                	mov    %edi,%edi
40f5db:	55                   	push   %ebp
40f5dc:	8b ec                	mov    %esp,%ebp
40f5de:	83 ec 30             	sub    $0x30,%esp
40f5e1:	a1 18 51 41 00       	mov    0x415118,%eax
40f5e6:	33 c5                	xor    %ebp,%eax
40f5e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f5eb:	8b 45 08             	mov    0x8(%ebp),%eax
40f5ee:	53                   	push   %ebx
40f5ef:	56                   	push   %esi
40f5f0:	57                   	push   %edi
40f5f1:	68 04 06 00 00       	push   $0x604
40f5f6:	33 db                	xor    %ebx,%ebx
40f5f8:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40f5fb:	53                   	push   %ebx
40f5fc:	50                   	push   %eax
40f5fd:	89 45 d0             	mov    %eax,-0x30(%ebp)
40f600:	e8 5c 4b 00 00       	call   0x414161
40f605:	83 c4 0c             	add    $0xc,%esp
40f608:	c7 45 d8 00 30 00 00 	movl   $0x3000,-0x28(%ebp)
40f60f:	33 ff                	xor    %edi,%edi
40f611:	33 f6                	xor    %esi,%esi
40f613:	83 fb 50             	cmp    $0x50,%ebx
40f616:	0f 8d 80 00 00 00    	jge    0x40f69c
40f61c:	8d 04 37             	lea    (%edi,%esi,1),%eax
40f61f:	8b 04 85 c0 3e 40 00 	mov    0x403ec0(,%eax,4),%eax
40f626:	83 f8 08             	cmp    $0x8,%eax
40f629:	74 71                	je     0x40f69c
40f62b:	83 f8 06             	cmp    $0x6,%eax
40f62e:	7d 62                	jge    0x40f692
40f630:	0f b6 8c 37 70 3e 40 	movzbl 0x403e70(%edi,%esi,1),%ecx
40f637:	00
40f638:	e8 13 f4 ff ff       	call   0x40ea50
40f63d:	85 c0                	test   %eax,%eax
40f63f:	75 50                	jne    0x40f691
40f641:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40f644:	8d 55 dc             	lea    -0x24(%ebp),%edx
40f647:	8b 0c 98             	mov    (%eax,%ebx,4),%ecx
40f64a:	e8 90 f3 ff ff       	call   0x40e9df
40f64f:	66 8b 55 dc          	mov    -0x24(%ebp),%dx
40f653:	b8 00 30 00 00       	mov    $0x3000,%eax
40f658:	66 3b d0             	cmp    %ax,%dx
40f65b:	74 34                	je     0x40f691
40f65d:	0f b6 84 37 70 3e 40 	movzbl 0x403e70(%edi,%esi,1),%eax
40f664:	00
40f665:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40f668:	66 89 54 41 04       	mov    %dx,0x4(%ecx,%eax,2)
40f66d:	66 8b 55 de          	mov    -0x22(%ebp),%dx
40f671:	66 3b 55 d8          	cmp    -0x28(%ebp),%dx
40f675:	74 1a                	je     0x40f691
40f677:	66 89 94 41 04 02 00 	mov    %dx,0x204(%ecx,%eax,2)
40f67e:	00
40f67f:	66 8b 55 e0          	mov    -0x20(%ebp),%dx
40f683:	66 3b 55 d8          	cmp    -0x28(%ebp),%dx
40f687:	74 08                	je     0x40f691
40f689:	66 89 94 41 04 04 00 	mov    %dx,0x404(%ecx,%eax,2)
40f690:	00
40f691:	43                   	inc    %ebx
40f692:	46                   	inc    %esi
40f693:	83 fe 10             	cmp    $0x10,%esi
40f696:	0f 8c 77 ff ff ff    	jl     0x40f613
40f69c:	83 c7 10             	add    $0x10,%edi
40f69f:	83 ff 50             	cmp    $0x50,%edi
40f6a2:	0f 8c 69 ff ff ff    	jl     0x40f611
40f6a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f6ab:	5f                   	pop    %edi
40f6ac:	5e                   	pop    %esi
40f6ad:	33 cd                	xor    %ebp,%ecx
40f6af:	5b                   	pop    %ebx
40f6b0:	e8 2b 42 00 00       	call   0x4138e0
40f6b5:	c9                   	leave
40f6b6:	c2 04 00             	ret    $0x4
40f6b9:	8b ff                	mov    %edi,%edi
40f6bb:	55                   	push   %ebp
40f6bc:	8b ec                	mov    %esp,%ebp
40f6be:	83 ec 38             	sub    $0x38,%esp
40f6c1:	a1 18 51 41 00       	mov    0x415118,%eax
40f6c6:	33 c5                	xor    %ebp,%eax
40f6c8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f6cb:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
40f6cf:	b8 70 3e 40 00       	mov    $0x403e70,%eax
40f6d4:	53                   	push   %ebx
40f6d5:	56                   	push   %esi
40f6d6:	bb c0 3e 40 00       	mov    $0x403ec0,%ebx
40f6db:	89 4d c8             	mov    %ecx,-0x38(%ebp)
40f6de:	57                   	push   %edi
40f6df:	33 ff                	xor    %edi,%edi
40f6e1:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f6e4:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40f6e7:	8b d3                	mov    %ebx,%edx
40f6e9:	33 f6                	xor    %esi,%esi
40f6eb:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40f6ee:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40f6f1:	83 3a 08             	cmpl   $0x8,(%edx)
40f6f4:	0f 84 d6 00 00 00    	je     0x40f7d0
40f6fa:	83 3a 06             	cmpl   $0x6,(%edx)
40f6fd:	0f 8d bd 00 00 00    	jge    0x40f7c0
40f703:	0f b6 0c 30          	movzbl (%eax,%esi,1),%ecx
40f707:	e8 44 f3 ff ff       	call   0x40ea50
40f70c:	85 c0                	test   %eax,%eax
40f70e:	0f 85 a6 00 00 00    	jne    0x40f7ba
40f714:	8b 45 08             	mov    0x8(%ebp),%eax
40f717:	0f b7 54 48 04       	movzwl 0x4(%eax,%ecx,2),%edx
40f71c:	33 c0                	xor    %eax,%eax
40f71e:	66 85 d2             	test   %dx,%dx
40f721:	74 35                	je     0x40f758
40f723:	8b 45 08             	mov    0x8(%ebp),%eax
40f726:	66 89 55 dc          	mov    %dx,-0x24(%ebp)
40f72a:	0f b7 94 48 04 02 00 	movzwl 0x204(%eax,%ecx,2),%edx
40f731:	00
40f732:	33 c0                	xor    %eax,%eax
40f734:	40                   	inc    %eax
40f735:	66 85 d2             	test   %dx,%dx
40f738:	74 1e                	je     0x40f758
40f73a:	8b 45 08             	mov    0x8(%ebp),%eax
40f73d:	66 89 55 de          	mov    %dx,-0x22(%ebp)
40f741:	6a 02                	push   $0x2
40f743:	0f b7 8c 48 04 04 00 	movzwl 0x404(%eax,%ecx,2),%ecx
40f74a:	00
40f74b:	58                   	pop    %eax
40f74c:	66 85 c9             	test   %cx,%cx
40f74f:	74 07                	je     0x40f758
40f751:	6a 03                	push   $0x3
40f753:	66 89 4d e0          	mov    %cx,-0x20(%ebp)
40f757:	58                   	pop    %eax
40f758:	83 e8 00             	sub    $0x0,%eax
40f75b:	74 1a                	je     0x40f777
40f75d:	83 e8 01             	sub    $0x1,%eax
40f760:	74 0c                	je     0x40f76e
40f762:	83 e8 01             	sub    $0x1,%eax
40f765:	74 17                	je     0x40f77e
40f767:	83 e8 01             	sub    $0x1,%eax
40f76a:	75 37                	jne    0x40f7a3
40f76c:	eb 19                	jmp    0x40f787
40f76e:	c7 45 de 00 30 00 30 	movl   $0x30003000,-0x22(%ebp)
40f775:	eb 10                	jmp    0x40f787
40f777:	c7 45 dc 00 30 00 30 	movl   $0x30003000,-0x24(%ebp)
40f77e:	b8 00 30 00 00       	mov    $0x3000,%eax
40f783:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
40f787:	6b 83 40 01 00 00 05 	imul   $0x5,0x140(%ebx),%eax
40f78e:	03 c7                	add    %edi,%eax
40f790:	c1 e0 04             	shl    $0x4,%eax
40f793:	03 c6                	add    %esi,%eax
40f795:	c1 e0 05             	shl    $0x5,%eax
40f798:	66 8b 80 46 57 41 00 	mov    0x415746(%eax),%ax
40f79f:	66 89 45 e2          	mov    %ax,-0x1e(%ebp)
40f7a3:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40f7a6:	8d 55 dc             	lea    -0x24(%ebp),%edx
40f7a9:	33 c0                	xor    %eax,%eax
40f7ab:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40f7af:	8b 0c 8b             	mov    (%ebx,%ecx,4),%ecx
40f7b2:	e8 b3 f1 ff ff       	call   0x40e96a
40f7b7:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40f7ba:	ff 45 d8             	incl   -0x28(%ebp)
40f7bd:	8b 45 cc             	mov    -0x34(%ebp),%eax
40f7c0:	46                   	inc    %esi
40f7c1:	83 c2 04             	add    $0x4,%edx
40f7c4:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40f7c7:	83 fe 10             	cmp    $0x10,%esi
40f7ca:	0f 8c 21 ff ff ff    	jl     0x40f6f1
40f7d0:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40f7d3:	83 c0 10             	add    $0x10,%eax
40f7d6:	83 c3 40             	add    $0x40,%ebx
40f7d9:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f7dc:	47                   	inc    %edi
40f7dd:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40f7e0:	81 fb 00 40 40 00    	cmp    $0x404000,%ebx
40f7e6:	0f 8c fb fe ff ff    	jl     0x40f6e7
40f7ec:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f7ef:	5f                   	pop    %edi
40f7f0:	5e                   	pop    %esi
40f7f1:	33 cd                	xor    %ebp,%ecx
40f7f3:	5b                   	pop    %ebx
40f7f4:	e8 e7 40 00 00       	call   0x4138e0
40f7f9:	c9                   	leave
40f7fa:	c2 04 00             	ret    $0x4
40f7fd:	8b ff                	mov    %edi,%edi
40f7ff:	55                   	push   %ebp
40f800:	8b ec                	mov    %esp,%ebp