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
524d2d:	52                   	push   %edx
524d2e:	8b 55 e0             	mov    -0x20(%ebp),%edx
524d31:	52                   	push   %edx
524d32:	ff 75 f4             	push   -0xc(%ebp)
524d35:	6a 59                	push   $0x59
524d37:	56                   	push   %esi
524d38:	e8 c3 17 fe ff       	call   0x506500
524d3d:	83 c4 14             	add    $0x14,%esp
524d40:	eb 30                	jmp    0x524d72
524d42:	8b 55 f4             	mov    -0xc(%ebp),%edx
524d45:	8d 41 01             	lea    0x1(%ecx),%eax
524d48:	89 46 6c             	mov    %eax,0x6c(%esi)
524d4b:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524d4e:	8b 46 68             	mov    0x68(%esi),%eax
524d51:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
524d55:	8b 55 e0             	mov    -0x20(%ebp),%edx
524d58:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
524d5c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
524d5f:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
524d66:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
524d6a:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524d71:	00
524d72:	8b 56 6c             	mov    0x6c(%esi),%edx
524d75:	39 56 70             	cmp    %edx,0x70(%esi)
524d78:	7f 1c                	jg     0x524d96
524d7a:	ff 75 e4             	push   -0x1c(%ebp)
524d7d:	8b 45 e0             	mov    -0x20(%ebp),%eax
524d80:	ff 75 dc             	push   -0x24(%ebp)
524d83:	03 45 ec             	add    -0x14(%ebp),%eax
524d86:	50                   	push   %eax
524d87:	6a 34                	push   $0x34
524d89:	56                   	push   %esi
524d8a:	e8 71 17 fe ff       	call   0x506500
524d8f:	83 c4 14             	add    $0x14,%esp
524d92:	8b d0                	mov    %eax,%edx
524d94:	eb 36                	jmp    0x524dcc
524d96:	8b 7d c4             	mov    -0x3c(%ebp),%edi
524d99:	8d 42 01             	lea    0x1(%edx),%eax
524d9c:	89 46 6c             	mov    %eax,0x6c(%esi)
524d9f:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524da2:	8b 46 68             	mov    0x68(%esi),%eax
524da5:	c7 04 88 34 00 00 00 	movl   $0x34,(%eax,%ecx,4)
524dac:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524db3:	00
524db4:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
524db7:	8b 45 e0             	mov    -0x20(%ebp),%eax
524dba:	03 45 ec             	add    -0x14(%ebp),%eax
524dbd:	89 41 04             	mov    %eax,0x4(%ecx)
524dc0:	8b 45 dc             	mov    -0x24(%ebp),%eax
524dc3:	89 41 08             	mov    %eax,0x8(%ecx)
524dc6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
524dc9:	89 41 0c             	mov    %eax,0xc(%ecx)
524dcc:	8b 06                	mov    (%esi),%eax
524dce:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
524dd2:	74 0e                	je     0x524de2
524dd4:	53                   	push   %ebx
524dd5:	6a fe                	push   $0xfffffffe
524dd7:	50                   	push   %eax
524dd8:	e8 d3 ee fd ff       	call   0x503cb0
524ddd:	83 c4 0c             	add    $0xc,%esp
524de0:	eb 32                	jmp    0x524e14
524de2:	85 d2                	test   %edx,%edx
524de4:	79 04                	jns    0x524dea
524de6:	8b 56 6c             	mov    0x6c(%esi),%edx
524de9:	4a                   	dec    %edx
524dea:	8b 46 68             	mov    0x68(%esi),%eax
524ded:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
524df0:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
524df5:	8d 04 88             	lea    (%eax,%ecx,4),%eax
524df8:	74 0f                	je     0x524e09
524dfa:	6a fe                	push   $0xfffffffe
524dfc:	53                   	push   %ebx
524dfd:	50                   	push   %eax
524dfe:	56                   	push   %esi
524dff:	e8 3c 4e 03 00       	call   0x559c40
524e04:	83 c4 10             	add    $0x10,%esp
524e07:	eb 0b                	jmp    0x524e14
524e09:	85 db                	test   %ebx,%ebx
524e0b:	74 07                	je     0x524e14
524e0d:	89 58 10             	mov    %ebx,0x10(%eax)
524e10:	c6 40 01 fe          	movb   $0xfe,0x1(%eax)
524e14:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
524e17:	85 c9                	test   %ecx,%ecx
524e19:	74 14                	je     0x524e2f
524e1b:	8a 47 13             	mov    0x13(%edi),%al
524e1e:	3c 08                	cmp    $0x8,%al
524e20:	73 0d                	jae    0x524e2f
524e22:	0f b6 c0             	movzbl %al,%eax
524e25:	89 8c 87 94 00 00 00 	mov    %ecx,0x94(%edi,%eax,4)
524e2c:	fe 47 13             	incb   0x13(%edi)
524e2f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
524e32:	83 45 d8 14          	addl   $0x14,-0x28(%ebp)
524e36:	41                   	inc    %ecx
524e37:	8b 5d e8             	mov    -0x18(%ebp),%ebx
524e3a:	89 4d e0             	mov    %ecx,-0x20(%ebp)
524e3d:	3b cb                	cmp    %ebx,%ecx
524e3f:	0f 8c 5e fe ff ff    	jl     0x524ca3
524e45:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524e48:	39 4e 70             	cmp    %ecx,0x70(%esi)
524e4b:	7f 14                	jg     0x524e61
524e4d:	6a 00                	push   $0x0
524e4f:	ff 75 d4             	push   -0x2c(%ebp)
524e52:	6a 00                	push   $0x0
524e54:	6a 0b                	push   $0xb
524e56:	56                   	push   %esi
524e57:	e8 a4 16 fe ff       	call   0x506500
524e5c:	83 c4 14             	add    $0x14,%esp
524e5f:	eb 32                	jmp    0x524e93
524e61:	8b 55 d4             	mov    -0x2c(%ebp),%edx
524e64:	8d 41 01             	lea    0x1(%ecx),%eax
524e67:	89 46 6c             	mov    %eax,0x6c(%esi)
524e6a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524e6d:	8b 46 68             	mov    0x68(%esi),%eax
524e70:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
524e77:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
524e7e:	00
524e7f:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
524e83:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524e8a:	00
524e8b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524e92:	00
524e93:	83 fb 01             	cmp    $0x1,%ebx
524e96:	0f 8e c1 00 00 00    	jle    0x524f5d
524e9c:	8b 4e 0c             	mov    0xc(%esi),%ecx
524e9f:	8b 55 dc             	mov    -0x24(%ebp),%edx
524ea2:	f7 d2                	not    %edx
524ea4:	8b 41 3c             	mov    0x3c(%ecx),%eax
524ea7:	03 41 38             	add    0x38(%ecx),%eax
524eaa:	79 0d                	jns    0x524eb9
524eac:	52                   	push   %edx
524ead:	56                   	push   %esi
524eae:	51                   	push   %ecx
524eaf:	e8 ec e8 fe ff       	call   0x5137a0
524eb4:	83 c4 0c             	add    $0xc,%esp
524eb7:	eb 09                	jmp    0x524ec2
524eb9:	8b 49 40             	mov    0x40(%ecx),%ecx
524ebc:	8b 46 6c             	mov    0x6c(%esi),%eax
524ebf:	89 04 91             	mov    %eax,(%ecx,%edx,4)
524ec2:	8b 55 bc             	mov    -0x44(%ebp),%edx
524ec5:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524ec8:	42                   	inc    %edx
524ec9:	39 4e 70             	cmp    %ecx,0x70(%esi)
524ecc:	7f 13                	jg     0x524ee1
524ece:	6a 00                	push   $0x0
524ed0:	52                   	push   %edx
524ed1:	ff 75 f4             	push   -0xc(%ebp)
524ed4:	6a 05                	push   $0x5
524ed6:	56                   	push   %esi
524ed7:	e8 24 16 fe ff       	call   0x506500
524edc:	83 c4 14             	add    $0x14,%esp
524edf:	eb 2e                	jmp    0x524f0f
524ee1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
524ee4:	8d 41 01             	lea    0x1(%ecx),%eax
524ee7:	89 46 6c             	mov    %eax,0x6c(%esi)
524eea:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
524eed:	8b 46 68             	mov    0x68(%esi),%eax
524ef0:	c7 04 88 05 00 00 00 	movl   $0x5,(%eax,%ecx,4)
524ef7:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
524efb:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
524eff:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
524f06:	00
524f07:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
524f0e:	00
524f0f:	8b 4e 6c             	mov    0x6c(%esi),%ecx
524f12:	39 4e 70             	cmp    %ecx,0x70(%esi)
524f15:	7f 14                	jg     0x524f2b
524f17:	6a 00                	push   $0x0
524f19:	ff 75 f0             	push   -0x10(%ebp)
524f1c:	6a 00                	push   $0x0
524f1e:	6a 0b                	push   $0xb
524f20:	56                   	push   %esi
524f21:	e8 da 15 fe ff       	call   0x506500
524f26:	83 c4 14             	add    $0x14,%esp
524f29:	eb 32                	jmp    0x524f5d
524f2b:	8b 55 f0             	mov    -0x10(%ebp),%edx