508913:	8b 13                	mov    (%ebx),%edx
508915:	8b f0                	mov    %eax,%esi
508917:	2b f2                	sub    %edx,%esi
508919:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
508920:	0f b6 0a             	movzbl (%edx),%ecx
508923:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508927:	3b c8                	cmp    %eax,%ecx
508929:	75 32                	jne    0x50895d
50892b:	85 c9                	test   %ecx,%ecx
50892d:	75 44                	jne    0x508973
50892f:	8b 45 08             	mov    0x8(%ebp),%eax
508932:	80 b8 c8 00 00 00 02 	cmpb   $0x2,0xc8(%eax)
508939:	72 41                	jb     0x50897c
50893b:	85 ff                	test   %edi,%edi
50893d:	74 3d                	je     0x50897c
50893f:	8b 80 10 01 00 00    	mov    0x110(%eax),%eax
508945:	85 c0                	test   %eax,%eax
508947:	74 33                	je     0x50897c
508949:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
50894c:	83 c1 2c             	add    $0x2c,%ecx
50894f:	90                   	nop
508950:	39 08                	cmp    %ecx,(%eax)
508952:	74 22                	je     0x508976
508954:	8b 40 0c             	mov    0xc(%eax),%eax
508957:	85 c0                	test   %eax,%eax
508959:	75 f5                	jne    0x508950
50895b:	eb 1f                	jmp    0x50897c
50895d:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508964:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
50896b:	2b c8                	sub    %eax,%ecx
50896d:	0f 85 86 00 00 00    	jne    0x5089f9
508973:	42                   	inc    %edx
508974:	eb aa                	jmp    0x508920
508976:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
50897c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50897f:	8b c1                	mov    %ecx,%eax
508981:	41                   	inc    %ecx
508982:	89 4d f0             	mov    %ecx,-0x10(%ebp)
508985:	85 c0                	test   %eax,%eax
508987:	75 06                	jne    0x50898f
508989:	8b 45 f8             	mov    -0x8(%ebp),%eax
50898c:	89 45 fc             	mov    %eax,-0x4(%ebp)
50898f:	8b 45 e0             	mov    -0x20(%ebp),%eax
508992:	33 ff                	xor    %edi,%edi
508994:	8b 5b 04             	mov    0x4(%ebx),%ebx
508997:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
50899b:	85 c0                	test   %eax,%eax
50899d:	7e 5a                	jle    0x5089f9
50899f:	90                   	nop
5089a0:	8b 75 14             	mov    0x14(%ebp),%esi
5089a3:	8b 13                	mov    (%ebx),%edx
5089a5:	2b f2                	sub    %edx,%esi
5089a7:	0f b6 02             	movzbl (%edx),%eax
5089aa:	0f b6 0c 16          	movzbl (%esi,%edx,1),%ecx
5089ae:	3b c1                	cmp    %ecx,%eax
5089b0:	0f 85 f3 00 00 00    	jne    0x508aa9
5089b6:	85 c0                	test   %eax,%eax
5089b8:	0f 85 01 01 00 00    	jne    0x508abf
5089be:	8b 75 f4             	mov    -0xc(%ebp),%esi
5089c1:	83 fe 01             	cmp    $0x1,%esi
5089c4:	0f 85 fb 00 00 00    	jne    0x508ac5
5089ca:	8b 45 f8             	mov    -0x8(%ebp),%eax
5089cd:	f6 40 24 04          	testb  $0x4,0x24(%eax)
5089d1:	75 17                	jne    0x5089ea
5089d3:	8b 4d 14             	mov    0x14(%ebp),%ecx
5089d6:	51                   	push   %ecx
5089d7:	ff 70 34             	push   0x34(%eax)
5089da:	e8 d1 2d 00 00       	call   0x50b7b0
5089df:	83 c4 08             	add    $0x8,%esp
5089e2:	85 c0                	test   %eax,%eax
5089e4:	0f 84 db 00 00 00    	je     0x508ac5
5089ea:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5089ed:	47                   	inc    %edi
5089ee:	83 c3 14             	add    $0x14,%ebx
5089f1:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
5089f5:	3b f8                	cmp    %eax,%edi
5089f7:	7c a7                	jl     0x5089a0
5089f9:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5089fc:	8b 75 f8             	mov    -0x8(%ebp),%esi
5089ff:	8b 55 1c             	mov    0x1c(%ebp),%edx
508a02:	8b 45 cc             	mov    -0x34(%ebp),%eax
508a05:	41                   	inc    %ecx
508a06:	83 c6 48             	add    $0x48,%esi
508a09:	89 4d ec             	mov    %ecx,-0x14(%ebp)
508a0c:	89 75 f8             	mov    %esi,-0x8(%ebp)
508a0f:	3b 08                	cmp    (%eax),%ecx
508a11:	0f 8c 0b fe ff ff    	jl     0x508822
508a17:	8b 7d fc             	mov    -0x4(%ebp),%edi
508a1a:	85 ff                	test   %edi,%edi
508a1c:	74 1f                	je     0x508a3d
508a1e:	8b 47 2c             	mov    0x2c(%edi),%eax
508a21:	89 42 1c             	mov    %eax,0x1c(%edx)
508a24:	8b 47 10             	mov    0x10(%edi),%eax
508a27:	89 42 2c             	mov    %eax,0x2c(%edx)
508a2a:	f6 47 24 08          	testb  $0x8,0x24(%edi)
508a2e:	74 07                	je     0x508a37
508a30:	81 4a 04 00 00 10 00 	orl    $0x100000,0x4(%edx)
508a37:	8b 40 48             	mov    0x48(%eax),%eax
508a3a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
508a3d:	8b 4d 10             	mov    0x10(%ebp),%ecx
508a40:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
508a44:	8b 75 f0             	mov    -0x10(%ebp),%esi
508a47:	0f 85 32 03 00 00    	jne    0x508d7f
508a4d:	85 c9                	test   %ecx,%ecx
508a4f:	0f 84 2a 03 00 00    	je     0x508d7f
508a55:	85 f6                	test   %esi,%esi
508a57:	0f 85 22 03 00 00    	jne    0x508d7f
508a5d:	8b 45 08             	mov    0x8(%ebp),%eax
508a60:	33 db                	xor    %ebx,%ebx
508a62:	89 5d ec             	mov    %ebx,-0x14(%ebp)
508a65:	39 58 78             	cmp    %ebx,0x78(%eax)
508a68:	0f 84 e8 00 00 00    	je     0x508b56
508a6e:	0f b6 b8 90 00 00 00 	movzbl 0x90(%eax),%edi
508a75:	83 ff 7e             	cmp    $0x7e,%edi
508a78:	0f 84 a1 00 00 00    	je     0x508b1f
508a7e:	ba 1c 8c 6b 00       	mov    $0x6b8c1c,%edx
508a83:	8b f1                	mov    %ecx,%esi
508a85:	2b f2                	sub    %edx,%esi
508a87:	0f b6 0a             	movzbl (%edx),%ecx
508a8a:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508a8e:	3b c8                	cmp    %eax,%ecx
508a90:	75 72                	jne    0x508b04
508a92:	85 c9                	test   %ecx,%ecx
508a94:	0f 85 7c 00 00 00    	jne    0x508b16
508a9a:	8b 45 1c             	mov    0x1c(%ebp),%eax
508a9d:	c7 40 1c 01 00 00 00 	movl   $0x1,0x1c(%eax)
508aa4:	e9 a4 00 00 00       	jmp    0x508b4d
508aa9:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508ab0:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508ab7:	2b c1                	sub    %ecx,%eax
508ab9:	0f 85 2b ff ff ff    	jne    0x5089ea
508abf:	42                   	inc    %edx
508ac0:	e9 e2 fe ff ff       	jmp    0x5089a7
508ac5:	8b 45 f8             	mov    -0x8(%ebp),%eax
508ac8:	46                   	inc    %esi
508ac9:	89 45 fc             	mov    %eax,-0x4(%ebp)
508acc:	8b 45 e0             	mov    -0x20(%ebp),%eax
508acf:	89 75 f4             	mov    %esi,-0xc(%ebp)
508ad2:	0f bf 40 28          	movswl 0x28(%eax),%eax
508ad6:	3b f8                	cmp    %eax,%edi
508ad8:	75 15                	jne    0x508aef
508ada:	8b 55 1c             	mov    0x1c(%ebp),%edx
508add:	83 c8 ff             	or     $0xffffffff,%eax
508ae0:	8b 75 f8             	mov    -0x8(%ebp),%esi
508ae3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
508ae6:	66 89 42 20          	mov    %ax,0x20(%edx)
508aea:	e9 13 ff ff ff       	jmp    0x508a02
508aef:	8b 55 1c             	mov    0x1c(%ebp),%edx
508af2:	8b 75 f8             	mov    -0x8(%ebp),%esi
508af5:	8b 4d ec             	mov    -0x14(%ebp),%ecx
508af8:	0f bf c7             	movswl %di,%eax
508afb:	66 89 42 20          	mov    %ax,0x20(%edx)
508aff:	e9 fe fe ff ff       	jmp    0x508a02
508b04:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508b0b:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
508b12:	2b c8                	sub    %eax,%ecx
508b14:	75 06                	jne    0x508b1c
508b16:	42                   	inc    %edx
508b17:	e9 6b ff ff ff       	jmp    0x508a87
508b1c:	8b 4d 10             	mov    0x10(%ebp),%ecx
508b1f:	83 ff 7d             	cmp    $0x7d,%edi
508b22:	74 32                	je     0x508b56
508b24:	ba 20 8c 6b 00       	mov    $0x6b8c20,%edx
508b29:	8b f1                	mov    %ecx,%esi
508b2b:	2b f2                	sub    %edx,%esi
508b2d:	0f 1f 00             	nopl   (%eax)
508b30:	0f b6 0a             	movzbl (%edx),%ecx
508b33:	0f b6 04 16          	movzbl (%esi,%edx,1),%eax
508b37:	3b c8                	cmp    %eax,%ecx
508b39:	0f 85 bd 00 00 00    	jne    0x508bfc
508b3f:	85 c9                	test   %ecx,%ecx
508b41:	0f 85 cb 00 00 00    	jne    0x508c12
508b47:	8b 45 1c             	mov    0x1c(%ebp),%eax
508b4a:	89 58 1c             	mov    %ebx,0x1c(%eax)
508b4d:	8b 5d 08             	mov    0x8(%ebp),%ebx
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