524710:	e8 eb 1d fe ff       	call   0x506500
524715:	83 c4 14             	add    $0x14,%esp
524718:	8b d0                	mov    %eax,%edx
52471a:	eb 38                	jmp    0x524754
52471c:	8d 42 01             	lea    0x1(%edx),%eax
52471f:	89 46 6c             	mov    %eax,0x6c(%esi)
524722:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524725:	8b 46 68             	mov    0x68(%esi),%eax
524728:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
52472b:	33 db                	xor    %ebx,%ebx
52472d:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
524732:	8b 5d ec             	mov    -0x14(%ebp),%ebx
524735:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
524739:	8b 5d d8             	mov    -0x28(%ebp),%ebx
52473c:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
524740:	8b 5d f4             	mov    -0xc(%ebp),%ebx
524743:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
524747:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52474e:	00
52474f:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
524754:	8b 06                	mov    (%esi),%eax
524756:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52475a:	74 10                	je     0x52476c
52475c:	ff 75 e4             	push   -0x1c(%ebp)
52475f:	6a fe                	push   $0xfffffffe
524761:	50                   	push   %eax
524762:	e8 49 f5 fd ff       	call   0x503cb0
524767:	83 c4 0c             	add    $0xc,%esp
52476a:	eb 37                	jmp    0x5247a3
52476c:	85 d2                	test   %edx,%edx
52476e:	79 04                	jns    0x524774
524770:	8b 56 6c             	mov    0x6c(%esi),%edx
524773:	4a                   	dec    %edx
524774:	8b 46 68             	mov    0x68(%esi),%eax
524777:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52477a:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
52477f:	8d 04 88             	lea    (%eax,%ecx,4),%eax
524782:	74 11                	je     0x524795
524784:	6a fe                	push   $0xfffffffe
524786:	ff 75 e4             	push   -0x1c(%ebp)
524789:	50                   	push   %eax
52478a:	56                   	push   %esi
52478b:	e8 b0 54 03 00       	call   0x559c40
524790:	83 c4 10             	add    $0x10,%esp
524793:	eb 0e                	jmp    0x5247a3
524795:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
524798:	85 c9                	test   %ecx,%ecx
52479a:	74 07                	je     0x5247a3
52479c:	89 48 10             	mov    %ecx,0x10(%eax)
52479f:	c6 40 01 fe          	movb   $0xfe,0x1(%eax)
5247a3:	8b 46 6c             	mov    0x6c(%esi),%eax
5247a6:	85 c0                	test   %eax,%eax
5247a8:	7e 12                	jle    0x5247bc
5247aa:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5247ad:	66 0f be 11          	movsbw (%ecx),%dx
5247b1:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5247b4:	8b 46 68             	mov    0x68(%esi),%eax
5247b7:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
5247bc:	8b 55 d0             	mov    -0x30(%ebp),%edx
5247bf:	8b 45 dc             	mov    -0x24(%ebp),%eax
5247c2:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5247c5:	40                   	inc    %eax
5247c6:	83 c1 14             	add    $0x14,%ecx
5247c9:	89 45 dc             	mov    %eax,-0x24(%ebp)
5247cc:	3b 02                	cmp    (%edx),%eax
5247ce:	8b 55 bc             	mov    -0x44(%ebp),%edx
5247d1:	89 4d cc             	mov    %ecx,-0x34(%ebp)
5247d4:	0f 8c b9 fc ff ff    	jl     0x524493
5247da:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5247dd:	85 db                	test   %ebx,%ebx
5247df:	0f 84 97 00 00 00    	je     0x52487c
5247e5:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5247e8:	39 4e 70             	cmp    %ecx,0x70(%esi)
5247eb:	7f 13                	jg     0x524800
5247ed:	6a 00                	push   $0x0
5247ef:	ff 75 d4             	push   -0x2c(%ebp)
5247f2:	53                   	push   %ebx
5247f3:	6a 32                	push   $0x32
5247f5:	56                   	push   %esi
5247f6:	e8 05 1d fe ff       	call   0x506500
5247fb:	83 c4 14             	add    $0x14,%esp
5247fe:	eb 2e                	jmp    0x52482e
524800:	8b 55 d4             	mov    -0x2c(%ebp),%edx
524803:	8d 41 01             	lea    0x1(%ecx),%eax
524806:	89 46 6c             	mov    %eax,0x6c(%esi)
524809:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52480c:	8b 46 68             	mov    0x68(%esi),%eax
52480f:	c7 04 88 32 00 00 00 	movl   $0x32,(%eax,%ecx,4)
524816:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52481a:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52481e:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524825:	00
524826:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52482d:	00
52482e:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524831:	39 4e 70             	cmp    %ecx,0x70(%esi)
524834:	7f 14                	jg     0x52484a
524836:	6a 00                	push   $0x0
524838:	ff 75 f0             	push   -0x10(%ebp)
52483b:	6a 00                	push   $0x0
52483d:	6a 0b                	push   $0xb
52483f:	56                   	push   %esi
524840:	e8 bb 1c fe ff       	call   0x506500
524845:	83 c4 14             	add    $0x14,%esp
524848:	eb 32                	jmp    0x52487c
52484a:	8b 55 f0             	mov    -0x10(%ebp),%edx
52484d:	8d 41 01             	lea    0x1(%ecx),%eax
524850:	89 46 6c             	mov    %eax,0x6c(%esi)
524853:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524856:	8b 46 68             	mov    0x68(%esi),%eax
524859:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
524860:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
524867:	00
524868:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52486c:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524873:	00
524874:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52487b:	00
52487c:	8b 4e 0c             	mov    0xc(%esi),%ecx
52487f:	8b 55 d8             	mov    -0x28(%ebp),%edx
524882:	f7 d2                	not    %edx
524884:	8b 41 3c             	mov    0x3c(%ecx),%eax
524887:	03 41 38             	add    0x38(%ecx),%eax
52488a:	79 0d                	jns    0x524899
52488c:	52                   	push   %edx
52488d:	56                   	push   %esi
52488e:	51                   	push   %ecx
52488f:	e8 0c ef fe ff       	call   0x5137a0
524894:	83 c4 0c             	add    $0xc,%esp
524897:	eb 09                	jmp    0x5248a2
524899:	8b 49 40             	mov    0x40(%ecx),%ecx
52489c:	8b 46 6c             	mov    0x6c(%esi),%eax
52489f:	89 04 91             	mov    %eax,(%ecx,%edx,4)
5248a2:	85 db                	test   %ebx,%ebx
5248a4:	0f 84 db 06 00 00    	je     0x524f85
5248aa:	8a 47 13             	mov    0x13(%edi),%al
5248ad:	3c 08                	cmp    $0x8,%al
5248af:	0f 83 d0 06 00 00    	jae    0x524f85
5248b5:	0f b6 c0             	movzbl %al,%eax
5248b8:	89 9c 87 94 00 00 00 	mov    %ebx,0x94(%edi,%eax,4)
5248bf:	fe 47 13             	incb   0x13(%edi)
5248c2:	e9 be 06 00 00       	jmp    0x524f85
5248c7:	8b 55 f0             	mov    -0x10(%ebp),%edx
5248ca:	39 55 d4             	cmp    %edx,-0x2c(%ebp)
5248cd:	75 05                	jne    0x5248d4
5248cf:	89 55 d8             	mov    %edx,-0x28(%ebp)
5248d2:	eb 0c                	jmp    0x5248e0
5248d4:	ff 4f 38             	decl   0x38(%edi)
5248d7:	8b 47 38             	mov    0x38(%edi),%eax
5248da:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5248dd:	89 45 d8             	mov    %eax,-0x28(%ebp)
5248e0:	83 7f 24 00          	cmpl   $0x0,0x24(%edi)
5248e4:	0f 85 9b 06 00 00    	jne    0x524f85
5248ea:	85 db                	test   %ebx,%ebx
5248ec:	0f 8e c2 00 00 00    	jle    0x5249b4
5248f2:	8b 45 e8             	mov    -0x18(%ebp),%eax
5248f5:	8b f9                	mov    %ecx,%edi
5248f7:	33 db                	xor    %ebx,%ebx
5248f9:	89 45 d0             	mov    %eax,-0x30(%ebp)
5248fc:	0f 1f 40 00          	nopl   0x0(%eax)
524900:	8b 45 e0             	mov    -0x20(%ebp),%eax
524903:	8b 48 0c             	mov    0xc(%eax),%ecx
524906:	8a 01                	mov    (%ecx),%al
524908:	88 45 cb             	mov    %al,-0x35(%ebp)
52490b:	3c ad                	cmp    $0xad,%al
52490d:	75 03                	jne    0x524912
52490f:	8a 41 02             	mov    0x2(%ecx),%al
524912:	3c ae                	cmp    $0xae,%al
524914:	75 07                	jne    0x52491d
524916:	8b 51 14             	mov    0x14(%ecx),%edx
524919:	8b 02                	mov    (%edx),%eax
52491b:	eb 0c                	jmp    0x524929
52491d:	3c 88                	cmp    $0x88,%al
52491f:	75 26                	jne    0x524947
524921:	8b 51 14             	mov    0x14(%ecx),%edx
524924:	8b 42 1c             	mov    0x1c(%edx),%eax
524927:	8b 00                	mov    (%eax),%eax
524929:	83 f8 01             	cmp    $0x1,%eax
52492c:	7e 19                	jle    0x524947
52492e:	80 7d cb 88          	cmpb   $0x88,-0x35(%ebp)
524932:	74 0c                	je     0x524940
524934:	80 79 02 88          	cmpb   $0x88,0x2(%ecx)
524938:	74 06                	je     0x524940
52493a:	8b 4c 1a 04          	mov    0x4(%edx,%ebx,1),%ecx
52493e:	eb 07                	jmp    0x524947
524940:	8b 42 1c             	mov    0x1c(%edx),%eax
524943:	8b 4c 18 04          	mov    0x4(%eax,%ebx,1),%ecx
524947:	51                   	push   %ecx
524948:	e8 13 f1 ff ff       	call   0x523a60
52494d:	83 c4 04             	add    $0x4,%esp
524950:	85 c0                	test   %eax,%eax
524952:	74 49                	je     0x52499d
524954:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524957:	39 4e 70             	cmp    %ecx,0x70(%esi)
52495a:	7f 13                	jg     0x52496f
52495c:	6a 00                	push   $0x0
52495e:	ff 75 d8             	push   -0x28(%ebp)
524961:	57                   	push   %edi
524962:	6a 32                	push   $0x32
524964:	56                   	push   %esi
524965:	e8 96 1b fe ff       	call   0x506500
52496a:	83 c4 14             	add    $0x14,%esp
52496d:	eb 2e                	jmp    0x52499d
52496f:	8b 55 d8             	mov    -0x28(%ebp),%edx
524972:	8d 41 01             	lea    0x1(%ecx),%eax
524975:	89 46 6c             	mov    %eax,0x6c(%esi)
524978:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52497b:	8b 46 68             	mov    0x68(%esi),%eax
52497e:	c7 04 88 32 00 00 00 	movl   $0x32,(%eax,%ecx,4)
524985:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
524989:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52498d:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524994:	00
524995:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52499c:	00
52499d:	83 c3 14             	add    $0x14,%ebx
5249a0:	47                   	inc    %edi
5249a1:	83 6d d0 01          	subl   $0x1,-0x30(%ebp)
5249a5:	0f 85 55 ff ff ff    	jne    0x524900
5249ab:	8b 7d c4             	mov    -0x3c(%ebp),%edi
5249ae:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5249b1:	8b 55 f0             	mov    -0x10(%ebp),%edx
5249b4:	83 7d dc 01          	cmpl   $0x1,-0x24(%ebp)
5249b8:	0f 85 a5 00 00 00    	jne    0x524a63
5249be:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5249c1:	39 4e 70             	cmp    %ecx,0x70(%esi)
5249c4:	7f 14                	jg     0x5249da
5249c6:	ff 75 ec             	push   -0x14(%ebp)
5249c9:	52                   	push   %edx
5249ca:	ff 75 f4             	push   -0xc(%ebp)
5249cd:	6a 1f                	push   $0x1f
5249cf:	56                   	push   %esi
5249d0:	e8 2b 1b fe ff       	call   0x506500
5249d5:	83 c4 14             	add    $0x14,%esp
5249d8:	eb 30                	jmp    0x524a0a
5249da:	8b 55 f4             	mov    -0xc(%ebp),%edx
5249dd:	8d 41 01             	lea    0x1(%ecx),%eax
5249e0:	89 46 6c             	mov    %eax,0x6c(%esi)
5249e3:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5249e6:	8b 46 68             	mov    0x68(%esi),%eax
5249e9:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5249ed:	8b 55 f0             	mov    -0x10(%ebp),%edx
5249f0:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5249f4:	8b 55 ec             	mov    -0x14(%ebp),%edx
5249f7:	c7 04 88 1f 00 00 00 	movl   $0x1f,(%eax,%ecx,4)
5249fe:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
524a02:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524a09:	00
524a0a:	8b 56 6c             	mov    0x6c(%esi),%edx
524a0d:	89 55 d0             	mov    %edx,-0x30(%ebp)
524a10:	39 56 70             	cmp    %edx,0x70(%esi)
524a13:	7f 16                	jg     0x524a2b
524a15:	6a 00                	push   $0x0
524a17:	6a 00                	push   $0x0
524a19:	6a 00                	push   $0x0
524a1b:	6a 0b                	push   $0xb
524a1d:	56                   	push   %esi
524a1e:	e8 dd 1a fe ff       	call   0x506500
524a23:	83 c4 14             	add    $0x14,%esp
524a26:	e9 1f 01 00 00       	jmp    0x524b4a
524a2b:	8d 42 01             	lea    0x1(%edx),%eax
524a2e:	89 46 6c             	mov    %eax,0x6c(%esi)
524a31:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524a34:	8b 46 68             	mov    0x68(%esi),%eax
524a37:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
524a3e:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
524a45:	00
524a46:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
524a4d:	00
524a4e:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524a55:	00
524a56:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524a5d:	00
524a5e:	e9 ea 00 00 00       	jmp    0x524b4d
524a63:	8b 56 6c             	mov    0x6c(%esi),%edx
524a66:	39 56 70             	cmp    %edx,0x70(%esi)
524a69:	7f 15                	jg     0x524a80
524a6b:	6a 00                	push   $0x0
524a6d:	53                   	push   %ebx
524a6e:	ff 75 ec             	push   -0x14(%ebp)
524a71:	6a 5a                	push   $0x5a
524a73:	56                   	push   %esi
524a74:	e8 87 1a fe ff       	call   0x506500
524a79:	83 c4 14             	add    $0x14,%esp
524a7c:	8b d0                	mov    %eax,%edx
524a7e:	eb 31                	jmp    0x524ab1
524a80:	8b 7d ec             	mov    -0x14(%ebp),%edi
524a83:	8d 42 01             	lea    0x1(%edx),%eax
524a86:	89 46 6c             	mov    %eax,0x6c(%esi)
524a89:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524a8c:	8b 46 68             	mov    0x68(%esi),%eax
524a8f:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
524a93:	8b 7d c4             	mov    -0x3c(%ebp),%edi
524a96:	c7 04 88 5a 00 00 00 	movl   $0x5a,(%eax,%ecx,4)
524a9d:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
524aa1:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524aa8:	00
524aa9:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524ab0:	00
524ab1:	8b 06                	mov    (%esi),%eax
524ab3:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524ab7:	74 14                	je     0x524acd
524ab9:	83 fb f4             	cmp    $0xfffffff4,%ebx
524abc:	74 5c                	je     0x524b1a
524abe:	ff 75 c0             	push   -0x40(%ebp)
524ac1:	53                   	push   %ebx
524ac2:	50                   	push   %eax
524ac3:	e8 e8 f1 fd ff       	call   0x503cb0
524ac8:	83 c4 0c             	add    $0xc,%esp
524acb:	eb 4d                	jmp    0x524b1a
524acd:	85 d2                	test   %edx,%edx
524acf:	79 04                	jns    0x524ad5
524ad1:	8b 56 6c             	mov    0x6c(%esi),%edx
524ad4:	4a                   	dec    %edx
524ad5:	8b 46 68             	mov    0x68(%esi),%eax
524ad8:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524adb:	8d 04 88             	lea    (%eax,%ecx,4),%eax
524ade:	85 db                	test   %ebx,%ebx
524ae0:	79 2a                	jns    0x524b0c
524ae2:	80 78 01 00          	cmpb   $0x0,0x1(%eax)
524ae6:	75 24                	jne    0x524b0c
524ae8:	8b 4d c0             	mov    -0x40(%ebp),%ecx
524aeb:	83 fb fd             	cmp    $0xfffffffd,%ebx
524aee:	75 08                	jne    0x524af8
524af0:	89 48 10             	mov    %ecx,0x10(%eax)
524af3:	88 58 01             	mov    %bl,0x1(%eax)
524af6:	eb 22                	jmp    0x524b1a
524af8:	85 c9                	test   %ecx,%ecx
524afa:	74 1e                	je     0x524b1a
524afc:	89 48 10             	mov    %ecx,0x10(%eax)
524aff:	88 58 01             	mov    %bl,0x1(%eax)
524b02:	83 fb f4             	cmp    $0xfffffff4,%ebx
524b05:	75 13                	jne    0x524b1a
524b07:	ff 41 0c             	incl   0xc(%ecx)
524b0a:	eb 0e                	jmp    0x524b1a
524b0c:	53                   	push   %ebx
524b0d:	ff 75 c0             	push   -0x40(%ebp)
524b10:	50                   	push   %eax
524b11:	56                   	push   %esi
524b12:	e8 29 51 03 00       	call   0x559c40
524b17:	83 c4 10             	add    $0x10,%esp
524b1a:	8b 45 f0             	mov    -0x10(%ebp),%eax
524b1d:	53                   	push   %ebx
524b1e:	ff 75 ec             	push   -0x14(%ebp)
524b21:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
524b24:	75 14                	jne    0x524b3a
524b26:	50                   	push   %eax
524b27:	ff 75 f4             	push   -0xc(%ebp)
524b2a:	6a 1d                	push   $0x1d
524b2c:	56                   	push   %esi