51c51c:	89 5c 24 48          	mov    %ebx,0x48(%esp)
51c520:	89 44 24 60          	mov    %eax,0x60(%esp)
51c524:	e8 e7 eb ff ff       	call   0x51b110
51c529:	89 44 24 2c          	mov    %eax,0x2c(%esp)
51c52d:	b9 02 00 00 00       	mov    $0x2,%ecx
51c532:	89 4c 24 34          	mov    %ecx,0x34(%esp)
51c536:	85 c0                	test   %eax,%eax
51c538:	74 25                	je     0x51c55f
51c53a:	39 b4 24 c8 00 00 00 	cmp    %esi,0xc8(%esp)
51c541:	0f 87 89 00 00 00    	ja     0x51c5d0
51c547:	68 4b 01 00 00       	push   $0x14b
51c54c:	68 30 08 64 00       	push   $0x640830
51c551:	6a 70                	push   $0x70
51c553:	6a 7e                	push   $0x7e
51c555:	6a 0a                	push   $0xa
51c557:	e8 24 ca fb ff       	call   0x4d8f80
51c55c:	83 c4 14             	add    $0x14,%esp
51c55f:	33 ed                	xor    %ebp,%ebp
51c561:	83 ce ff             	or     $0xffffffff,%esi
51c564:	68 5e 02 00 00       	push   $0x25e
51c569:	68 30 08 64 00       	push   $0x640830
51c56e:	53                   	push   %ebx
51c56f:	e8 0c 42 fc ff       	call   0x4e0780
51c574:	8b 44 24 44          	mov    0x44(%esp),%eax
51c578:	83 c4 0c             	add    $0xc,%esp
51c57b:	39 44 24 5c          	cmp    %eax,0x5c(%esp)
51c57f:	74 13                	je     0x51c594
51c581:	68 60 02 00 00       	push   $0x260
51c586:	68 30 08 64 00       	push   $0x640830
51c58b:	50                   	push   %eax
51c58c:	e8 ef 41 fc ff       	call   0x4e0780
51c591:	83 c4 0c             	add    $0xc,%esp
51c594:	55                   	push   %ebp
51c595:	e8 36 b5 fc ff       	call   0x4e7ad0
51c59a:	55                   	push   %ebp
51c59b:	e8 a0 b5 fc ff       	call   0x4e7b40
51c5a0:	ff 74 24 4c          	push   0x4c(%esp)
51c5a4:	e8 17 7c fc ff       	call   0x4e41c0
51c5a9:	ff 74 24 38          	push   0x38(%esp)
51c5ad:	e8 3e eb ff ff       	call   0x51b0f0
51c5b2:	8b 8c 24 cc 00 00 00 	mov    0xcc(%esp),%ecx
51c5b9:	83 c4 10             	add    $0x10,%esp
51c5bc:	8b c6                	mov    %esi,%eax
51c5be:	5f                   	pop    %edi
51c5bf:	5e                   	pop    %esi
51c5c0:	5d                   	pop    %ebp
51c5c1:	5b                   	pop    %ebx
51c5c2:	33 cc                	xor    %esp,%ecx
51c5c4:	e8 5d 54 0b 00       	call   0x5d1a26
51c5c9:	81 c4 b0 00 00 00    	add    $0xb0,%esp
51c5cf:	c3                   	ret
51c5d0:	8b 44 24 18          	mov    0x18(%esp),%eax
51c5d4:	85 c0                	test   %eax,%eax
51c5d6:	75 27                	jne    0x51c5ff
51c5d8:	81 fe a0 00 00 00    	cmp    $0xa0,%esi
51c5de:	75 07                	jne    0x51c5e7
51c5e0:	e8 2b 9f ff ff       	call   0x516510
51c5e5:	eb 14                	jmp    0x51c5fb
51c5e7:	81 fe e0 00 00 00    	cmp    $0xe0,%esi
51c5ed:	75 07                	jne    0x51c5f6
51c5ef:	e8 2c 9f ff ff       	call   0x516520
51c5f4:	eb 05                	jmp    0x51c5fb
51c5f6:	e8 35 9f ff ff       	call   0x516530
51c5fb:	89 44 24 18          	mov    %eax,0x18(%esp)
51c5ff:	50                   	push   %eax
51c600:	e8 bb 42 fd ff       	call   0x4f08c0
51c605:	8b f0                	mov    %eax,%esi
51c607:	83 c4 04             	add    $0x4,%esp
51c60a:	8b 44 24 54          	mov    0x54(%esp),%eax
51c60e:	89 74 24 30          	mov    %esi,0x30(%esp)
51c612:	39 58 08             	cmp    %ebx,0x8(%eax)
51c615:	74 0e                	je     0x51c625
51c617:	39 58 0c             	cmp    %ebx,0xc(%eax)
51c61a:	74 09                	je     0x51c625
51c61c:	39 9c 24 dc 00 00 00 	cmp    %ebx,0xdc(%esp)
51c623:	7c 60                	jl     0x51c685
51c625:	85 ed                	test   %ebp,%ebp
51c627:	68 5e 01 00 00       	push   $0x15e
51c62c:	0f 44 ee             	cmove  %esi,%ebp
51c62f:	68 30 08 64 00       	push   $0x640830
51c634:	55                   	push   %ebp
51c635:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
51c639:	e8 12 41 fc ff       	call   0x4e0750
51c63e:	8b d8                	mov    %eax,%ebx
51c640:	83 c4 0c             	add    $0xc,%esp
51c643:	8b 44 24 5c          	mov    0x5c(%esp),%eax
51c647:	85 c0                	test   %eax,%eax
51c649:	75 13                	jne    0x51c65e
51c64b:	68 63 01 00 00       	push   $0x163
51c650:	68 30 08 64 00       	push   $0x640830
51c655:	55                   	push   %ebp
51c656:	e8 f5 40 fc ff       	call   0x4e0750
51c65b:	83 c4 0c             	add    $0xc,%esp
51c65e:	89 44 24 38          	mov    %eax,0x38(%esp)
51c662:	85 db                	test   %ebx,%ebx
51c664:	0f 84 f5 fe ff ff    	je     0x51c55f
51c66a:	85 c0                	test   %eax,%eax
51c66c:	0f 84 ed fe ff ff    	je     0x51c55f
51c672:	8b 44 24 40          	mov    0x40(%esp),%eax
51c676:	85 c0                	test   %eax,%eax
51c678:	74 0b                	je     0x51c685
51c67a:	55                   	push   %ebp
51c67b:	50                   	push   %eax
51c67c:	53                   	push   %ebx
51c67d:	e8 4e 67 0b 00       	call   0x5d2dd0
51c682:	83 c4 0c             	add    $0xc,%esp
51c685:	e8 96 b6 fc ff       	call   0x4e7d20
51c68a:	8b e8                	mov    %eax,%ebp
51c68c:	89 6c 24 10          	mov    %ebp,0x10(%esp)
51c690:	85 ed                	test   %ebp,%ebp
51c692:	0f 84 c9 fe ff ff    	je     0x51c561
51c698:	e8 73 7b fc ff       	call   0x4e4210
51c69d:	89 44 24 44          	mov    %eax,0x44(%esp)
51c6a1:	85 c0                	test   %eax,%eax
51c6a3:	0f 84 b8 fe ff ff    	je     0x51c561
51c6a9:	55                   	push   %ebp
51c6aa:	e8 61 b7 fc ff       	call   0x4e7e10
51c6af:	55                   	push   %ebp
51c6b0:	e8 1b b5 fc ff       	call   0x4e7bd0
51c6b5:	ff 74 24 18          	push   0x18(%esp)
51c6b9:	8b e8                	mov    %eax,%ebp
51c6bb:	e8 10 b5 fc ff       	call   0x4e7bd0
51c6c0:	ff 74 24 1c          	push   0x1c(%esp)
51c6c4:	89 44 24 68          	mov    %eax,0x68(%esp)
51c6c8:	e8 03 b5 fc ff       	call   0x4e7bd0
51c6cd:	ff 74 24 20          	push   0x20(%esp)
51c6d1:	89 44 24 60          	mov    %eax,0x60(%esp)
51c6d5:	e8 f6 b4 fc ff       	call   0x4e7bd0
51c6da:	ff 74 24 24          	push   0x24(%esp)
51c6de:	89 84 24 88 00 00 00 	mov    %eax,0x88(%esp)
51c6e5:	e8 e6 b4 fc ff       	call   0x4e7bd0
51c6ea:	ff 74 24 28          	push   0x28(%esp)
51c6ee:	89 44 24 58          	mov    %eax,0x58(%esp)
51c6f2:	e8 d9 b4 fc ff       	call   0x4e7bd0
51c6f7:	83 c4 1c             	add    $0x1c,%esp
51c6fa:	89 44 24 14          	mov    %eax,0x14(%esp)
51c6fe:	85 c0                	test   %eax,%eax
51c700:	0f 84 62 04 00 00    	je     0x51cb68
51c706:	8b 4c 24 54          	mov    0x54(%esp),%ecx
51c70a:	8b 41 08             	mov    0x8(%ecx),%eax
51c70d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
51c711:	85 c0                	test   %eax,%eax
51c713:	74 2e                	je     0x51c743
51c715:	8b 41 0c             	mov    0xc(%ecx),%eax
51c718:	89 44 24 28          	mov    %eax,0x28(%esp)
51c71c:	85 c0                	test   %eax,%eax
51c71e:	74 23                	je     0x51c743
51c720:	39 bc 24 dc 00 00 00 	cmp    %edi,0xdc(%esp)
51c727:	0f 8c ea 03 00 00    	jl     0x51cb17
51c72d:	ff 74 24 20          	push   0x20(%esp)
51c731:	53                   	push   %ebx
51c732:	ff 74 24 40          	push   0x40(%esp)
51c736:	e8 95 66 0b 00       	call   0x5d2dd0
51c73b:	83 c4 0c             	add    $0xc,%esp
51c73e:	e9 d4 03 00 00       	jmp    0x51cb17
51c743:	8b 74 24 10          	mov    0x10(%esp),%esi
51c747:	56                   	push   %esi
51c748:	e8 83 b4 fc ff       	call   0x4e7bd0
51c74d:	56                   	push   %esi
51c74e:	89 44 24 24          	mov    %eax,0x24(%esp)
51c752:	e8 79 b4 fc ff       	call   0x4e7bd0
51c757:	83 c4 08             	add    $0x8,%esp
51c75a:	89 44 24 28          	mov    %eax,0x28(%esp)
51c75e:	85 c0                	test   %eax,%eax
51c760:	0f 84 02 04 00 00    	je     0x51cb68
51c766:	8b 84 24 c8 00 00 00 	mov    0xc8(%esp),%eax
51c76d:	48                   	dec    %eax
51c76e:	50                   	push   %eax
51c76f:	89 44 24 70          	mov    %eax,0x70(%esp)
51c773:	e8 18 da fb ff       	call   0x4da190
51c778:	50                   	push   %eax
51c779:	ff 74 24 1c          	push   0x1c(%esp)
51c77d:	e8 5e e2 fc ff       	call   0x4ea9e0
51c782:	83 c4 0c             	add    $0xc,%esp
51c785:	85 c0                	test   %eax,%eax
51c787:	0f 84 db 03 00 00    	je     0x51cb68
51c78d:	8b 74 24 40          	mov    0x40(%esp),%esi
51c791:	8b 7c 24 20          	mov    0x20(%esp),%edi
51c795:	ff 74 24 48          	push   0x48(%esp)
51c799:	6a 00                	push   $0x0
51c79b:	ff 74 24 2c          	push   0x2c(%esp)
51c79f:	e8 bc d1 fc ff       	call   0x4e9960
51c7a4:	ff 44 24 54          	incl   0x54(%esp)
51c7a8:	83 c4 0c             	add    $0xc,%esp
51c7ab:	85 c0                	test   %eax,%eax
51c7ad:	0f 84 b5 03 00 00    	je     0x51cb68
51c7b3:	85 f6                	test   %esi,%esi
51c7b5:	75 12                	jne    0x51c7c9
51c7b7:	57                   	push   %edi
51c7b8:	53                   	push   %ebx
51c7b9:	e8 92 4a fc ff       	call   0x4e1250
51c7be:	83 c4 08             	add    $0x8,%esp
51c7c1:	85 c0                	test   %eax,%eax
51c7c3:	0f 8e 9f 03 00 00    	jle    0x51cb68
51c7c9:	6a 00                	push   $0x0
51c7cb:	ff 74 24 1c          	push   0x1c(%esp)
51c7cf:	8d 84 24 84 00 00 00 	lea    0x84(%esp),%eax
51c7d6:	6a 00                	push   $0x0
51c7d8:	50                   	push   %eax
51c7d9:	57                   	push   %edi
51c7da:	53                   	push   %ebx
51c7db:	e8 00 e2 ff ff       	call   0x51a9e0
51c7e0:	83 c4 18             	add    $0x18,%esp
51c7e3:	85 c0                	test   %eax,%eax
51c7e5:	0f 84 7d 03 00 00    	je     0x51cb68
51c7eb:	8b 4c 24 30          	mov    0x30(%esp),%ecx
51c7ef:	8d 74 24 7c          	lea    0x7c(%esp),%esi
51c7f3:	8b 54 24 60          	mov    0x60(%esp),%edx
51c7f7:	3b ca                	cmp    %edx,%ecx
51c7f9:	7e 08                	jle    0x51c803
51c7fb:	8b c1                	mov    %ecx,%eax
51c7fd:	2b c2                	sub    %edx,%eax
51c7ff:	03 f0                	add    %eax,%esi
51c801:	eb 1f                	jmp    0x51c822
51c803:	7d 1d                	jge    0x51c822
51c805:	8b c2                	mov    %edx,%eax
51c807:	2b c1                	sub    %ecx,%eax
51c809:	50                   	push   %eax
51c80a:	8d 84 24 80 00 00 00 	lea    0x80(%esp),%eax
51c811:	03 c1                	add    %ecx,%eax
51c813:	6a 00                	push   $0x0
51c815:	50                   	push   %eax
51c816:	e8 55 64 0b 00       	call   0x5d2c70
51c81b:	8b 54 24 6c          	mov    0x6c(%esp),%edx
51c81f:	83 c4 0c             	add    $0xc,%esp
51c822:	ff 74 24 28          	push   0x28(%esp)
51c826:	80 0e 80             	orb    $0x80,(%esi)
51c829:	80 4c 16 ff 01       	orb    $0x1,-0x1(%esi,%edx,1)
51c82e:	52                   	push   %edx
51c82f:	56                   	push   %esi
51c830:	e8 3b ce fb ff       	call   0x4d9670
51c835:	83 c4 0c             	add    $0xc,%esp
51c838:	85 c0                	test   %eax,%eax
51c83a:	0f 84 28 03 00 00    	je     0x51cb68
51c840:	ff 74 24 24          	push   0x24(%esp)
51c844:	8b 74 24 44          	mov    0x44(%esp),%esi
51c848:	33 c0                	xor    %eax,%eax
51c84a:	85 f6                	test   %esi,%esi
51c84c:	0f 95 c0             	setne  %al
51c84f:	50                   	push   %eax
51c850:	ff 74 24 18          	push   0x18(%esp)
51c854:	6a 40                	push   $0x40
51c856:	ff 74 24 38          	push   0x38(%esp)
51c85a:	e8 e1 d5 fc ff       	call   0x4e9e40
51c85f:	83 c4 14             	add    $0x14,%esp
51c862:	85 c0                	test   %eax,%eax
51c864:	7f 31                	jg     0x51c897
51c866:	0f 85 fc 02 00 00    	jne    0x51cb68
51c86c:	85 f6                	test   %esi,%esi
51c86e:	0f 84 21 ff ff ff    	je     0x51c795
51c874:	68 b4 01 00 00       	push   $0x1b4
51c879:	68 30 08 64 00       	push   $0x640830
51c87e:	6a 71                	push   $0x71
51c880:	6a 7e                	push   $0x7e
51c882:	6a 0a                	push   $0xa
51c884:	33 f6                	xor    %esi,%esi
51c886:	e8 f5 c6 fb ff       	call   0x4d8f80
51c88b:	8b 6c 24 24          	mov    0x24(%esp),%ebp
51c88f:	83 c4 14             	add    $0x14,%esp
51c892:	e9 cd fc ff ff       	jmp    0x51c564
51c897:	8b 44 24 5c          	mov    0x5c(%esp),%eax
51c89b:	85 c0                	test   %eax,%eax
51c89d:	74 0b                	je     0x51c8aa
51c89f:	57                   	push   %edi
51c8a0:	53                   	push   %ebx
51c8a1:	50                   	push   %eax
51c8a2:	e8 29 65 0b 00       	call   0x5d2dd0
51c8a7:	83 c4 0c             	add    $0xc,%esp
51c8aa:	8b 74 24 24          	mov    0x24(%esp),%esi
51c8ae:	6a 00                	push   $0x0
51c8b0:	6a 02                	push   $0x2
51c8b2:	56                   	push   %esi
51c8b3:	e8 a8 d0 fc ff       	call   0x4e9960
51c8b8:	83 c4 0c             	add    $0xc,%esp
51c8bb:	85 c0                	test   %eax,%eax
51c8bd:	0f 84 a5 02 00 00    	je     0x51cb68
51c8c3:	6a 00                	push   $0x0
51c8c5:	6a 03                	push   $0x3
51c8c7:	56                   	push   %esi
51c8c8:	e8 93 d0 fc ff       	call   0x4e9960
51c8cd:	83 c4 0c             	add    $0xc,%esp
51c8d0:	85 c0                	test   %eax,%eax
51c8d2:	0f 84 90 02 00 00    	je     0x51cb68
51c8d8:	8b 4c 24 30          	mov    0x30(%esp),%ecx
51c8dc:	33 ff                	xor    %edi,%edi
51c8de:	8b 84 24 c8 00 00 00 	mov    0xc8(%esp),%eax
51c8e5:	33 d2                	xor    %edx,%edx
51c8e7:	c1 e1 03             	shl    $0x3,%ecx
51c8ea:	48                   	dec    %eax
51c8eb:	f7 f1                	div    %ecx
51c8ed:	89 7c 24 50          	mov    %edi,0x50(%esp)
51c8f1:	8b f0                	mov    %eax,%esi
51c8f3:	89 74 24 64          	mov    %esi,0x64(%esp)
51c8f7:	85 ff                	test   %edi,%edi
51c8f9:	74 17                	je     0x51c912
51c8fb:	57                   	push   %edi
51c8fc:	6a 00                	push   $0x0
51c8fe:	ff 74 24 2c          	push   0x2c(%esp)
51c902:	e8 59 d0 fc ff       	call   0x4e9960
51c907:	83 c4 0c             	add    $0xc,%esp
51c90a:	85 c0                	test   %eax,%eax
51c90c:	0f 84 56 02 00 00    	je     0x51cb68
51c912:	6a 00                	push   $0x0
51c914:	ff 74 24 50          	push   0x50(%esp)
51c918:	e8 c3 d7 fb ff       	call   0x4da0e0
51c91d:	83 c4 08             	add    $0x8,%esp
51c920:	33 ff                	xor    %edi,%edi
51c922:	85 f6                	test   %esi,%esi
51c924:	0f 88 ae 00 00 00    	js     0x51c9d8
51c92a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
51c92e:	33 f6                	xor    %esi,%esi
51c930:	8d 41 ff             	lea    -0x1(%ecx),%eax
51c933:	89 44 24 68          	mov    %eax,0x68(%esp)
51c937:	85 c0                	test   %eax,%eax
51c939:	78 10                	js     0x51c94b
51c93b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
51c940:	80 04 18 01          	addb   $0x1,(%eax,%ebx,1)
51c944:	75 05                	jne    0x51c94b
51c946:	83 e8 01             	sub    $0x1,%eax
51c949:	79 f5                	jns    0x51c940
51c94b:	6a 00                	push   $0x0
51c94d:	ff 74 24 1c          	push   0x1c(%esp)
51c951:	8d 84 24 84 00 00 00 	lea    0x84(%esp),%eax
51c958:	6a 00                	push   $0x0
51c95a:	50                   	push   %eax
51c95b:	51                   	push   %ecx
51c95c:	53                   	push   %ebx
51c95d:	e8 7e e0 ff ff       	call   0x51a9e0
51c962:	83 c4 18             	add    $0x18,%esp
51c965:	85 c0                	test   %eax,%eax
51c967:	0f 84 fb 01 00 00    	je     0x51cb68
51c96d:	55                   	push   %ebp
51c96e:	ff 74 24 34          	push   0x34(%esp)
51c972:	8d 84 24 84 00 00 00 	lea    0x84(%esp),%eax
51c979:	50                   	push   %eax
51c97a:	e8 f1 cc fb ff       	call   0x4d9670
51c97f:	83 c4 0c             	add    $0xc,%esp
51c982:	85 c0                	test   %eax,%eax
51c984:	0f 84 de 01 00 00    	je     0x51cb68
51c98a:	56                   	push   %esi
51c98b:	55                   	push   %ebp
51c98c:	55                   	push   %ebp
51c98d:	e8 4e e0 fc ff       	call   0x4ea9e0
51c992:	83 c4 0c             	add    $0xc,%esp
51c995:	85 c0                	test   %eax,%eax
51c997:	0f 84 cb 01 00 00    	je     0x51cb68
51c99d:	8b 44 24 4c          	mov    0x4c(%esp),%eax
51c9a1:	55                   	push   %ebp
51c9a2:	50                   	push   %eax
51c9a3:	50                   	push   %eax