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
524b2d:	e8 de d0 01 00       	call   0x541c10
524b32:	83 c4 18             	add    $0x18,%esp
524b35:	e9 4b 04 00 00       	jmp    0x524f85
524b3a:	6a 00                	push   $0x0
524b3c:	ff 75 f4             	push   -0xc(%ebp)
524b3f:	6a 1e                	push   $0x1e
524b41:	56                   	push   %esi
524b42:	e8 c9 d0 01 00       	call   0x541c10
524b47:	83 c4 18             	add    $0x18,%esp
524b4a:	89 45 d0             	mov    %eax,-0x30(%ebp)
524b4d:	8b 55 f8             	mov    -0x8(%ebp),%edx
524b50:	85 d2                	test   %edx,%edx
524b52:	74 51                	je     0x524ba5
524b54:	83 fb 01             	cmp    $0x1,%ebx
524b57:	75 4c                	jne    0x524ba5
524b59:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524b5c:	39 4e 70             	cmp    %ecx,0x70(%esi)
524b5f:	7f 13                	jg     0x524b74
524b61:	6a 00                	push   $0x0
524b63:	ff 75 f0             	push   -0x10(%ebp)
524b66:	52                   	push   %edx
524b67:	6a 33                	push   $0x33
524b69:	56                   	push   %esi
524b6a:	e8 91 19 fe ff       	call   0x506500
524b6f:	83 c4 14             	add    $0x14,%esp
524b72:	eb 31                	jmp    0x524ba5
524b74:	8b 7d c4             	mov    -0x3c(%ebp),%edi
524b77:	8d 41 01             	lea    0x1(%ecx),%eax
524b7a:	89 46 6c             	mov    %eax,0x6c(%esi)
524b7d:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524b80:	8b 46 68             	mov    0x68(%esi),%eax
524b83:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
524b87:	8b 55 f0             	mov    -0x10(%ebp),%edx
524b8a:	c7 04 88 33 00 00 00 	movl   $0x33,(%eax,%ecx,4)
524b91:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
524b95:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524b9c:	00
524b9d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524ba4:	00
524ba5:	8b 45 f0             	mov    -0x10(%ebp),%eax
524ba8:	3b 45 d4             	cmp    -0x2c(%ebp),%eax
524bab:	75 4c                	jne    0x524bf9
524bad:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524bb0:	39 4e 70             	cmp    %ecx,0x70(%esi)
524bb3:	7f 12                	jg     0x524bc7
524bb5:	6a 00                	push   $0x0
524bb7:	50                   	push   %eax
524bb8:	6a 00                	push   $0x0
524bba:	6a 0b                	push   $0xb
524bbc:	56                   	push   %esi
524bbd:	e8 3e 19 fe ff       	call   0x506500
524bc2:	83 c4 14             	add    $0x14,%esp
524bc5:	eb 32                	jmp    0x524bf9
524bc7:	8b 55 f0             	mov    -0x10(%ebp),%edx
524bca:	8d 41 01             	lea    0x1(%ecx),%eax
524bcd:	89 46 6c             	mov    %eax,0x6c(%esi)
524bd0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524bd3:	8b 46 68             	mov    0x68(%esi),%eax
524bd6:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
524bdd:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
524be4:	00
524be5:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
524be9:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524bf0:	00
524bf1:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524bf8:	00
524bf9:	8b 55 e4             	mov    -0x1c(%ebp),%edx
524bfc:	85 d2                	test   %edx,%edx
524bfe:	74 23                	je     0x524c23
524c00:	8b 4e 0c             	mov    0xc(%esi),%ecx
524c03:	f7 d2                	not    %edx
524c05:	8b 41 3c             	mov    0x3c(%ecx),%eax
524c08:	03 41 38             	add    0x38(%ecx),%eax
524c0b:	79 0d                	jns    0x524c1a
524c0d:	52                   	push   %edx
524c0e:	56                   	push   %esi
524c0f:	51                   	push   %ecx
524c10:	e8 8b eb fe ff       	call   0x5137a0
524c15:	83 c4 0c             	add    $0xc,%esp
524c18:	eb 09                	jmp    0x524c23
524c1a:	8b 49 40             	mov    0x40(%ecx),%ecx
524c1d:	8b 46 6c             	mov    0x6c(%esi),%eax
524c20:	89 04 91             	mov    %eax,(%ecx,%edx,4)
524c23:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524c26:	89 4d bc             	mov    %ecx,-0x44(%ebp)
524c29:	39 4e 70             	cmp    %ecx,0x70(%esi)
524c2c:	7f 1b                	jg     0x524c49
524c2e:	6a 00                	push   $0x0
524c30:	ff 75 f0             	push   -0x10(%ebp)
524c33:	ff 75 f4             	push   -0xc(%ebp)
524c36:	6a 25                	push   $0x25
524c38:	56                   	push   %esi
524c39:	e8 c2 18 fe ff       	call   0x506500
524c3e:	8b 55 f0             	mov    -0x10(%ebp),%edx
524c41:	83 c4 14             	add    $0x14,%esp
524c44:	89 45 bc             	mov    %eax,-0x44(%ebp)
524c47:	eb 31                	jmp    0x524c7a
524c49:	8b 55 f4             	mov    -0xc(%ebp),%edx
524c4c:	8d 41 01             	lea    0x1(%ecx),%eax
524c4f:	89 46 6c             	mov    %eax,0x6c(%esi)
524c52:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524c55:	8b 46 68             	mov    0x68(%esi),%eax
524c58:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
524c5c:	8b 55 f0             	mov    -0x10(%ebp),%edx
524c5f:	c7 04 88 25 00 00 00 	movl   $0x25,(%eax,%ecx,4)
524c66:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
524c6a:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524c71:	00
524c72:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524c79:	00
524c7a:	83 fb 01             	cmp    $0x1,%ebx
524c7d:	7e 0b                	jle    0x524c8a
524c7f:	ff 4f 38             	decl   0x38(%edi)
524c82:	8b 47 38             	mov    0x38(%edi),%eax
524c85:	89 45 dc             	mov    %eax,-0x24(%ebp)
524c88:	eb 03                	jmp    0x524c8d
524c8a:	89 55 dc             	mov    %edx,-0x24(%ebp)
524c8d:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
524c94:	85 db                	test   %ebx,%ebx
524c96:	0f 8e a9 01 00 00    	jle    0x524e45
524c9c:	33 db                	xor    %ebx,%ebx
524c9e:	89 5d d8             	mov    %ebx,-0x28(%ebp)
524ca1:	eb 03                	jmp    0x524ca6
524ca3:	8b 5d d8             	mov    -0x28(%ebp),%ebx
524ca6:	8a 47 13             	mov    0x13(%edi),%al
524ca9:	84 c0                	test   %al,%al
524cab:	75 0b                	jne    0x524cb8
524cad:	ff 47 2c             	incl   0x2c(%edi)
524cb0:	8b 4f 2c             	mov    0x2c(%edi),%ecx
524cb3:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
524cb6:	eb 12                	jmp    0x524cca
524cb8:	fe c8                	dec    %al
524cba:	88 47 13             	mov    %al,0x13(%edi)
524cbd:	0f b6 c0             	movzbl %al,%eax
524cc0:	8b 84 87 94 00 00 00 	mov    0x94(%edi,%eax,4),%eax
524cc7:	89 45 e4             	mov    %eax,-0x1c(%ebp)
524cca:	8b 4d cc             	mov    -0x34(%ebp),%ecx
524ccd:	8a 11                	mov    (%ecx),%dl
524ccf:	8a c2                	mov    %dl,%al
524cd1:	3c ad                	cmp    $0xad,%al
524cd3:	75 03                	jne    0x524cd8
524cd5:	8a 41 02             	mov    0x2(%ecx),%al
524cd8:	3c ae                	cmp    $0xae,%al
524cda:	75 07                	jne    0x524ce3
524cdc:	8b 49 14             	mov    0x14(%ecx),%ecx
524cdf:	8b 01                	mov    (%ecx),%eax
524ce1:	eb 0c                	jmp    0x524cef
524ce3:	3c 88                	cmp    $0x88,%al
524ce5:	75 2d                	jne    0x524d14
524ce7:	8b 49 14             	mov    0x14(%ecx),%ecx
524cea:	8b 41 1c             	mov    0x1c(%ecx),%eax
524ced:	8b 00                	mov    (%eax),%eax
524cef:	83 f8 01             	cmp    $0x1,%eax
524cf2:	7e 1d                	jle    0x524d11
524cf4:	80 fa 88             	cmp    $0x88,%dl
524cf7:	74 0f                	je     0x524d08
524cf9:	8b 45 cc             	mov    -0x34(%ebp),%eax
524cfc:	80 78 02 88          	cmpb   $0x88,0x2(%eax)
524d00:	74 06                	je     0x524d08
524d02:	8b 44 0b 04          	mov    0x4(%ebx,%ecx,1),%eax
524d06:	eb 0e                	jmp    0x524d16
524d08:	8b 41 1c             	mov    0x1c(%ecx),%eax
524d0b:	8b 44 18 04          	mov    0x4(%eax,%ebx,1),%eax
524d0f:	eb 05                	jmp    0x524d16
524d11:	8b 4d cc             	mov    -0x34(%ebp),%ecx
524d14:	8b c1                	mov    %ecx,%eax
524d16:	50                   	push   %eax
524d17:	57                   	push   %edi
524d18:	e8 c3 15 00 00       	call   0x5262e0
524d1d:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524d20:	83 c4 08             	add    $0x8,%esp
524d23:	8b d8                	mov    %eax,%ebx
524d25:	39 4e 70             	cmp    %ecx,0x70(%esi)
524d28:	7f 18                	jg     0x524d42
524d2a:	8b 55 e4             	mov    -0x1c(%ebp),%edx