508b50:	8b 5b 78             	mov    0x78(%ebx),%ebx
508b53:	89 5d ec             	mov    %ebx,-0x14(%ebp)
508b56:	8b 45 18             	mov    0x18(%ebp),%eax
508b59:	f7 40 18 00 02 00 00 	testl  $0x200,0x18(%eax)
508b60:	74 3b                	je     0x508b9d
508b62:	8b 78 08             	mov    0x8(%eax),%edi
508b65:	85 ff                	test   %edi,%edi
508b67:	74 34                	je     0x508b9d
508b69:	8b 75 10             	mov    0x10(%ebp),%esi
508b6c:	ba 24 8c 6b 00       	mov    $0x6b8c24,%edx
508b71:	2b f2                	sub    %edx,%esi
508b73:	0f b6 0a             	movzbl (%edx),%ecx
508b76:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508b7a:	3b c8                	cmp    %eax,%ecx
508b7c:	0f 85 96 00 00 00    	jne    0x508c18
508b82:	85 c9                	test   %ecx,%ecx
508b84:	0f 85 a4 00 00 00    	jne    0x508c2e
508b8a:	8b 47 14             	mov    0x14(%edi),%eax
508b8d:	8b 58 18             	mov    0x18(%eax),%ebx
508b90:	8b 45 1c             	mov    0x1c(%ebp),%eax
508b93:	89 5d ec             	mov    %ebx,-0x14(%ebp)
508b96:	c7 40 1c 02 00 00 00 	movl   $0x2,0x1c(%eax)
508b9d:	85 db                	test   %ebx,%ebx
508b9f:	0f 84 d4 01 00 00    	je     0x508d79
508ba5:	8b 43 48             	mov    0x48(%ebx),%eax
508ba8:	be 01 00 00 00       	mov    $0x1,%esi
508bad:	0f bf 4b 2a          	movswl 0x2a(%ebx),%ecx
508bb1:	33 ff                	xor    %edi,%edi
508bb3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
508bb6:	8b 43 04             	mov    0x4(%ebx),%eax
508bb9:	89 75 f0             	mov    %esi,-0x10(%ebp)
508bbc:	89 45 d0             	mov    %eax,-0x30(%ebp)
508bbf:	89 4d e0             	mov    %ecx,-0x20(%ebp)
508bc2:	85 c9                	test   %ecx,%ecx
508bc4:	0f 8e 9a 00 00 00    	jle    0x508c64
508bca:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
508bd0:	8b 5d 14             	mov    0x14(%ebp),%ebx
508bd3:	8b 10                	mov    (%eax),%edx
508bd5:	2b da                	sub    %edx,%ebx
508bd7:	0f b6 02             	movzbl (%edx),%eax
508bda:	0f b6 34 13          	movzbl (%ebx,%edx,1),%esi
508bde:	3b c6                	cmp    %esi,%eax
508be0:	75 52                	jne    0x508c34
508be2:	85 c0                	test   %eax,%eax
508be4:	75 60                	jne    0x508c46
508be6:	8b 5d ec             	mov    -0x14(%ebp),%ebx
508be9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
508bec:	0f bf 43 28          	movswl 0x28(%ebx),%eax
508bf0:	3b f8                	cmp    %eax,%edi
508bf2:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
508bf7:	0f 44 f8             	cmove  %eax,%edi
508bfa:	eb 65                	jmp    0x508c61
508bfc:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508c03:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508c0a:	2b c8                	sub    %eax,%ecx
508c0c:	0f 85 44 ff ff ff    	jne    0x508b56
508c12:	42                   	inc    %edx
508c13:	e9 18 ff ff ff       	jmp    0x508b30
508c18:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508c1f:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508c26:	2b c8                	sub    %eax,%ecx
508c28:	0f 85 6f ff ff ff    	jne    0x508b9d
508c2e:	42                   	inc    %edx
508c2f:	e9 3f ff ff ff       	jmp    0x508b73
508c34:	0f b6 88 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%ecx
508c3b:	0f b6 86 20 2a 6b 00 	movzbl 0x6b2a20(%esi),%eax
508c42:	2b c8                	sub    %eax,%ecx
508c44:	75 03                	jne    0x508c49
508c46:	42                   	inc    %edx
508c47:	eb 8e                	jmp    0x508bd7
508c49:	8b 45 d0             	mov    -0x30(%ebp),%eax
508c4c:	47                   	inc    %edi
508c4d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
508c50:	83 c0 14             	add    $0x14,%eax
508c53:	89 45 d0             	mov    %eax,-0x30(%ebp)
508c56:	3b f9                	cmp    %ecx,%edi
508c58:	0f 8c 72 ff ff ff    	jl     0x508bd0
508c5e:	8b 5d ec             	mov    -0x14(%ebp),%ebx
508c61:	8b 75 f0             	mov    -0x10(%ebp),%esi
508c64:	3b f9                	cmp    %ecx,%edi
508c66:	7c 29                	jl     0x508c91
508c68:	ff 75 14             	push   0x14(%ebp)
508c6b:	e8 60 6d 02 00       	call   0x52f9d0
508c70:	8b 4d e0             	mov    -0x20(%ebp),%ecx
508c73:	83 c4 04             	add    $0x4,%esp
508c76:	85 c0                	test   %eax,%eax
508c78:	74 0f                	je     0x508c89
508c7a:	f7 43 24 00 02 00 00 	testl  $0x200,0x24(%ebx)
508c81:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
508c86:	0f 44 f8             	cmove  %eax,%edi
508c89:	3b f9                	cmp    %ecx,%edi
508c8b:	0f 8d eb 00 00 00    	jge    0x508d7c
508c91:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
508c94:	ff 45 f4             	incl   -0xc(%ebp)
508c97:	8b 41 1c             	mov    0x1c(%ecx),%eax
508c9a:	83 f8 02             	cmp    $0x2,%eax
508c9d:	75 46                	jne    0x508ce5
508c9f:	8b 45 08             	mov    0x8(%ebp),%eax
508ca2:	8b 55 18             	mov    0x18(%ebp),%edx
508ca5:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
508cac:	72 16                	jb     0x508cc4
508cae:	66 89 79 20          	mov    %di,0x20(%ecx)
508cb2:	8b 7d fc             	mov    -0x4(%ebp),%edi
508cb5:	89 59 2c             	mov    %ebx,0x2c(%ecx)
508cb8:	c7 45 dc a4 00 00 00 	movl   $0xa4,-0x24(%ebp)
508cbf:	e9 be 00 00 00       	jmp    0x508d82
508cc4:	8b 42 08             	mov    0x8(%edx),%eax
508cc7:	c7 45 dc ad 00 00 00 	movl   $0xad,-0x24(%ebp)
508cce:	8b 40 18             	mov    0x18(%eax),%eax
508cd1:	03 c7                	add    %edi,%eax
508cd3:	81 49 04 00 00 40 00 	orl    $0x400000,0x4(%ecx)
508cda:	8b 7d fc             	mov    -0x4(%ebp),%edi
508cdd:	89 41 1c             	mov    %eax,0x1c(%ecx)
508ce0:	e9 9d 00 00 00       	jmp    0x508d82
508ce5:	85 ff                	test   %edi,%edi
508ce7:	79 17                	jns    0x508d00
508ce9:	c6 41 01 44          	movb   $0x44,0x1(%ecx)
508ced:	89 59 2c             	mov    %ebx,0x2c(%ecx)
508cf0:	66 89 79 20          	mov    %di,0x20(%ecx)
508cf4:	c7 45 dc 4d 00 00 00 	movl   $0x4d,-0x24(%ebp)
508cfb:	e9 7c 00 00 00       	jmp    0x508d7c
508d00:	85 c0                	test   %eax,%eax
508d02:	75 46                	jne    0x508d4a
508d04:	83 ff 20             	cmp    $0x20,%edi
508d07:	7c 1c                	jl     0x508d25
508d09:	8b 55 08             	mov    0x8(%ebp),%edx
508d0c:	83 c8 ff             	or     $0xffffffff,%eax
508d0f:	c7 45 dc 4d 00 00 00 	movl   $0x4d,-0x24(%ebp)
508d16:	09 82 88 00 00 00    	or     %eax,0x88(%edx)
508d1c:	89 59 2c             	mov    %ebx,0x2c(%ecx)
508d1f:	66 89 79 20          	mov    %di,0x20(%ecx)
508d23:	eb 57                	jmp    0x508d7c
508d25:	8b 55 08             	mov    0x8(%ebp),%edx
508d28:	8b cf                	mov    %edi,%ecx
508d2a:	b8 01 00 00 00       	mov    $0x1,%eax
508d2f:	c7 45 dc 4d 00 00 00 	movl   $0x4d,-0x24(%ebp)
508d36:	d3 e0                	shl    %cl,%eax
508d38:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
508d3b:	09 82 88 00 00 00    	or     %eax,0x88(%edx)
508d41:	89 59 2c             	mov    %ebx,0x2c(%ecx)
508d44:	66 89 79 20          	mov    %di,0x20(%ecx)
508d48:	eb 32                	jmp    0x508d7c
508d4a:	83 ff 20             	cmp    $0x20,%edi
508d4d:	7c 05                	jl     0x508d54
508d4f:	83 c8 ff             	or     $0xffffffff,%eax
508d52:	eb 0c                	jmp    0x508d60
508d54:	8b cf                	mov    %edi,%ecx
508d56:	b8 01 00 00 00       	mov    $0x1,%eax
508d5b:	d3 e0                	shl    %cl,%eax
508d5d:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
508d60:	8b 55 08             	mov    0x8(%ebp),%edx
508d63:	c7 45 dc 4d 00 00 00 	movl   $0x4d,-0x24(%ebp)
508d6a:	09 82 8c 00 00 00    	or     %eax,0x8c(%edx)
508d70:	89 59 2c             	mov    %ebx,0x2c(%ecx)
508d73:	66 89 79 20          	mov    %di,0x20(%ecx)
508d77:	eb 03                	jmp    0x508d7c
508d79:	8b 75 f0             	mov    -0x10(%ebp),%esi
508d7c:	8b 7d fc             	mov    -0x4(%ebp),%edi
508d7f:	8b 55 18             	mov    0x18(%ebp),%edx
508d82:	8b 5d f4             	mov    -0xc(%ebp),%ebx
508d85:	85 db                	test   %ebx,%ebx
508d87:	75 43                	jne    0x508dcc
508d89:	83 fe 01             	cmp    $0x1,%esi
508d8c:	8b 75 14             	mov    0x14(%ebp),%esi
508d8f:	75 3e                	jne    0x508dcf
508d91:	85 ff                	test   %edi,%edi
508d93:	74 3a                	je     0x508dcf
508d95:	f6 42 18 28          	testb  $0x28,0x18(%edx)
508d99:	75 34                	jne    0x508dcf
508d9b:	56                   	push   %esi
508d9c:	e8 2f 6c 02 00       	call   0x52f9d0
508da1:	83 c4 04             	add    $0x4,%esp
508da4:	85 c0                	test   %eax,%eax
508da6:	74 27                	je     0x508dcf
508da8:	8b 47 10             	mov    0x10(%edi),%eax
508dab:	f7 40 24 00 02 00 00 	testl  $0x200,0x24(%eax)
508db2:	75 1b                	jne    0x508dcf
508db4:	8b 45 1c             	mov    0x1c(%ebp),%eax
508db7:	bb 01 00 00 00       	mov    $0x1,%ebx
508dbc:	83 c9 ff             	or     $0xffffffff,%ecx
508dbf:	89 5d f4             	mov    %ebx,-0xc(%ebp)
508dc2:	66 89 48 20          	mov    %cx,0x20(%eax)
508dc6:	c6 40 01 44          	movb   $0x44,0x1(%eax)
508dca:	eb 03                	jmp    0x508dcf
508dcc:	8b 75 14             	mov    0x14(%ebp),%esi
508dcf:	8b 7d 18             	mov    0x18(%ebp),%edi
508dd2:	f6 47 18 80          	testb  $0x80,0x18(%edi)
508dd6:	0f 84 8b 00 00 00    	je     0x508e67
508ddc:	85 db                	test   %ebx,%ebx
508dde:	0f 85 bc 02 00 00    	jne    0x5090a0
508de4:	8b 4d 10             	mov    0x10(%ebp),%ecx
508de7:	85 c9                	test   %ecx,%ecx
508de9:	0f 85 83 00 00 00    	jne    0x508e72
508def:	8b 4f 08             	mov    0x8(%edi),%ecx
508df2:	33 d2                	xor    %edx,%edx
508df4:	89 55 d0             	mov    %edx,-0x30(%ebp)
508df7:	8b 01                	mov    (%ecx),%eax
508df9:	89 45 cc             	mov    %eax,-0x34(%ebp)
508dfc:	85 c0                	test   %eax,%eax
508dfe:	0f 8e 6b 00 00 00    	jle    0x508e6f
508e04:	8d 59 10             	lea    0x10(%ecx),%ebx
508e07:	f6 03 03             	testb  $0x3,(%ebx)
508e0a:	8b 7b f8             	mov    -0x8(%ebx),%edi
508e0d:	75 30                	jne    0x508e3f
508e0f:	85 ff                	test   %edi,%edi
508e11:	75 08                	jne    0x508e1b
508e13:	8b ce                	mov    %esi,%ecx
508e15:	f7 d9                	neg    %ecx
508e17:	1b c9                	sbb    %ecx,%ecx
508e19:	eb 20                	jmp    0x508e3b
508e1b:	85 f6                	test   %esi,%esi
508e1d:	74 20                	je     0x508e3f
508e1f:	8b d7                	mov    %edi,%edx
508e21:	2b f7                	sub    %edi,%esi
508e23:	0f b6 0a             	movzbl (%edx),%ecx
508e26:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508e2a:	3b c8                	cmp    %eax,%ecx
508e2c:	75 24                	jne    0x508e52
508e2e:	85 c9                	test   %ecx,%ecx
508e30:	75 32                	jne    0x508e64
508e32:	8b 55 d0             	mov    -0x30(%ebp),%edx
508e35:	8b 45 cc             	mov    -0x34(%ebp),%eax
508e38:	8b 75 14             	mov    0x14(%ebp),%esi
508e3b:	85 c9                	test   %ecx,%ecx
508e3d:	74 52                	je     0x508e91
508e3f:	42                   	inc    %edx
508e40:	83 c3 14             	add    $0x14,%ebx
508e43:	89 55 d0             	mov    %edx,-0x30(%ebp)
508e46:	3b d0                	cmp    %eax,%edx
508e48:	7c bd                	jl     0x508e07
508e4a:	8b 5d f4             	mov    -0xc(%ebp),%ebx
508e4d:	8b 7d 18             	mov    0x18(%ebp),%edi
508e50:	eb 1d                	jmp    0x508e6f
508e52:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508e59:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508e60:	2b c8                	sub    %eax,%ecx
508e62:	75 ce                	jne    0x508e32
508e64:	42                   	inc    %edx
508e65:	eb bc                	jmp    0x508e23
508e67:	85 db                	test   %ebx,%ebx
508e69:	0f 85 31 02 00 00    	jne    0x5090a0
508e6f:	8b 4d 10             	mov    0x10(%ebp),%ecx
508e72:	8b 7f 0c             	mov    0xc(%edi),%edi
508e75:	ff 45 d4             	incl   -0x2c(%ebp)
508e78:	89 7d 18             	mov    %edi,0x18(%ebp)
508e7b:	85 ff                	test   %edi,%edi
508e7d:	0f 84 f9 00 00 00    	je     0x508f7c
508e83:	8b 55 1c             	mov    0x1c(%ebp),%edx
508e86:	8b 7d fc             	mov    -0x4(%ebp),%edi
508e89:	8b 45 18             	mov    0x18(%ebp),%eax
508e8c:	e9 70 f9 ff ff       	jmp    0x508801
508e91:	8b 5d 18             	mov    0x18(%ebp),%ebx
508e94:	8d 04 92             	lea    (%edx,%edx,4),%eax
508e97:	8b 73 08             	mov    0x8(%ebx),%esi
508e9a:	8b 4b 18             	mov    0x18(%ebx),%ecx
508e9d:	8b 44 86 04          	mov    0x4(%esi,%eax,4),%eax
508ea1:	f6 c1 01             	test   $0x1,%cl
508ea4:	75 23                	jne    0x508ec9
508ea6:	f6 40 04 10          	testb  $0x10,0x4(%eax)
508eaa:	74 1d                	je     0x508ec9
508eac:	57                   	push   %edi
508ead:	68 30 8c 6b 00       	push   $0x6b8c30
508eb2:	ff 75 08             	push   0x8(%ebp)
508eb5:	e8 a6 a3 01 00       	call   0x523260
508eba:	83 c4 0c             	add    $0xc,%esp
508ebd:	5f                   	pop    %edi
508ebe:	5e                   	pop    %esi
508ebf:	b8 02 00 00 00       	mov    $0x2,%eax
508ec4:	5b                   	pop    %ebx
508ec5:	8b e5                	mov    %ebp,%esp
508ec7:	5d                   	pop    %ebp
508ec8:	c3                   	ret
508ec9:	f7 40 04 00 80 00 00 	testl  $0x8000,0x4(%eax)
508ed0:	74 17                	je     0x508ee9
508ed2:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
508ed8:	74 07                	je     0x508ee1
508eda:	8b 4d d8             	mov    -0x28(%ebp),%ecx
508edd:	3b d9                	cmp    %ecx,%ebx
508edf:	74 08                	je     0x508ee9
508ee1:	57                   	push   %edi
508ee2:	68 50 8c 6b 00       	push   $0x6b8c50
508ee7:	eb c9                	jmp    0x508eb2
508ee9:	8a 08                	mov    (%eax),%cl
508eeb:	80 f9 ad             	cmp    $0xad,%cl
508eee:	75 03                	jne    0x508ef3
508ef0:	8a 48 02             	mov    0x2(%eax),%cl
508ef3:	80 f9 ae             	cmp    $0xae,%cl
508ef6:	75 05                	jne    0x508efd
508ef8:	8b 40 14             	mov    0x14(%eax),%eax
508efb:	eb 0b                	jmp    0x508f08
508efd:	80 f9 88             	cmp    $0x88,%cl
508f00:	75 29                	jne    0x508f2b
508f02:	8b 40 14             	mov    0x14(%eax),%eax
508f05:	8b 40 1c             	mov    0x1c(%eax),%eax
508f08:	8b 00                	mov    (%eax),%eax
508f0a:	83 f8 01             	cmp    $0x1,%eax
508f0d:	74 1c                	je     0x508f2b
508f0f:	68 78 8c 6b 00       	push   $0x6b8c78
508f14:	ff 75 08             	push   0x8(%ebp)
508f17:	e8 44 a3 01 00       	call   0x523260
508f1c:	83 c4 08             	add    $0x8,%esp
508f1f:	b8 02 00 00 00       	mov    $0x2,%eax
508f24:	5f                   	pop    %edi
508f25:	5e                   	pop    %esi
508f26:	5b                   	pop    %ebx
508f27:	8b e5                	mov    %ebp,%esp
508f29:	5d                   	pop    %ebp
508f2a:	c3                   	ret
508f2b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
508f2e:	8b 7d 1c             	mov    0x1c(%ebp),%edi
508f31:	8b 5d 08             	mov    0x8(%ebp),%ebx
508f34:	50                   	push   %eax
508f35:	68 ad 57 6e 00       	push   $0x6e57ad
508f3a:	57                   	push   %edi
508f3b:	52                   	push   %edx
508f3c:	56                   	push   %esi
508f3d:	53                   	push   %ebx
508f3e:	e8 cd a8 00 00       	call   0x513810
508f43:	83 c4 18             	add    $0x18,%esp
508f46:	80 bb c8 00 00 00 02 	cmpb   $0x2,0xc8(%ebx)
508f4d:	0f 82 ae 02 00 00    	jb     0x509201
508f53:	8b 83 10 01 00 00    	mov    0x110(%ebx),%eax
508f59:	85 c0                	test   %eax,%eax
508f5b:	0f 84 a0 02 00 00    	je     0x509201
508f61:	39 38                	cmp    %edi,(%eax)
508f63:	74 0c                	je     0x508f71
508f65:	8b 40 0c             	mov    0xc(%eax),%eax
508f68:	85 c0                	test   %eax,%eax
508f6a:	75 f5                	jne    0x508f61
508f6c:	e9 90 02 00 00       	jmp    0x509201
508f71:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
508f77:	e9 85 02 00 00       	jmp    0x509201
508f7c:	85 c9                	test   %ecx,%ecx
508f7e:	0f 85 2a 01 00 00    	jne    0x5090ae
508f84:	8b 7d 1c             	mov    0x1c(%ebp),%edi
508f87:	8b 5f 04             	mov    0x4(%edi),%ebx
508f8a:	f6 c3 40             	test   $0x40,%bl
508f8d:	74 4b                	je     0x508fda
508f8f:	8b 45 e8             	mov    -0x18(%ebp),%eax
508f92:	38 88 a5 00 00 00    	cmp    %cl,0xa5(%eax)
508f98:	0f 85 7a 00 00 00    	jne    0x509018
508f9e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
508fa1:	f7 41 18 00 00 01 00 	testl  $0x10000,0x18(%ecx)
508fa8:	74 61                	je     0x50900b
508faa:	8b 48 20             	mov    0x20(%eax),%ecx
508fad:	33 d2                	xor    %edx,%edx
508faf:	8b 40 24             	mov    0x24(%eax),%eax
508fb2:	89 45 cc             	mov    %eax,-0x34(%ebp)
508fb5:	8b c1                	mov    %ecx,%eax
508fb7:	25 01 00 00 10       	and    $0x10000001,%eax