502a74:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
502a78:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
502a7f:	00
502a80:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
502a87:	00
502a88:	8b 56 6c             	mov    0x6c(%esi),%edx
502a8b:	8d 4a fe             	lea    -0x2(%edx),%ecx
502a8e:	85 c9                	test   %ecx,%ecx
502a90:	79 03                	jns    0x502a95
502a92:	8d 4a ff             	lea    -0x1(%edx),%ecx
502a95:	8b 06                	mov    (%esi),%eax
502a97:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
502a9b:	74 07                	je     0x502aa4
502a9d:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
502aa2:	eb 09                	jmp    0x502aad
502aa4:	8b 46 68             	mov    0x68(%esi),%eax
502aa7:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
502aaa:	8d 04 88             	lea    (%eax,%ecx,4),%eax
502aad:	8b 4d 08             	mov    0x8(%ebp),%ecx
502ab0:	89 50 08             	mov    %edx,0x8(%eax)
502ab3:	8b 56 6c             	mov    0x6c(%esi),%edx
502ab6:	85 c9                	test   %ecx,%ecx
502ab8:	79 03                	jns    0x502abd
502aba:	8d 4a ff             	lea    -0x1(%edx),%ecx
502abd:	8b 06                	mov    (%esi),%eax
502abf:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
502ac3:	74 0d                	je     0x502ad2
502ac5:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
502aca:	89 50 08             	mov    %edx,0x8(%eax)
502acd:	e9 3f 04 00 00       	jmp    0x502f11
502ad2:	8b 46 68             	mov    0x68(%esi),%eax
502ad5:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
502ad8:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
502adc:	8d 04 88             	lea    (%eax,%ecx,4),%eax
502adf:	e9 2d 04 00 00       	jmp    0x502f11
502ae4:	8b 79 14             	mov    0x14(%ecx),%edi
502ae7:	89 7d ec             	mov    %edi,-0x14(%ebp)
502aea:	83 ff 01             	cmp    $0x1,%edi
502aed:	75 26                	jne    0x502b15
502aef:	8a 43 13             	mov    0x13(%ebx),%al
502af2:	84 c0                	test   %al,%al
502af4:	75 0b                	jne    0x502b01
502af6:	ff 43 2c             	incl   0x2c(%ebx)
502af9:	8b 43 2c             	mov    0x2c(%ebx),%eax
502afc:	89 45 28             	mov    %eax,0x28(%ebp)
502aff:	eb 3f                	jmp    0x502b40
502b01:	fe c8                	dec    %al
502b03:	88 43 13             	mov    %al,0x13(%ebx)
502b06:	0f b6 c0             	movzbl %al,%eax
502b09:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
502b10:	89 45 28             	mov    %eax,0x28(%ebp)
502b13:	eb 2b                	jmp    0x502b40
502b15:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
502b18:	8b 53 20             	mov    0x20(%ebx),%edx
502b1b:	89 55 28             	mov    %edx,0x28(%ebp)
502b1e:	3b f9                	cmp    %ecx,%edi
502b20:	7f 0d                	jg     0x502b2f
502b22:	8d 04 3a             	lea    (%edx,%edi,1),%eax
502b25:	2b cf                	sub    %edi,%ecx
502b27:	89 43 20             	mov    %eax,0x20(%ebx)
502b2a:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
502b2d:	eb 0e                	jmp    0x502b3d
502b2f:	8b 43 2c             	mov    0x2c(%ebx),%eax
502b32:	8d 48 01             	lea    0x1(%eax),%ecx
502b35:	03 c7                	add    %edi,%eax
502b37:	89 4d 28             	mov    %ecx,0x28(%ebp)
502b3a:	89 43 2c             	mov    %eax,0x2c(%ebx)
502b3d:	8b 55 14             	mov    0x14(%ebp),%edx
502b40:	8a 43 13             	mov    0x13(%ebx),%al
502b43:	84 c0                	test   %al,%al
502b45:	75 08                	jne    0x502b4f
502b47:	ff 43 2c             	incl   0x2c(%ebx)
502b4a:	8b 43 2c             	mov    0x2c(%ebx),%eax
502b4d:	eb 0f                	jmp    0x502b5e
502b4f:	fe c8                	dec    %al
502b51:	88 43 13             	mov    %al,0x13(%ebx)
502b54:	0f b6 c0             	movzbl %al,%eax
502b57:	8b 84 83 94 00 00 00 	mov    0x94(%ebx,%eax,4),%eax
502b5e:	8b 4e 6c             	mov    0x6c(%esi),%ecx
502b61:	8b 52 2c             	mov    0x2c(%edx),%edx
502b64:	89 45 f4             	mov    %eax,-0xc(%ebp)
502b67:	39 4e 70             	cmp    %ecx,0x70(%esi)
502b6a:	7f 14                	jg     0x502b80
502b6c:	ff 75 0c             	push   0xc(%ebp)
502b6f:	52                   	push   %edx
502b70:	ff 75 f8             	push   -0x8(%ebp)
502b73:	6a 60                	push   $0x60
502b75:	56                   	push   %esi
502b76:	e8 85 39 00 00       	call   0x506500
502b7b:	83 c4 14             	add    $0x14,%esp
502b7e:	eb 2e                	jmp    0x502bae
502b80:	8d 41 01             	lea    0x1(%ecx),%eax
502b83:	89 46 6c             	mov    %eax,0x6c(%esi)
502b86:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
502b89:	8b 46 68             	mov    0x68(%esi),%eax
502b8c:	c7 04 88 60 00 00 00 	movl   $0x60,(%eax,%ecx,4)
502b93:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
502b97:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
502b9e:	00
502b9f:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
502ba2:	8b 45 f8             	mov    -0x8(%ebp),%eax
502ba5:	89 41 04             	mov    %eax,0x4(%ecx)
502ba8:	8b 45 0c             	mov    0xc(%ebp),%eax
502bab:	89 41 0c             	mov    %eax,0xc(%ecx)
502bae:	ff 75 14             	push   0x14(%ebp)
502bb1:	8b 43 08             	mov    0x8(%ebx),%eax
502bb4:	53                   	push   %ebx
502bb5:	89 45 f0             	mov    %eax,-0x10(%ebp)
502bb8:	e8 43 d1 02 00       	call   0x52fd00
502bbd:	8b d0                	mov    %eax,%edx
502bbf:	83 c4 08             	add    $0x8,%esp
502bc2:	85 d2                	test   %edx,%edx
502bc4:	74 2e                	je     0x502bf4
502bc6:	8b 45 f0             	mov    -0x10(%ebp),%eax
502bc9:	8b 08                	mov    (%eax),%ecx
502bcb:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
502bcf:	74 0e                	je     0x502bdf
502bd1:	52                   	push   %edx
502bd2:	6a f7                	push   $0xfffffff7
502bd4:	51                   	push   %ecx
502bd5:	e8 d6 10 00 00       	call   0x503cb0
502bda:	83 c4 0c             	add    $0xc,%esp
502bdd:	eb 15                	jmp    0x502bf4
502bdf:	8b 40 6c             	mov    0x6c(%eax),%eax
502be2:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
502be5:	8b 45 f0             	mov    -0x10(%ebp),%eax
502be8:	8b 40 68             	mov    0x68(%eax),%eax
502beb:	c6 44 88 ed f7       	movb   $0xf7,-0x13(%eax,%ecx,4)
502bf0:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
502bf4:	85 ff                	test   %edi,%edi
502bf6:	7e 7f                	jle    0x502c77
502bf8:	8b 45 28             	mov    0x28(%ebp),%eax
502bfb:	33 db                	xor    %ebx,%ebx
502bfd:	89 45 f0             	mov    %eax,-0x10(%ebp)
502c00:	8b 45 1c             	mov    0x1c(%ebp),%eax
502c03:	0f b7 04 98          	movzwl (%eax,%ebx,4),%eax
502c07:	50                   	push   %eax
502c08:	8b 45 18             	mov    0x18(%ebp),%eax
502c0b:	ff 30                	push   (%eax)
502c0d:	e8 3e b2 03 00       	call   0x53de50
502c12:	8b 4d 20             	mov    0x20(%ebp),%ecx
502c15:	83 c4 08             	add    $0x8,%esp
502c18:	41                   	inc    %ecx
502c19:	98                   	cwtl
502c1a:	03 c1                	add    %ecx,%eax
502c1c:	8b 4e 6c             	mov    0x6c(%esi),%ecx
502c1f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502c22:	39 4e 70             	cmp    %ecx,0x70(%esi)
502c25:	7f 14                	jg     0x502c3b
502c27:	8b 55 f0             	mov    -0x10(%ebp),%edx
502c2a:	6a 00                	push   $0x0
502c2c:	52                   	push   %edx
502c2d:	50                   	push   %eax
502c2e:	6a 4d                	push   $0x4d
502c30:	56                   	push   %esi
502c31:	e8 ca 38 00 00       	call   0x506500
502c36:	83 c4 14             	add    $0x14,%esp
502c39:	eb 31                	jmp    0x502c6c
502c3b:	8b 55 e4             	mov    -0x1c(%ebp),%edx
502c3e:	8d 41 01             	lea    0x1(%ecx),%eax
502c41:	89 46 6c             	mov    %eax,0x6c(%esi)
502c44:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
502c47:	8b 46 68             	mov    0x68(%esi),%eax
502c4a:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
502c4e:	8b 55 f0             	mov    -0x10(%ebp),%edx
502c51:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
502c58:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
502c5c:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
502c63:	00
502c64:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
502c6b:	00
502c6c:	ff 45 f0             	incl   -0x10(%ebp)
502c6f:	43                   	inc    %ebx
502c70:	3b df                	cmp    %edi,%ebx
502c72:	7c 8c                	jl     0x502c00
502c74:	8b 5d 08             	mov    0x8(%ebp),%ebx
502c77:	8b 45 18             	mov    0x18(%ebp),%eax
502c7a:	8b 4d 10             	mov    0x10(%ebp),%ecx
502c7d:	3b 08                	cmp    (%eax),%ecx
502c7f:	0f 85 29 01 00 00    	jne    0x502dae
502c85:	83 7d 24 01          	cmpl   $0x1,0x24(%ebp)
502c89:	0f 85 1f 01 00 00    	jne    0x502dae
502c8f:	8b 46 6c             	mov    0x6c(%esi),%eax
502c92:	40                   	inc    %eax
502c93:	03 c7                	add    %edi,%eax
502c95:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502c98:	33 c0                	xor    %eax,%eax
502c9a:	89 45 f0             	mov    %eax,-0x10(%ebp)
502c9d:	85 ff                	test   %edi,%edi
502c9f:	0f 8e bb 00 00 00    	jle    0x502d60
502ca5:	8b 5d 18             	mov    0x18(%ebp),%ebx
502ca8:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
502cab:	0f b7 04 81          	movzwl (%ecx,%eax,4),%eax
502caf:	50                   	push   %eax
502cb0:	ff 33                	push   (%ebx)
502cb2:	e8 99 b1 03 00       	call   0x53de50
502cb7:	8b 4d 20             	mov    0x20(%ebp),%ecx
502cba:	8b 55 14             	mov    0x14(%ebp),%edx
502cbd:	41                   	inc    %ecx
502cbe:	98                   	cwtl
502cbf:	03 c1                	add    %ecx,%eax
502cc1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
502cc4:	89 45 e8             	mov    %eax,-0x18(%ebp)
502cc7:	8b 42 04             	mov    0x4(%edx),%eax
502cca:	0f b7 3c 48          	movzwl (%eax,%ecx,2),%edi
502cce:	57                   	push   %edi
502ccf:	ff 72 0c             	push   0xc(%edx)
502cd2:	e8 79 b1 03 00       	call   0x53de50
502cd7:	8b 4d 20             	mov    0x20(%ebp),%ecx
502cda:	83 c4 10             	add    $0x10,%esp
502cdd:	98                   	cwtl
502cde:	8d 51 01             	lea    0x1(%ecx),%edx
502ce1:	03 d0                	add    %eax,%edx
502ce3:	8b 45 10             	mov    0x10(%ebp),%eax
502ce6:	66 3b 78 28          	cmp    0x28(%eax),%di
502cea:	8b 7d e8             	mov    -0x18(%ebp),%edi
502ced:	0f 44 d1             	cmove  %ecx,%edx
502cf0:	8b 4e 6c             	mov    0x6c(%esi),%ecx
502cf3:	39 4e 70             	cmp    %ecx,0x70(%esi)
502cf6:	7f 12                	jg     0x502d0a
502cf8:	52                   	push   %edx
502cf9:	ff 75 e4             	push   -0x1c(%ebp)
502cfc:	57                   	push   %edi
502cfd:	6a 34                	push   $0x34
502cff:	56                   	push   %esi
502d00:	e8 fb 37 00 00       	call   0x506500
502d05:	83 c4 14             	add    $0x14,%esp
502d08:	eb 2a                	jmp    0x502d34
502d0a:	8d 41 01             	lea    0x1(%ecx),%eax
502d0d:	89 46 6c             	mov    %eax,0x6c(%esi)
502d10:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
502d13:	8b 46 68             	mov    0x68(%esi),%eax
502d16:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
502d1a:	8b 7d e4             	mov    -0x1c(%ebp),%edi
502d1d:	c7 04 88 34 00 00 00 	movl   $0x34,(%eax,%ecx,4)
502d24:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
502d28:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
502d2c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
502d33:	00
502d34:	8b 46 6c             	mov    0x6c(%esi),%eax
502d37:	85 c0                	test   %eax,%eax
502d39:	7e 10                	jle    0x502d4b
502d3b:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
502d3e:	ba 10 00 00 00       	mov    $0x10,%edx
502d43:	8b 46 68             	mov    0x68(%esi),%eax
502d46:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
502d4b:	8b 45 f0             	mov    -0x10(%ebp),%eax
502d4e:	8b 7d ec             	mov    -0x14(%ebp),%edi
502d51:	40                   	inc    %eax
502d52:	89 45 f0             	mov    %eax,-0x10(%ebp)
502d55:	3b c7                	cmp    %edi,%eax
502d57:	0f 8c 4b ff ff ff    	jl     0x502ca8
502d5d:	8b 5d 08             	mov    0x8(%ebp),%ebx
502d60:	8b 4e 6c             	mov    0x6c(%esi),%ecx
502d63:	39 4e 70             	cmp    %ecx,0x70(%esi)
502d66:	7f 14                	jg     0x502d7c
502d68:	6a 00                	push   $0x0
502d6a:	ff 75 fc             	push   -0x4(%ebp)
502d6d:	6a 00                	push   $0x0
502d6f:	6a 0b                	push   $0xb
502d71:	56                   	push   %esi
502d72:	e8 89 37 00 00       	call   0x506500
502d77:	83 c4 14             	add    $0x14,%esp
502d7a:	eb 32                	jmp    0x502dae
502d7c:	8b 55 fc             	mov    -0x4(%ebp),%edx
502d7f:	8d 41 01             	lea    0x1(%ecx),%eax
502d82:	89 46 6c             	mov    %eax,0x6c(%esi)
502d85:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
502d88:	8b 46 68             	mov    0x68(%esi),%eax
502d8b:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
502d92:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
502d99:	00
502d9a:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
502d9e:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
502da5:	00
502da6:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
502dad:	00
502dae:	ff 75 14             	push   0x14(%ebp)
502db1:	ff 33                	push   (%ebx)
502db3:	e8 18 b2 02 00       	call   0x52dfd0
502db8:	89 45 f0             	mov    %eax,-0x10(%ebp)
502dbb:	83 c4 08             	add    $0x8,%esp
502dbe:	8b 46 6c             	mov    0x6c(%esi),%eax
502dc1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
502dc4:	39 46 70             	cmp    %eax,0x70(%esi)
502dc7:	7f 19                	jg     0x502de2
502dc9:	ff 75 f4             	push   -0xc(%ebp)
502dcc:	57                   	push   %edi
502dcd:	ff 75 28             	push   0x28(%ebp)
502dd0:	6a 5b                	push   $0x5b
502dd2:	56                   	push   %esi
502dd3:	e8 28 37 00 00       	call   0x506500
502dd8:	8b 55 ec             	mov    -0x14(%ebp),%edx
502ddb:	83 c4 14             	add    $0x14,%esp
502dde:	8b f8                	mov    %eax,%edi
502de0:	eb 36                	jmp    0x502e18
502de2:	8b 7d e4             	mov    -0x1c(%ebp),%edi
502de5:	8b 55 28             	mov    0x28(%ebp),%edx
502de8:	8b 5d f4             	mov    -0xc(%ebp),%ebx
502deb:	8d 47 01             	lea    0x1(%edi),%eax
502dee:	89 46 6c             	mov    %eax,0x6c(%esi)
502df1:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
502df4:	8b 46 68             	mov    0x68(%esi),%eax
502df7:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
502dfb:	8b 55 ec             	mov    -0x14(%ebp),%edx
502dfe:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
502e02:	8b 5d 08             	mov    0x8(%ebp),%ebx
502e05:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
502e0c:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
502e10:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
502e17:	00
502e18:	8b 0e                	mov    (%esi),%ecx
502e1a:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
502e1e:	74 15                	je     0x502e35
502e20:	83 fa f4             	cmp    $0xfffffff4,%edx
502e23:	74 5e                	je     0x502e83
502e25:	8b 45 f0             	mov    -0x10(%ebp),%eax
502e28:	50                   	push   %eax
502e29:	52                   	push   %edx
502e2a:	51                   	push   %ecx
502e2b:	e8 80 0e 00 00       	call   0x503cb0
502e30:	83 c4 0c             	add    $0xc,%esp
502e33:	eb 4e                	jmp    0x502e83
502e35:	85 ff                	test   %edi,%edi
502e37:	79 04                	jns    0x502e3d
502e39:	8b 7e 6c             	mov    0x6c(%esi),%edi
502e3c:	4f                   	dec    %edi
502e3d:	8b 46 68             	mov    0x68(%esi),%eax
502e40:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
502e43:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
502e46:	85 d2                	test   %edx,%edx
502e48:	79 2a                	jns    0x502e74
502e4a:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
502e4e:	75 24                	jne    0x502e74
502e50:	8b 45 f0             	mov    -0x10(%ebp),%eax
502e53:	83 fa fd             	cmp    $0xfffffffd,%edx
502e56:	75 08                	jne    0x502e60
502e58:	89 41 10             	mov    %eax,0x10(%ecx)
502e5b:	88 51 01             	mov    %dl,0x1(%ecx)
502e5e:	eb 23                	jmp    0x502e83
502e60:	85 c0                	test   %eax,%eax
502e62:	74 1f                	je     0x502e83
502e64:	89 41 10             	mov    %eax,0x10(%ecx)
502e67:	88 51 01             	mov    %dl,0x1(%ecx)
502e6a:	83 fa f4             	cmp    $0xfffffff4,%edx
502e6d:	75 14                	jne    0x502e83
502e6f:	ff 40 0c             	incl   0xc(%eax)
502e72:	eb 0f                	jmp    0x502e83
502e74:	8b 45 f0             	mov    -0x10(%ebp),%eax
502e77:	52                   	push   %edx