5164bd:	8a 43 13             	mov    0x13(%ebx),%al
5164c0:	84 c0                	test   %al,%al
5164c2:	75 08                	jne    0x5164cc
5164c4:	ff 43 2c             	incl   0x2c(%ebx)
5164c7:	8b 43 2c             	mov    0x2c(%ebx),%eax
5164ca:	eb 0f                	jmp    0x5164db
5164cc:	fe c8                	dec    %al
5164ce:	88 43 13             	mov    %al,0x13(%ebx)
5164d1:	0f b6 c0             	movzbl %al,%eax
5164d4:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
5164db:	50                   	push   %eax
5164dc:	57                   	push   %edi
5164dd:	ff 75 f0             	push   -0x10(%ebp)
5164e0:	89 45 e8             	mov    %eax,-0x18(%ebp)
5164e3:	6a 5b                	push   $0x5b
5164e5:	56                   	push   %esi
5164e6:	e8 55 b6 02 00       	call   0x541b40
5164eb:	8b 55 e0             	mov    -0x20(%ebp),%edx
5164ee:	57                   	push   %edi
5164ef:	ff 75 f0             	push   -0x10(%ebp)
5164f2:	8b 7d e8             	mov    -0x18(%ebp),%edi
5164f5:	57                   	push   %edi
5164f6:	52                   	push   %edx
5164f7:	68 83 00 00 00       	push   $0x83
5164fc:	56                   	push   %esi
5164fd:	e8 0e b7 02 00       	call   0x541c10
516502:	83 c4 2c             	add    $0x2c,%esp
516505:	e9 0b 05 00 00       	jmp    0x516a15
51650a:	8b 55 e0             	mov    -0x20(%ebp),%edx
51650d:	57                   	push   %edi
51650e:	ff 75 f0             	push   -0x10(%ebp)
516511:	52                   	push   %edx
516512:	68 84 00 00 00       	push   $0x84
516517:	56                   	push   %esi
516518:	e8 23 b6 02 00       	call   0x541b40
51651d:	83 c4 14             	add    $0x14,%esp
516520:	e9 15 05 00 00       	jmp    0x516a3a
516525:	8b 45 d8             	mov    -0x28(%ebp),%eax
516528:	40                   	inc    %eax
516529:	50                   	push   %eax
51652a:	53                   	push   %ebx
51652b:	e8 f0 69 01 00       	call   0x52cf20
516530:	8b 4e 6c             	mov    0x6c(%esi),%ecx
516533:	8b d0                	mov    %eax,%edx
516535:	8b 45 d8             	mov    -0x28(%ebp),%eax
516538:	83 c4 08             	add    $0x8,%esp
51653b:	03 c2                	add    %edx,%eax
51653d:	89 55 ec             	mov    %edx,-0x14(%ebp)
516540:	89 45 e8             	mov    %eax,-0x18(%ebp)
516543:	39 4e 70             	cmp    %ecx,0x70(%esi)
516546:	7f 15                	jg     0x51655d
516548:	50                   	push   %eax
516549:	57                   	push   %edi
51654a:	ff 75 f0             	push   -0x10(%ebp)
51654d:	6a 5b                	push   $0x5b
51654f:	56                   	push   %esi
516550:	e8 ab ff fe ff       	call   0x506500
516555:	8b 55 ec             	mov    -0x14(%ebp),%edx
516558:	83 c4 14             	add    $0x14,%esp
51655b:	eb 30                	jmp    0x51658d
51655d:	8b 5d f0             	mov    -0x10(%ebp),%ebx
516560:	8d 41 01             	lea    0x1(%ecx),%eax
516563:	89 46 6c             	mov    %eax,0x6c(%esi)
516566:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
516569:	8b 46 68             	mov    0x68(%esi),%eax
51656c:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
516570:	8b 7d e8             	mov    -0x18(%ebp),%edi
516573:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
516577:	8b 5d b8             	mov    -0x48(%ebp),%ebx
51657a:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
516581:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
516585:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
51658c:	00
51658d:	83 7d c0 06          	cmpl   $0x6,-0x40(%ebp)
516591:	75 2f                	jne    0x5165c2
516593:	8b 46 6c             	mov    0x6c(%esi),%eax
516596:	8b 7d e0             	mov    -0x20(%ebp),%edi
516599:	83 c0 04             	add    $0x4,%eax
51659c:	6a 00                	push   $0x0
51659e:	52                   	push   %edx
51659f:	50                   	push   %eax
5165a0:	47                   	inc    %edi
5165a1:	57                   	push   %edi
5165a2:	6a 1e                	push   $0x1e
5165a4:	56                   	push   %esi
5165a5:	e8 66 b6 02 00       	call   0x541c10
5165aa:	ff 75 cc             	push   -0x34(%ebp)
5165ad:	ff 75 f0             	push   -0x10(%ebp)
5165b0:	ff 75 ec             	push   -0x14(%ebp)
5165b3:	57                   	push   %edi
5165b4:	68 83 00 00 00       	push   $0x83
5165b9:	56                   	push   %esi
5165ba:	e8 51 b6 02 00       	call   0x541c10
5165bf:	83 c4 30             	add    $0x30,%esp
5165c2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5165c5:	85 c0                	test   %eax,%eax
5165c7:	74 1e                	je     0x5165e7
5165c9:	8b 7d d8             	mov    -0x28(%ebp),%edi
5165cc:	57                   	push   %edi
5165cd:	6a 01                	push   $0x1
5165cf:	ff 75 bc             	push   -0x44(%ebp)
5165d2:	ff 75 e8             	push   -0x18(%ebp)
5165d5:	ff 75 d4             	push   -0x2c(%ebp)
5165d8:	50                   	push   %eax
5165d9:	53                   	push   %ebx
5165da:	e8 b1 a7 ff ff       	call   0x510d90
5165df:	83 c4 1c             	add    $0x1c,%esp
5165e2:	e9 a8 00 00 00       	jmp    0x51668f
5165e7:	8a 43 13             	mov    0x13(%ebx),%al
5165ea:	84 c0                	test   %al,%al
5165ec:	75 08                	jne    0x5165f6
5165ee:	ff 43 2c             	incl   0x2c(%ebx)
5165f1:	8b 7b 2c             	mov    0x2c(%ebx),%edi
5165f4:	eb 0f                	jmp    0x516605
5165f6:	fe c8                	dec    %al
5165f8:	88 43 13             	mov    %al,0x13(%ebx)
5165fb:	0f b6 c0             	movzbl %al,%eax
5165fe:	8b bc 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%edi
516605:	57                   	push   %edi
516606:	ff 75 e0             	push   -0x20(%ebp)
516609:	6a 78                	push   $0x78
51660b:	56                   	push   %esi
51660c:	e8 cf b4 02 00       	call   0x541ae0
516611:	8b 4e 6c             	mov    0x6c(%esi),%ecx
516614:	83 c4 10             	add    $0x10,%esp
516617:	39 4e 70             	cmp    %ecx,0x70(%esi)
51661a:	7f 14                	jg     0x516630
51661c:	57                   	push   %edi
51661d:	ff 75 ec             	push   -0x14(%ebp)
516620:	ff 75 e0             	push   -0x20(%ebp)
516623:	6a 79                	push   $0x79
516625:	56                   	push   %esi
516626:	e8 d5 fe fe ff       	call   0x506500
51662b:	83 c4 14             	add    $0x14,%esp
51662e:	eb 2d                	jmp    0x51665d
516630:	8b 55 e0             	mov    -0x20(%ebp),%edx
516633:	8d 41 01             	lea    0x1(%ecx),%eax
516636:	89 46 6c             	mov    %eax,0x6c(%esi)
516639:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51663c:	8b 46 68             	mov    0x68(%esi),%eax
51663f:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
516643:	8b 55 ec             	mov    -0x14(%ebp),%edx
516646:	c7 04 88 79 00 00 00 	movl   $0x79,(%eax,%ecx,4)
51664d:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
516651:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
516655:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
51665c:	00
51665d:	8b 46 6c             	mov    0x6c(%esi),%eax
516660:	85 c0                	test   %eax,%eax
516662:	7e 10                	jle    0x516674
516664:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
516667:	ba 08 00 00 00       	mov    $0x8,%edx
51666c:	8b 46 68             	mov    0x68(%esi),%eax
51666f:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
516674:	85 ff                	test   %edi,%edi
516676:	74 14                	je     0x51668c
516678:	8a 43 13             	mov    0x13(%ebx),%al
51667b:	3c 08                	cmp    $0x8,%al
51667d:	73 0d                	jae    0x51668c
51667f:	0f b6 c0             	movzbl %al,%eax
516682:	89 bc 83 94 00 00 00 	mov    %edi,0x94(%ebx,%eax,4)
516689:	fe 43 13             	incb   0x13(%ebx)
51668c:	8b 7d d8             	mov    -0x28(%ebp),%edi
51668f:	8d 47 01             	lea    0x1(%edi),%eax
516692:	83 f8 01             	cmp    $0x1,%eax
516695:	75 28                	jne    0x5166bf
516697:	8b 4d ec             	mov    -0x14(%ebp),%ecx
51669a:	85 c9                	test   %ecx,%ecx
51669c:	0f 84 98 03 00 00    	je     0x516a3a
5166a2:	8a 43 13             	mov    0x13(%ebx),%al
5166a5:	3c 08                	cmp    $0x8,%al
5166a7:	0f 83 8d 03 00 00    	jae    0x516a3a
5166ad:	0f b6 c0             	movzbl %al,%eax
5166b0:	89 8c 83 94 00 00 00 	mov    %ecx,0x94(%ebx,%eax,4)
5166b7:	fe 43 13             	incb   0x13(%ebx)
5166ba:	e9 7b 03 00 00       	jmp    0x516a3a
5166bf:	3b 43 1c             	cmp    0x1c(%ebx),%eax
5166c2:	0f 8e 72 03 00 00    	jle    0x516a3a
5166c8:	89 43 1c             	mov    %eax,0x1c(%ebx)
5166cb:	8b 45 ec             	mov    -0x14(%ebp),%eax
5166ce:	89 43 20             	mov    %eax,0x20(%ebx)
5166d1:	e9 64 03 00 00       	jmp    0x516a3a
5166d6:	85 c0                	test   %eax,%eax
5166d8:	74 1c                	je     0x5166f6
5166da:	ff 75 d8             	push   -0x28(%ebp)
5166dd:	57                   	push   %edi
5166de:	ff 75 bc             	push   -0x44(%ebp)
5166e1:	ff 75 f0             	push   -0x10(%ebp)
5166e4:	ff 75 d4             	push   -0x2c(%ebp)
5166e7:	50                   	push   %eax
5166e8:	53                   	push   %ebx
5166e9:	e8 a2 a6 ff ff       	call   0x510d90
5166ee:	83 c4 1c             	add    $0x1c,%esp
5166f1:	e9 44 03 00 00       	jmp    0x516a3a
5166f6:	8a 43 13             	mov    0x13(%ebx),%al
5166f9:	84 c0                	test   %al,%al
5166fb:	75 08                	jne    0x516705
5166fd:	ff 43 2c             	incl   0x2c(%ebx)
516700:	8b 43 2c             	mov    0x2c(%ebx),%eax
516703:	eb 0f                	jmp    0x516714
516705:	fe c8                	dec    %al
516707:	88 43 13             	mov    %al,0x13(%ebx)
51670a:	0f b6 c0             	movzbl %al,%eax
51670d:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
516714:	8b 55 d0             	mov    -0x30(%ebp),%edx
516717:	57                   	push   %edi
516718:	89 45 e8             	mov    %eax,-0x18(%ebp)
51671b:	ff 72 10             	push   0x10(%edx)
51671e:	50                   	push   %eax
51671f:	57                   	push   %edi
516720:	ff 75 f0             	push   -0x10(%ebp)
516723:	6a 5b                	push   $0x5b
516725:	56                   	push   %esi
516726:	e8 65 b4 02 00       	call   0x541b90
51672b:	57                   	push   %edi
51672c:	ff 75 f0             	push   -0x10(%ebp)
51672f:	8b 7d e8             	mov    -0x18(%ebp),%edi
516732:	57                   	push   %edi
516733:	ff 75 e0             	push   -0x20(%ebp)
516736:	68 83 00 00 00       	push   $0x83
51673b:	56                   	push   %esi
51673c:	e8 cf b4 02 00       	call   0x541c10
516741:	83 c4 34             	add    $0x34,%esp
516744:	85 ff                	test   %edi,%edi
516746:	0f 84 f4 02 00 00    	je     0x516a40
51674c:	8a 43 13             	mov    0x13(%ebx),%al
51674f:	3c 08                	cmp    $0x8,%al
516751:	0f 83 e9 02 00 00    	jae    0x516a40
516757:	0f b6 c0             	movzbl %al,%eax
51675a:	89 bc 83 94 00 00 00 	mov    %edi,0x94(%ebx,%eax,4)
516761:	fe 43 13             	incb   0x13(%ebx)
516764:	e9 d7 02 00 00       	jmp    0x516a40
516769:	ff 75 e0             	push   -0x20(%ebp)
51676c:	6a 01                	push   $0x1
51676e:	6a 45                	push   $0x45
516770:	56                   	push   %esi
516771:	e8 6a b3 02 00       	call   0x541ae0
516776:	83 c4 10             	add    $0x10,%esp
516779:	e9 bc 02 00 00       	jmp    0x516a3a
51677e:	85 c0                	test   %eax,%eax
516780:	0f 84 ba 02 00 00    	je     0x516a40
516786:	ff 75 d8             	push   -0x28(%ebp)
516789:	57                   	push   %edi
51678a:	ff 75 bc             	push   -0x44(%ebp)
51678d:	ff 75 f0             	push   -0x10(%ebp)
516790:	ff 75 d4             	push   -0x2c(%ebp)
516793:	50                   	push   %eax
516794:	53                   	push   %ebx
516795:	e8 f6 a5 ff ff       	call   0x510d90
51679a:	83 c4 1c             	add    $0x1c,%esp
51679d:	e9 98 02 00 00       	jmp    0x516a3a
5167a2:	85 c0                	test   %eax,%eax
5167a4:	74 1c                	je     0x5167c2
5167a6:	ff 75 d8             	push   -0x28(%ebp)
5167a9:	57                   	push   %edi
5167aa:	ff 75 bc             	push   -0x44(%ebp)
5167ad:	ff 75 f0             	push   -0x10(%ebp)
5167b0:	ff 75 d4             	push   -0x2c(%ebp)
5167b3:	50                   	push   %eax
5167b4:	53                   	push   %ebx
5167b5:	e8 d6 a5 ff ff       	call   0x510d90
5167ba:	83 c4 1c             	add    $0x1c,%esp
5167bd:	e9 78 02 00 00       	jmp    0x516a3a
5167c2:	83 fa 0d             	cmp    $0xd,%edx
5167c5:	75 16                	jne    0x5167dd
5167c7:	8b 55 d0             	mov    -0x30(%ebp),%edx
5167ca:	ff 72 04             	push   0x4(%edx)
5167cd:	6a 0e                	push   $0xe
5167cf:	56                   	push   %esi
5167d0:	e8 ab b2 02 00       	call   0x541a80
5167d5:	83 c4 0c             	add    $0xc,%esp
5167d8:	e9 63 02 00 00       	jmp    0x516a40
5167dd:	57                   	push   %edi
5167de:	ff 75 f0             	push   -0x10(%ebp)
5167e1:	6a 50                	push   $0x50
5167e3:	56                   	push   %esi
5167e4:	e8 f7 b2 02 00       	call   0x541ae0
5167e9:	83 c4 10             	add    $0x10,%esp
5167ec:	e9 4f 02 00 00       	jmp    0x516a40
5167f1:	8b 55 d0             	mov    -0x30(%ebp),%edx
5167f4:	33 c0                	xor    %eax,%eax
5167f6:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5167f9:	8b 42 14             	mov    0x14(%edx),%eax
5167fc:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5167ff:	8b 08                	mov    (%eax),%ecx
516801:	8a 43 13             	mov    0x13(%ebx),%al
516804:	89 4d dc             	mov    %ecx,-0x24(%ebp)
516807:	84 c0                	test   %al,%al
516809:	75 08                	jne    0x516813
51680b:	ff 43 2c             	incl   0x2c(%ebx)
51680e:	8b 43 2c             	mov    0x2c(%ebx),%eax
516811:	eb 0f                	jmp    0x516822
516813:	fe c8                	dec    %al
516815:	88 43 13             	mov    %al,0x13(%ebx)
516818:	0f b6 c0             	movzbl %al,%eax
51681b:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
516822:	89 45 cc             	mov    %eax,-0x34(%ebp)
516825:	8d 41 02             	lea    0x2(%ecx),%eax
516828:	50                   	push   %eax
516829:	53                   	push   %ebx
51682a:	89 45 d0             	mov    %eax,-0x30(%ebp)
51682d:	e8 ee 66 01 00       	call   0x52cf20
516832:	89 45 c8             	mov    %eax,-0x38(%ebp)
516835:	83 c4 08             	add    $0x8,%esp
516838:	03 45 dc             	add    -0x24(%ebp),%eax
51683b:	89 45 b0             	mov    %eax,-0x50(%ebp)
51683e:	40                   	inc    %eax
51683f:	83 7d c0 08          	cmpl   $0x8,-0x40(%ebp)
516843:	89 45 e8             	mov    %eax,-0x18(%ebp)
516846:	75 1c                	jne    0x516864
516848:	8b 45 e0             	mov    -0x20(%ebp),%eax
51684b:	57                   	push   %edi
51684c:	ff 75 f0             	push   -0x10(%ebp)
51684f:	40                   	inc    %eax
516850:	6a 00                	push   $0x0
516852:	50                   	push   %eax
516853:	6a 1e                	push   $0x1e
516855:	56                   	push   %esi
516856:	e8 b5 b3 02 00       	call   0x541c10
51685b:	89 45 c4             	mov    %eax,-0x3c(%ebp)
51685e:	83 c4 18             	add    $0x18,%esp
516861:	8b 45 e8             	mov    -0x18(%ebp),%eax
516864:	50                   	push   %eax
516865:	57                   	push   %edi
516866:	ff 75 f0             	push   -0x10(%ebp)
516869:	6a 5b                	push   $0x5b
51686b:	56                   	push   %esi
51686c:	e8 cf b2 02 00       	call   0x541b40
516871:	83 c4 14             	add    $0x14,%esp
516874:	83 7d c0 08          	cmpl   $0x8,-0x40(%ebp)
516878:	75 2d                	jne    0x5168a7
51687a:	ff 75 e8             	push   -0x18(%ebp)
51687d:	8b 45 e0             	mov    -0x20(%ebp),%eax
516880:	40                   	inc    %eax
516881:	50                   	push   %eax
516882:	68 83 00 00 00       	push   $0x83
516887:	56                   	push   %esi
516888:	e8 53 b2 02 00       	call   0x541ae0
51688d:	8b 46 6c             	mov    0x6c(%esi),%eax
516890:	83 c4 10             	add    $0x10,%esp
516893:	85 c0                	test   %eax,%eax
516895:	7e 10                	jle    0x5168a7
516897:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
51689a:	ba 10 00 00 00       	mov    $0x10,%edx
51689f:	8b 46 68             	mov    0x68(%esi),%eax
5168a2:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
5168a7:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
5168ab:	7e 66                	jle    0x516913
5168ad:	8b 5d b4             	mov    -0x4c(%ebp),%ebx
5168b0:	8b 7d c8             	mov    -0x38(%ebp),%edi