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
5168b3:	83 c3 14             	add    $0x14,%ebx
5168b6:	8b 55 f0             	mov    -0x10(%ebp),%edx
5168b9:	0f b7 03             	movzwl (%ebx),%eax
5168bc:	4a                   	dec    %edx
5168bd:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5168c0:	03 d0                	add    %eax,%edx
5168c2:	39 4e 70             	cmp    %ecx,0x70(%esi)
5168c5:	7f 11                	jg     0x5168d8
5168c7:	6a 00                	push   $0x0
5168c9:	57                   	push   %edi
5168ca:	52                   	push   %edx
5168cb:	6a 4e                	push   $0x4e
5168cd:	56                   	push   %esi
5168ce:	e8 2d fc fe ff       	call   0x506500
5168d3:	83 c4 14             	add    $0x14,%esp
5168d6:	eb 2e                	jmp    0x516906
5168d8:	8d 41 01             	lea    0x1(%ecx),%eax
5168db:	89 46 6c             	mov    %eax,0x6c(%esi)
5168de:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5168e1:	8b 46 68             	mov    0x68(%esi),%eax
5168e4:	8b 75 ac             	mov    -0x54(%ebp),%esi
5168e7:	c7 04 88 4e 00 00 00 	movl   $0x4e,(%eax,%ecx,4)
5168ee:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5168f2:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
5168f6:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5168fd:	00
5168fe:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
516905:	00
516906:	47                   	inc    %edi
516907:	83 c3 14             	add    $0x14,%ebx
51690a:	83 6d dc 01          	subl   $0x1,-0x24(%ebp)
51690e:	75 a6                	jne    0x5168b6
516910:	8b 5d b8             	mov    -0x48(%ebp),%ebx
516913:	8b 4e 6c             	mov    0x6c(%esi),%ecx
516916:	39 4e 70             	cmp    %ecx,0x70(%esi)
516919:	7f 16                	jg     0x516931
51691b:	8b 55 b0             	mov    -0x50(%ebp),%edx
51691e:	6a 00                	push   $0x0
516920:	52                   	push   %edx
516921:	ff 75 e0             	push   -0x20(%ebp)
516924:	6a 77                	push   $0x77
516926:	56                   	push   %esi
516927:	e8 d4 fb fe ff       	call   0x506500
51692c:	83 c4 14             	add    $0x14,%esp
51692f:	eb 31                	jmp    0x516962
516931:	8b 55 e0             	mov    -0x20(%ebp),%edx
516934:	8d 41 01             	lea    0x1(%ecx),%eax
516937:	89 46 6c             	mov    %eax,0x6c(%esi)
51693a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51693d:	8b 46 68             	mov    0x68(%esi),%eax
516940:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
516944:	8b 55 b0             	mov    -0x50(%ebp),%edx
516947:	c7 04 88 77 00 00 00 	movl   $0x77,(%eax,%ecx,4)
51694e:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
516952:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
516959:	00
51695a:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
516961:	00
516962:	8b 4e 6c             	mov    0x6c(%esi),%ecx
516965:	8b 7d c8             	mov    -0x38(%ebp),%edi
516968:	39 4e 70             	cmp    %ecx,0x70(%esi)
51696b:	7f 16                	jg     0x516983
51696d:	8b 55 cc             	mov    -0x34(%ebp),%edx
516970:	52                   	push   %edx
516971:	8b 55 d0             	mov    -0x30(%ebp),%edx
516974:	52                   	push   %edx
516975:	57                   	push   %edi
516976:	6a 5b                	push   $0x5b
516978:	56                   	push   %esi
516979:	e8 82 fb fe ff       	call   0x506500
51697e:	83 c4 14             	add    $0x14,%esp
516981:	eb 2d                	jmp    0x5169b0
516983:	8b 55 d0             	mov    -0x30(%ebp),%edx
516986:	8d 41 01             	lea    0x1(%ecx),%eax
516989:	89 46 6c             	mov    %eax,0x6c(%esi)
51698c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51698f:	8b 46 68             	mov    0x68(%esi),%eax
516992:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
516996:	8b 55 cc             	mov    -0x34(%ebp),%edx
516999:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
5169a0:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
5169a4:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
5169a8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5169af:	00
5169b0:	ff 75 d0             	push   -0x30(%ebp)
5169b3:	57                   	push   %edi
5169b4:	ff 75 cc             	push   -0x34(%ebp)
5169b7:	ff 75 e0             	push   -0x20(%ebp)
5169ba:	68 83 00 00 00       	push   $0x83
5169bf:	56                   	push   %esi
5169c0:	e8 4b b2 02 00       	call   0x541c10
5169c5:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5169c8:	83 c4 18             	add    $0x18,%esp
5169cb:	85 c9                	test   %ecx,%ecx
5169cd:	74 23                	je     0x5169f2
5169cf:	8b 56 6c             	mov    0x6c(%esi),%edx
5169d2:	79 03                	jns    0x5169d7
5169d4:	8d 4a ff             	lea    -0x1(%edx),%ecx
5169d7:	8b 06                	mov    (%esi),%eax
5169d9:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5169dd:	74 07                	je     0x5169e6
5169df:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5169e4:	eb 09                	jmp    0x5169ef
5169e6:	8b 46 68             	mov    0x68(%esi),%eax
5169e9:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5169ec:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5169ef:	89 50 08             	mov    %edx,0x8(%eax)
5169f2:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5169f5:	85 c9                	test   %ecx,%ecx
5169f7:	74 14                	je     0x516a0d
5169f9:	8a 43 13             	mov    0x13(%ebx),%al
5169fc:	3c 08                	cmp    $0x8,%al
5169fe:	73 0d                	jae    0x516a0d
516a00:	0f b6 c0             	movzbl %al,%eax
516a03:	89 8c 83 94 00 00 00 	mov    %ecx,0x94(%ebx,%eax,4)
516a0a:	fe 43 13             	incb   0x13(%ebx)
516a0d:	8b 45 d0             	mov    -0x30(%ebp),%eax
516a10:	83 f8 01             	cmp    $0x1,%eax
516a13:	75 1a                	jne    0x516a2f
516a15:	85 ff                	test   %edi,%edi
516a17:	74 21                	je     0x516a3a
516a19:	8a 43 13             	mov    0x13(%ebx),%al
516a1c:	3c 08                	cmp    $0x8,%al
516a1e:	73 1a                	jae    0x516a3a
516a20:	0f b6 c0             	movzbl %al,%eax
516a23:	89 bc 83 94 00 00 00 	mov    %edi,0x94(%ebx,%eax,4)
516a2a:	fe 43 13             	incb   0x13(%ebx)
516a2d:	eb 0b                	jmp    0x516a3a
516a2f:	3b 43 1c             	cmp    0x1c(%ebx),%eax
516a32:	7e 06                	jle    0x516a3a
516a34:	89 43 1c             	mov    %eax,0x1c(%ebx)
516a37:	89 7b 20             	mov    %edi,0x20(%ebx)
516a3a:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
516a3e:	75 63                	jne    0x516aa3
516a40:	8b 45 d4             	mov    -0x2c(%ebp),%eax
516a43:	8b 50 08             	mov    0x8(%eax),%edx
516a46:	85 d2                	test   %edx,%edx
516a48:	74 59                	je     0x516aa3
516a4a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
516a4d:	39 4e 70             	cmp    %ecx,0x70(%esi)
516a50:	7f 22                	jg     0x516a74
516a52:	6a 00                	push   $0x0
516a54:	ff 75 24             	push   0x24(%ebp)
516a57:	52                   	push   %edx
516a58:	6a 3b                	push   $0x3b
516a5a:	56                   	push   %esi
516a5b:	e8 a0 fa fe ff       	call   0x506500
516a60:	83 c4 14             	add    $0x14,%esp
516a63:	5f                   	pop    %edi
516a64:	5e                   	pop    %esi
516a65:	5b                   	pop    %ebx
516a66:	8b 4d fc             	mov    -0x4(%ebp),%ecx
516a69:	33 cd                	xor    %ebp,%ecx
516a6b:	e8 6a aa 0c 00       	call   0x5e14da
516a70:	8b e5                	mov    %ebp,%esp
516a72:	5d                   	pop    %ebp
516a73:	c3                   	ret
516a74:	8d 41 01             	lea    0x1(%ecx),%eax
516a77:	89 46 6c             	mov    %eax,0x6c(%esi)
516a7a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
516a7d:	8b 46 68             	mov    0x68(%esi),%eax
516a80:	c7 04 88 3b 00 00 00 	movl   $0x3b,(%eax,%ecx,4)
516a87:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
516a8b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
516a92:	00
516a93:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
516a96:	8b 45 24             	mov    0x24(%ebp),%eax
516a99:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
516aa0:	89 41 08             	mov    %eax,0x8(%ecx)
516aa3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
516aa6:	5f                   	pop    %edi
516aa7:	5e                   	pop    %esi
516aa8:	33 cd                	xor    %ebp,%ecx
516aaa:	5b                   	pop    %ebx
516aab:	e8 2a aa 0c 00       	call   0x5e14da