40e461:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40e464:	72 66                	jb     0x40e4cc
40e466:	80 7d e5 0a          	cmpb   $0xa,-0x1b(%ebp)
40e46a:	75 2c                	jne    0x40e498
40e46c:	6a 0d                	push   $0xd
40e46e:	58                   	pop    %eax
40e46f:	6a 00                	push   $0x0
40e471:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
40e475:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e478:	50                   	push   %eax
40e479:	6a 01                	push   $0x1
40e47b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40e47e:	50                   	push   %eax
40e47f:	ff 75 d8             	push   -0x28(%ebp)
40e482:	ff 15 38 b1 41 00    	call   *0x41b138
40e488:	85 c0                	test   %eax,%eax
40e48a:	74 38                	je     0x40e4c4
40e48c:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
40e490:	72 3a                	jb     0x40e4cc
40e492:	ff 46 08             	incl   0x8(%esi)
40e495:	ff 46 04             	incl   0x4(%esi)
40e498:	3b 7d dc             	cmp    -0x24(%ebp),%edi
40e49b:	0f 82 ee fe ff ff    	jb     0x40e38f
40e4a1:	eb 29                	jmp    0x40e4cc
40e4a3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40e4a6:	8a 07                	mov    (%edi),%al
40e4a8:	8b 0c 95 c0 41 42 00 	mov    0x4241c0(,%edx,4),%ecx
40e4af:	88 44 19 2e          	mov    %al,0x2e(%ecx,%ebx,1)
40e4b3:	8b 04 95 c0 41 42 00 	mov    0x4241c0(,%edx,4),%eax
40e4ba:	80 4c 18 2d 04       	orb    $0x4,0x2d(%eax,%ebx,1)
40e4bf:	ff 46 04             	incl   0x4(%esi)
40e4c2:	eb 08                	jmp    0x40e4cc
40e4c4:	ff 15 48 b0 41 00    	call   *0x41b048
40e4ca:	89 06                	mov    %eax,(%esi)
40e4cc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e4cf:	8b c6                	mov    %esi,%eax
40e4d1:	5f                   	pop    %edi
40e4d2:	5e                   	pop    %esi
40e4d3:	33 cd                	xor    %ebp,%ecx
40e4d5:	5b                   	pop    %ebx
40e4d6:	e8 7b 4a ff ff       	call   0x402f56
40e4db:	8b e5                	mov    %ebp,%esp
40e4dd:	5d                   	pop    %ebp
40e4de:	c3                   	ret
40e4df:	8b ff                	mov    %edi,%edi
40e4e1:	55                   	push   %ebp
40e4e2:	8b ec                	mov    %esp,%ebp
40e4e4:	51                   	push   %ecx
40e4e5:	53                   	push   %ebx
40e4e6:	56                   	push   %esi
40e4e7:	8b 75 08             	mov    0x8(%ebp),%esi
40e4ea:	33 c0                	xor    %eax,%eax
40e4ec:	57                   	push   %edi
40e4ed:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e4f0:	89 06                	mov    %eax,(%esi)
40e4f2:	89 46 04             	mov    %eax,0x4(%esi)
40e4f5:	89 46 08             	mov    %eax,0x8(%esi)
40e4f8:	8b 45 10             	mov    0x10(%ebp),%eax
40e4fb:	03 c7                	add    %edi,%eax
40e4fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e500:	3b f8                	cmp    %eax,%edi
40e502:	73 3f                	jae    0x40e543
40e504:	0f b7 1f             	movzwl (%edi),%ebx
40e507:	53                   	push   %ebx
40e508:	e8 8d 6b 00 00       	call   0x41509a
40e50d:	59                   	pop    %ecx
40e50e:	66 3b c3             	cmp    %bx,%ax
40e511:	75 28                	jne    0x40e53b
40e513:	83 46 04 02          	addl   $0x2,0x4(%esi)
40e517:	83 fb 0a             	cmp    $0xa,%ebx
40e51a:	75 15                	jne    0x40e531
40e51c:	6a 0d                	push   $0xd
40e51e:	5b                   	pop    %ebx
40e51f:	53                   	push   %ebx
40e520:	e8 75 6b 00 00       	call   0x41509a
40e525:	59                   	pop    %ecx
40e526:	66 3b c3             	cmp    %bx,%ax
40e529:	75 10                	jne    0x40e53b
40e52b:	ff 46 04             	incl   0x4(%esi)
40e52e:	ff 46 08             	incl   0x8(%esi)
40e531:	83 c7 02             	add    $0x2,%edi
40e534:	3b 7d fc             	cmp    -0x4(%ebp),%edi
40e537:	72 cb                	jb     0x40e504
40e539:	eb 08                	jmp    0x40e543
40e53b:	ff 15 48 b0 41 00    	call   *0x41b048
40e541:	89 06                	mov    %eax,(%esi)
40e543:	5f                   	pop    %edi
40e544:	8b c6                	mov    %esi,%eax
40e546:	5e                   	pop    %esi
40e547:	5b                   	pop    %ebx
40e548:	8b e5                	mov    %ebp,%esp
40e54a:	5d                   	pop    %ebp
40e54b:	c3                   	ret
40e54c:	8b ff                	mov    %edi,%edi
40e54e:	55                   	push   %ebp
40e54f:	8b ec                	mov    %esp,%ebp
40e551:	51                   	push   %ecx
40e552:	56                   	push   %esi
40e553:	8b 75 08             	mov    0x8(%ebp),%esi
40e556:	56                   	push   %esi
40e557:	e8 0e 4f 00 00       	call   0x41346a
40e55c:	59                   	pop    %ecx
40e55d:	85 c0                	test   %eax,%eax
40e55f:	75 04                	jne    0x40e565
40e561:	32 c0                	xor    %al,%al
40e563:	eb 58                	jmp    0x40e5bd
40e565:	57                   	push   %edi
40e566:	8b fe                	mov    %esi,%edi
40e568:	83 e6 3f             	and    $0x3f,%esi
40e56b:	c1 ff 06             	sar    $0x6,%edi
40e56e:	6b f6 30             	imul   $0x30,%esi,%esi
40e571:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
40e578:	f6 44 30 28 80       	testb  $0x80,0x28(%eax,%esi,1)
40e57d:	74 1f                	je     0x40e59e
40e57f:	e8 9e c4 ff ff       	call   0x40aa22
40e584:	8b 40 4c             	mov    0x4c(%eax),%eax
40e587:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
40e58e:	75 12                	jne    0x40e5a2
40e590:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
40e597:	80 7c 30 29 00       	cmpb   $0x0,0x29(%eax,%esi,1)
40e59c:	75 04                	jne    0x40e5a2
40e59e:	32 c0                	xor    %al,%al
40e5a0:	eb 1a                	jmp    0x40e5bc
40e5a2:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e5a5:	50                   	push   %eax
40e5a6:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
40e5ad:	ff 74 30 18          	push   0x18(%eax,%esi,1)
40e5b1:	ff 15 68 b1 41 00    	call   *0x41b168
40e5b7:	85 c0                	test   %eax,%eax
40e5b9:	0f 95 c0             	setne  %al
40e5bc:	5f                   	pop    %edi
40e5bd:	5e                   	pop    %esi
40e5be:	8b e5                	mov    %ebp,%esp
40e5c0:	5d                   	pop    %ebp
40e5c1:	c3                   	ret
40e5c2:	8b ff                	mov    %edi,%edi
40e5c4:	55                   	push   %ebp
40e5c5:	8b ec                	mov    %esp,%ebp
40e5c7:	b8 10 14 00 00       	mov    $0x1410,%eax
40e5cc:	e8 cf 9d 00 00       	call   0x4183a0
40e5d1:	a1 0c 30 42 00       	mov    0x42300c,%eax
40e5d6:	33 c5                	xor    %ebp,%eax
40e5d8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e5db:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e5de:	8b c1                	mov    %ecx,%eax
40e5e0:	c1 f8 06             	sar    $0x6,%eax
40e5e3:	83 e1 3f             	and    $0x3f,%ecx
40e5e6:	6b c9 30             	imul   $0x30,%ecx,%ecx
40e5e9:	53                   	push   %ebx
40e5ea:	8b 5d 10             	mov    0x10(%ebp),%ebx
40e5ed:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40e5f4:	56                   	push   %esi
40e5f5:	8b 75 08             	mov    0x8(%ebp),%esi
40e5f8:	57                   	push   %edi
40e5f9:	8b 4c 08 18          	mov    0x18(%eax,%ecx,1),%ecx
40e5fd:	8b 45 14             	mov    0x14(%ebp),%eax
40e600:	83 26 00             	andl   $0x0,(%esi)
40e603:	03 c3                	add    %ebx,%eax
40e605:	83 66 04 00          	andl   $0x0,0x4(%esi)
40e609:	83 66 08 00          	andl   $0x0,0x8(%esi)
40e60d:	89 8d f0 eb ff ff    	mov    %ecx,-0x1410(%ebp)
40e613:	89 85 f8 eb ff ff    	mov    %eax,-0x1408(%ebp)
40e619:	eb 65                	jmp    0x40e680
40e61b:	8d bd fc eb ff ff    	lea    -0x1404(%ebp),%edi
40e621:	3b d8                	cmp    %eax,%ebx
40e623:	73 1e                	jae    0x40e643
40e625:	8a 03                	mov    (%ebx),%al
40e627:	43                   	inc    %ebx
40e628:	3c 0a                	cmp    $0xa,%al
40e62a:	75 07                	jne    0x40e633
40e62c:	ff 46 08             	incl   0x8(%esi)
40e62f:	c6 07 0d             	movb   $0xd,(%edi)
40e632:	47                   	inc    %edi
40e633:	88 07                	mov    %al,(%edi)
40e635:	8d 45 fb             	lea    -0x5(%ebp),%eax
40e638:	47                   	inc    %edi
40e639:	3b f8                	cmp    %eax,%edi
40e63b:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e641:	72 de                	jb     0x40e621
40e643:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e649:	2b f8                	sub    %eax,%edi
40e64b:	8d 85 f4 eb ff ff    	lea    -0x140c(%ebp),%eax
40e651:	6a 00                	push   $0x0
40e653:	50                   	push   %eax
40e654:	57                   	push   %edi
40e655:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e65b:	50                   	push   %eax
40e65c:	51                   	push   %ecx
40e65d:	ff 15 38 b1 41 00    	call   *0x41b138
40e663:	85 c0                	test   %eax,%eax
40e665:	74 1f                	je     0x40e686
40e667:	8b 85 f4 eb ff ff    	mov    -0x140c(%ebp),%eax
40e66d:	01 46 04             	add    %eax,0x4(%esi)
40e670:	3b c7                	cmp    %edi,%eax
40e672:	72 1a                	jb     0x40e68e
40e674:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e67a:	8b 8d f0 eb ff ff    	mov    -0x1410(%ebp),%ecx
40e680:	3b d8                	cmp    %eax,%ebx
40e682:	72 97                	jb     0x40e61b
40e684:	eb 08                	jmp    0x40e68e
40e686:	ff 15 48 b0 41 00    	call   *0x41b048
40e68c:	89 06                	mov    %eax,(%esi)
40e68e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e691:	8b c6                	mov    %esi,%eax
40e693:	5f                   	pop    %edi
40e694:	5e                   	pop    %esi
40e695:	33 cd                	xor    %ebp,%ecx
40e697:	5b                   	pop    %ebx
40e698:	e8 b9 48 ff ff       	call   0x402f56
40e69d:	8b e5                	mov    %ebp,%esp
40e69f:	5d                   	pop    %ebp
40e6a0:	c3                   	ret
40e6a1:	8b ff                	mov    %edi,%edi
40e6a3:	55                   	push   %ebp
40e6a4:	8b ec                	mov    %esp,%ebp
40e6a6:	b8 10 14 00 00       	mov    $0x1410,%eax
40e6ab:	e8 f0 9c 00 00       	call   0x4183a0
40e6b0:	a1 0c 30 42 00       	mov    0x42300c,%eax
40e6b5:	33 c5                	xor    %ebp,%eax
40e6b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e6ba:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e6bd:	8b c1                	mov    %ecx,%eax
40e6bf:	c1 f8 06             	sar    $0x6,%eax
40e6c2:	83 e1 3f             	and    $0x3f,%ecx
40e6c5:	6b c9 30             	imul   $0x30,%ecx,%ecx
40e6c8:	53                   	push   %ebx
40e6c9:	8b 5d 10             	mov    0x10(%ebp),%ebx
40e6cc:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40e6d3:	56                   	push   %esi
40e6d4:	8b 75 08             	mov    0x8(%ebp),%esi
40e6d7:	57                   	push   %edi
40e6d8:	8b 4c 08 18          	mov    0x18(%eax,%ecx,1),%ecx
40e6dc:	8b 45 14             	mov    0x14(%ebp),%eax
40e6df:	03 c3                	add    %ebx,%eax
40e6e1:	89 8d f0 eb ff ff    	mov    %ecx,-0x1410(%ebp)
40e6e7:	33 d2                	xor    %edx,%edx
40e6e9:	89 85 f8 eb ff ff    	mov    %eax,-0x1408(%ebp)
40e6ef:	89 16                	mov    %edx,(%esi)
40e6f1:	89 56 04             	mov    %edx,0x4(%esi)
40e6f4:	89 56 08             	mov    %edx,0x8(%esi)
40e6f7:	eb 75                	jmp    0x40e76e
40e6f9:	8d bd fc eb ff ff    	lea    -0x1404(%ebp),%edi
40e6ff:	3b d8                	cmp    %eax,%ebx
40e701:	73 2b                	jae    0x40e72e
40e703:	0f b7 03             	movzwl (%ebx),%eax
40e706:	83 c3 02             	add    $0x2,%ebx
40e709:	83 f8 0a             	cmp    $0xa,%eax
40e70c:	75 0d                	jne    0x40e71b
40e70e:	83 46 08 02          	addl   $0x2,0x8(%esi)
40e712:	6a 0d                	push   $0xd
40e714:	5a                   	pop    %edx
40e715:	66 89 17             	mov    %dx,(%edi)
40e718:	83 c7 02             	add    $0x2,%edi
40e71b:	66 89 07             	mov    %ax,(%edi)
40e71e:	8d 45 fa             	lea    -0x6(%ebp),%eax
40e721:	83 c7 02             	add    $0x2,%edi
40e724:	3b f8                	cmp    %eax,%edi
40e726:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e72c:	72 d1                	jb     0x40e6ff
40e72e:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e734:	2b f8                	sub    %eax,%edi
40e736:	8d 85 f4 eb ff ff    	lea    -0x140c(%ebp),%eax
40e73c:	6a 00                	push   $0x0
40e73e:	50                   	push   %eax
40e73f:	83 e7 fe             	and    $0xfffffffe,%edi
40e742:	8d 85 fc eb ff ff    	lea    -0x1404(%ebp),%eax
40e748:	57                   	push   %edi
40e749:	50                   	push   %eax
40e74a:	51                   	push   %ecx
40e74b:	ff 15 38 b1 41 00    	call   *0x41b138
40e751:	85 c0                	test   %eax,%eax
40e753:	74 1f                	je     0x40e774
40e755:	8b 85 f4 eb ff ff    	mov    -0x140c(%ebp),%eax
40e75b:	01 46 04             	add    %eax,0x4(%esi)
40e75e:	3b c7                	cmp    %edi,%eax
40e760:	72 1a                	jb     0x40e77c
40e762:	8b 85 f8 eb ff ff    	mov    -0x1408(%ebp),%eax
40e768:	8b 8d f0 eb ff ff    	mov    -0x1410(%ebp),%ecx
40e76e:	3b d8                	cmp    %eax,%ebx
40e770:	72 87                	jb     0x40e6f9
40e772:	eb 08                	jmp    0x40e77c
40e774:	ff 15 48 b0 41 00    	call   *0x41b048
40e77a:	89 06                	mov    %eax,(%esi)
40e77c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e77f:	8b c6                	mov    %esi,%eax
40e781:	5f                   	pop    %edi
40e782:	5e                   	pop    %esi
40e783:	33 cd                	xor    %ebp,%ecx
40e785:	5b                   	pop    %ebx
40e786:	e8 cb 47 ff ff       	call   0x402f56
40e78b:	8b e5                	mov    %ebp,%esp
40e78d:	5d                   	pop    %ebp
40e78e:	c3                   	ret
40e78f:	8b ff                	mov    %edi,%edi
40e791:	55                   	push   %ebp
40e792:	8b ec                	mov    %esp,%ebp
40e794:	b8 18 14 00 00       	mov    $0x1418,%eax
40e799:	e8 02 9c 00 00       	call   0x4183a0
40e79e:	a1 0c 30 42 00       	mov    0x42300c,%eax
40e7a3:	33 c5                	xor    %ebp,%eax
40e7a5:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e7a8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e7ab:	8b c1                	mov    %ecx,%eax
40e7ad:	c1 f8 06             	sar    $0x6,%eax
40e7b0:	83 e1 3f             	and    $0x3f,%ecx
40e7b3:	6b c9 30             	imul   $0x30,%ecx,%ecx
40e7b6:	53                   	push   %ebx
40e7b7:	56                   	push   %esi
40e7b8:	8b 04 85 c0 41 42 00 	mov    0x4241c0(,%eax,4),%eax
40e7bf:	33 db                	xor    %ebx,%ebx
40e7c1:	8b 75 08             	mov    0x8(%ebp),%esi
40e7c4:	57                   	push   %edi
40e7c5:	8b 44 08 18          	mov    0x18(%eax,%ecx,1),%eax
40e7c9:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e7cc:	8b f9                	mov    %ecx,%edi
40e7ce:	89 85 ec eb ff ff    	mov    %eax,-0x1414(%ebp)
40e7d4:	8b 45 14             	mov    0x14(%ebp),%eax
40e7d7:	03 c1                	add    %ecx,%eax
40e7d9:	89 1e                	mov    %ebx,(%esi)
40e7db:	89 5e 04             	mov    %ebx,0x4(%esi)
40e7de:	89 85 f4 eb ff ff    	mov    %eax,-0x140c(%ebp)
40e7e4:	89 5e 08             	mov    %ebx,0x8(%esi)
40e7e7:	3b c8                	cmp    %eax,%ecx
40e7e9:	0f 83 ba 00 00 00    	jae    0x40e8a9
40e7ef:	8b b5 f4 eb ff ff    	mov    -0x140c(%ebp),%esi
40e7f5:	8d 85 50 f9 ff ff    	lea    -0x6b0(%ebp),%eax
40e7fb:	3b fe                	cmp    %esi,%edi
40e7fd:	73 21                	jae    0x40e820
40e7ff:	0f b7 0f             	movzwl (%edi),%ecx
40e802:	83 c7 02             	add    $0x2,%edi
40e805:	83 f9 0a             	cmp    $0xa,%ecx
40e808:	75 09                	jne    0x40e813
40e80a:	6a 0d                	push   $0xd
40e80c:	5a                   	pop    %edx
40e80d:	66 89 10             	mov    %dx,(%eax)
40e810:	83 c0 02             	add    $0x2,%eax
40e813:	66 89 08             	mov    %cx,(%eax)
40e816:	83 c0 02             	add    $0x2,%eax
40e819:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40e81c:	3b c1                	cmp    %ecx,%eax
40e81e:	72 db                	jb     0x40e7fb
40e820:	53                   	push   %ebx
40e821:	53                   	push   %ebx
40e822:	68 55 0d 00 00       	push   $0xd55
40e827:	8d 8d f8 eb ff ff    	lea    -0x1408(%ebp),%ecx
40e82d:	51                   	push   %ecx
40e82e:	8d 8d 50 f9 ff ff    	lea    -0x6b0(%ebp),%ecx
40e834:	2b c1                	sub    %ecx,%eax
40e836:	d1 f8                	sar    $1,%eax
40e838:	50                   	push   %eax