549b54:	83 c0 04             	add    $0x4,%eax
549b57:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549b5a:	3b c1                	cmp    %ecx,%eax
549b5c:	0f 82 2d ff ff ff    	jb     0x549a8f
549b62:	8b 45 fc             	mov    -0x4(%ebp),%eax
549b65:	8a 40 09             	mov    0x9(%eax),%al
549b68:	3c 04                	cmp    $0x4,%al
549b6a:	75 58                	jne    0x549bc4
549b6c:	8b 75 f8             	mov    -0x8(%ebp),%esi
549b6f:	33 c0                	xor    %eax,%eax
549b71:	8b 55 f0             	mov    -0x10(%ebp),%edx
549b74:	3b c2                	cmp    %edx,%eax
549b76:	0f 83 bd 00 00 00    	jae    0x549c39
549b7c:	33 c9                	xor    %ecx,%ecx
549b7e:	8a 0e                	mov    (%esi),%cl
549b80:	8b d1                	mov    %ecx,%edx
549b82:	83 e1 0f             	and    $0xf,%ecx
549b85:	89 4d dc             	mov    %ecx,-0x24(%ebp)
549b88:	81 e2 f0 00 00 00    	and    $0xf0,%edx
549b8e:	8b ca                	mov    %edx,%ecx
549b90:	8b 5d dc             	mov    -0x24(%ebp),%ebx
549b93:	c1 f9 04             	sar    $0x4,%ecx
549b96:	0b d1                	or     %ecx,%edx
549b98:	8b 4d f4             	mov    -0xc(%ebp),%ecx
549b9b:	8a 14 11             	mov    (%ecx,%edx,1),%dl
549b9e:	8b 4d dc             	mov    -0x24(%ebp),%ecx
549ba1:	c1 e1 04             	shl    $0x4,%ecx
549ba4:	80 e2 f0             	and    $0xf0,%dl
549ba7:	0b cb                	or     %ebx,%ecx
549ba9:	8b 5d f4             	mov    -0xc(%ebp),%ebx
549bac:	0f b6 0c 0b          	movzbl (%ebx,%ecx,1),%ecx
549bb0:	c1 f9 04             	sar    $0x4,%ecx
549bb3:	0a d1                	or     %cl,%dl
549bb5:	88 16                	mov    %dl,(%esi)
549bb7:	46                   	inc    %esi
549bb8:	83 c0 02             	add    $0x2,%eax
549bbb:	8b 55 f0             	mov    -0x10(%ebp),%edx
549bbe:	3b c2                	cmp    %edx,%eax
549bc0:	72 ba                	jb     0x549b7c
549bc2:	eb 75                	jmp    0x549c39
549bc4:	8b 45 fc             	mov    -0x4(%ebp),%eax
549bc7:	8a 40 09             	mov    0x9(%eax),%al
549bca:	3c 08                	cmp    $0x8,%al
549bcc:	75 23                	jne    0x549bf1
549bce:	8b 75 f8             	mov    -0x8(%ebp),%esi
549bd1:	33 c0                	xor    %eax,%eax
549bd3:	8b 55 f0             	mov    -0x10(%ebp),%edx
549bd6:	3b c2                	cmp    %edx,%eax
549bd8:	73 5f                	jae    0x549c39
549bda:	33 c9                	xor    %ecx,%ecx
549bdc:	8a 0e                	mov    (%esi),%cl
549bde:	8b 55 f4             	mov    -0xc(%ebp),%edx
549be1:	8a 0c 0a             	mov    (%edx,%ecx,1),%cl
549be4:	88 0e                	mov    %cl,(%esi)
549be6:	46                   	inc    %esi
549be7:	40                   	inc    %eax
549be8:	8b 55 f0             	mov    -0x10(%ebp),%edx
549beb:	3b c2                	cmp    %edx,%eax
549bed:	72 eb                	jb     0x549bda
549bef:	eb 48                	jmp    0x549c39
549bf1:	8b 45 fc             	mov    -0x4(%ebp),%eax
549bf4:	8a 48 09             	mov    0x9(%eax),%cl
549bf7:	80 f9 10             	cmp    $0x10,%cl
549bfa:	75 3d                	jne    0x549c39
549bfc:	8b 75 f8             	mov    -0x8(%ebp),%esi
549bff:	33 c0                	xor    %eax,%eax
549c01:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549c04:	3b c1                	cmp    %ecx,%eax
549c06:	73 31                	jae    0x549c39
549c08:	33 db                	xor    %ebx,%ebx
549c0a:	8b 4d 08             	mov    0x8(%ebp),%ecx
549c0d:	8a 5e 01             	mov    0x1(%esi),%bl
549c10:	d3 fb                	sar    %cl,%ebx
549c12:	8b 0c 9a             	mov    (%edx,%ebx,4),%ecx
549c15:	33 db                	xor    %ebx,%ebx
549c17:	8a 1e                	mov    (%esi),%bl
549c19:	66 8b 0c 59          	mov    (%ecx,%ebx,2),%cx
549c1d:	0f b7 d9             	movzwl %cx,%ebx
549c20:	c1 fb 08             	sar    $0x8,%ebx
549c23:	80 e1 ff             	and    $0xff,%cl
549c26:	80 e3 ff             	and    $0xff,%bl
549c29:	88 1e                	mov    %bl,(%esi)
549c2b:	88 4e 01             	mov    %cl,0x1(%esi)
549c2e:	83 c6 02             	add    $0x2,%esi
549c31:	40                   	inc    %eax
549c32:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549c35:	3b c1                	cmp    %ecx,%eax
549c37:	72 cf                	jb     0x549c08
549c39:	5f                   	pop    %edi
549c3a:	5e                   	pop    %esi
549c3b:	5b                   	pop    %ebx
549c3c:	8b e5                	mov    %ebp,%esp
549c3e:	5d                   	pop    %ebp
549c3f:	c2 08 00             	ret    $0x8
549c42:	90                   	nop
549c43:	90                   	nop
549c44:	55                   	push   %ebp
549c45:	8b ec                	mov    %esp,%ebp
549c47:	83 c4 f0             	add    $0xfffffff0,%esp
549c4a:	53                   	push   %ebx
549c4b:	56                   	push   %esi
549c4c:	57                   	push   %edi
549c4d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
549c50:	89 55 f8             	mov    %edx,-0x8(%ebp)
549c53:	89 45 fc             	mov    %eax,-0x4(%ebp)
549c56:	8b 55 fc             	mov    -0x4(%ebp),%edx
549c59:	8b 45 fc             	mov    -0x4(%ebp),%eax
549c5c:	8a 4a 08             	mov    0x8(%edx),%cl
549c5f:	8b 00                	mov    (%eax),%eax
549c61:	80 f9 03             	cmp    $0x3,%cl
549c64:	0f 85 57 02 00 00    	jne    0x549ec1
549c6a:	8b 55 fc             	mov    -0x4(%ebp),%edx
549c6d:	8a 52 09             	mov    0x9(%edx),%dl
549c70:	80 fa 08             	cmp    $0x8,%dl
549c73:	0f 83 28 01 00 00    	jae    0x549da1
549c79:	fe ca                	dec    %dl
549c7b:	74 12                	je     0x549c8f
549c7d:	fe ca                	dec    %dl
549c7f:	74 6e                	je     0x549cef
549c81:	80 ea 02             	sub    $0x2,%dl
549c84:	0f 84 b9 00 00 00    	je     0x549d43
549c8a:	e9 fe 00 00 00       	jmp    0x549d8d
549c8f:	8b f0                	mov    %eax,%esi
549c91:	8b 55 f8             	mov    -0x8(%ebp),%edx
549c94:	4e                   	dec    %esi
549c95:	8b 5d f8             	mov    -0x8(%ebp),%ebx
549c98:	c1 ee 03             	shr    $0x3,%esi
549c9b:	b9 07 00 00 00       	mov    $0x7,%ecx
549ca0:	03 f2                	add    %edx,%esi
549ca2:	8d 50 07             	lea    0x7(%eax),%edx
549ca5:	83 e2 07             	and    $0x7,%edx
549ca8:	03 d8                	add    %eax,%ebx
549caa:	2b ca                	sub    %edx,%ecx
549cac:	33 d2                	xor    %edx,%edx
549cae:	4b                   	dec    %ebx
549caf:	3b c2                	cmp    %edx,%eax
549cb1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
549cb4:	0f 86 d3 00 00 00    	jbe    0x549d8d
549cba:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549cbd:	0f b6 3e             	movzbl (%esi),%edi
549cc0:	d3 ff                	sar    %cl,%edi
549cc2:	8b cf                	mov    %edi,%ecx
549cc4:	f6 c1 01             	test   $0x1,%cl
549cc7:	74 05                	je     0x549cce
549cc9:	c6 03 01             	movb   $0x1,(%ebx)
549ccc:	eb 03                	jmp    0x549cd1
549cce:	c6 03 00             	movb   $0x0,(%ebx)
549cd1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549cd4:	83 f9 07             	cmp    $0x7,%ecx
549cd7:	75 08                	jne    0x549ce1
549cd9:	33 c9                	xor    %ecx,%ecx
549cdb:	4e                   	dec    %esi
549cdc:	89 4d f0             	mov    %ecx,-0x10(%ebp)
549cdf:	eb 03                	jmp    0x549ce4
549ce1:	ff 45 f0             	incl   -0x10(%ebp)
549ce4:	4b                   	dec    %ebx
549ce5:	42                   	inc    %edx
549ce6:	3b c2                	cmp    %edx,%eax
549ce8:	77 d0                	ja     0x549cba
549cea:	e9 9e 00 00 00       	jmp    0x549d8d
549cef:	8b f0                	mov    %eax,%esi
549cf1:	8b 55 f8             	mov    -0x8(%ebp),%edx
549cf4:	4e                   	dec    %esi
549cf5:	8b 5d f8             	mov    -0x8(%ebp),%ebx
549cf8:	c1 ee 02             	shr    $0x2,%esi
549cfb:	b9 03 00 00 00       	mov    $0x3,%ecx
549d00:	03 f2                	add    %edx,%esi
549d02:	8d 50 03             	lea    0x3(%eax),%edx
549d05:	83 e2 03             	and    $0x3,%edx
549d08:	03 d8                	add    %eax,%ebx
549d0a:	2b ca                	sub    %edx,%ecx
549d0c:	33 d2                	xor    %edx,%edx
549d0e:	03 c9                	add    %ecx,%ecx
549d10:	4b                   	dec    %ebx
549d11:	3b c2                	cmp    %edx,%eax
549d13:	89 4d f0             	mov    %ecx,-0x10(%ebp)
549d16:	76 75                	jbe    0x549d8d
549d18:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549d1b:	0f b6 3e             	movzbl (%esi),%edi
549d1e:	d3 ff                	sar    %cl,%edi
549d20:	83 e7 03             	and    $0x3,%edi
549d23:	8b cf                	mov    %edi,%ecx
549d25:	88 0b                	mov    %cl,(%ebx)
549d27:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549d2a:	83 f9 06             	cmp    $0x6,%ecx
549d2d:	75 08                	jne    0x549d37
549d2f:	33 c9                	xor    %ecx,%ecx
549d31:	4e                   	dec    %esi
549d32:	89 4d f0             	mov    %ecx,-0x10(%ebp)
549d35:	eb 04                	jmp    0x549d3b
549d37:	83 45 f0 02          	addl   $0x2,-0x10(%ebp)
549d3b:	4b                   	dec    %ebx
549d3c:	42                   	inc    %edx
549d3d:	3b c2                	cmp    %edx,%eax
549d3f:	77 d7                	ja     0x549d18
549d41:	eb 4a                	jmp    0x549d8d
549d43:	8b f0                	mov    %eax,%esi
549d45:	8b 55 f8             	mov    -0x8(%ebp),%edx
549d48:	4e                   	dec    %esi
549d49:	8b 5d f8             	mov    -0x8(%ebp),%ebx
549d4c:	d1 ee                	shr    $1,%esi
549d4e:	03 d8                	add    %eax,%ebx
549d50:	03 f2                	add    %edx,%esi
549d52:	8b d0                	mov    %eax,%edx
549d54:	83 e2 01             	and    $0x1,%edx
549d57:	4b                   	dec    %ebx
549d58:	c1 e2 02             	shl    $0x2,%edx
549d5b:	89 55 f0             	mov    %edx,-0x10(%ebp)
549d5e:	33 d2                	xor    %edx,%edx
549d60:	3b c2                	cmp    %edx,%eax
549d62:	76 29                	jbe    0x549d8d
549d64:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549d67:	0f b6 3e             	movzbl (%esi),%edi
549d6a:	d3 ff                	sar    %cl,%edi
549d6c:	83 e7 0f             	and    $0xf,%edi
549d6f:	8b cf                	mov    %edi,%ecx
549d71:	88 0b                	mov    %cl,(%ebx)
549d73:	8b 4d f0             	mov    -0x10(%ebp),%ecx
549d76:	83 f9 04             	cmp    $0x4,%ecx
549d79:	75 08                	jne    0x549d83
549d7b:	33 c9                	xor    %ecx,%ecx
549d7d:	4e                   	dec    %esi
549d7e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
549d81:	eb 04                	jmp    0x549d87
549d83:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
549d87:	4b                   	dec    %ebx
549d88:	42                   	inc    %edx
549d89:	3b c2                	cmp    %edx,%eax
549d8b:	77 d7                	ja     0x549d64
549d8d:	8b 55 fc             	mov    -0x4(%ebp),%edx
549d90:	c6 42 09 08          	movb   $0x8,0x9(%edx)
549d94:	8b 55 fc             	mov    -0x4(%ebp),%edx
549d97:	c6 42 0b 08          	movb   $0x8,0xb(%edx)
549d9b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
549d9e:	89 41 04             	mov    %eax,0x4(%ecx)
549da1:	8b 55 fc             	mov    -0x4(%ebp),%edx
549da4:	8a 4a 09             	mov    0x9(%edx),%cl
549da7:	80 e9 08             	sub    $0x8,%cl
549daa:	0f 85 11 01 00 00    	jne    0x549ec1
549db0:	8b 55 0c             	mov    0xc(%ebp),%edx
549db3:	85 d2                	test   %edx,%edx
549db5:	0f 84 94 00 00 00    	je     0x549e4f
549dbb:	8b d8                	mov    %eax,%ebx
549dbd:	8b 55 f8             	mov    -0x8(%ebp),%edx
549dc0:	c1 e3 02             	shl    $0x2,%ebx
549dc3:	8b 75 f8             	mov    -0x8(%ebp),%esi
549dc6:	03 f0                	add    %eax,%esi
549dc8:	03 da                	add    %edx,%ebx
549dca:	33 d2                	xor    %edx,%edx
549dcc:	4b                   	dec    %ebx
549dcd:	4e                   	dec    %esi
549dce:	3b c2                	cmp    %edx,%eax
549dd0:	76 56                	jbe    0x549e28
549dd2:	33 c9                	xor    %ecx,%ecx
549dd4:	8a 0e                	mov    (%esi),%cl
549dd6:	8b 7d 08             	mov    0x8(%ebp),%edi
549dd9:	3b cf                	cmp    %edi,%ecx
549ddb:	7c 06                	jl     0x549de3
549ddd:	c6 03 ff             	movb   $0xff,(%ebx)
549de0:	4b                   	dec    %ebx
549de1:	eb 0d                	jmp    0x549df0
549de3:	33 c9                	xor    %ecx,%ecx
549de5:	8a 0e                	mov    (%esi),%cl
549de7:	8b 7d 0c             	mov    0xc(%ebp),%edi
549dea:	8a 0c 0f             	mov    (%edi,%ecx,1),%cl
549ded:	88 0b                	mov    %cl,(%ebx)
549def:	4b                   	dec    %ebx
549df0:	33 c9                	xor    %ecx,%ecx
549df2:	8b 7d f4             	mov    -0xc(%ebp),%edi
549df5:	8a 0e                	mov    (%esi),%cl
549df7:	42                   	inc    %edx
549df8:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
549dfb:	8a 4c 0f 02          	mov    0x2(%edi,%ecx,1),%cl
549dff:	88 0b                	mov    %cl,(%ebx)
549e01:	33 c9                	xor    %ecx,%ecx
549e03:	8a 0e                	mov    (%esi),%cl
549e05:	8b 7d f4             	mov    -0xc(%ebp),%edi
549e08:	4b                   	dec    %ebx
549e09:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
549e0c:	8a 4c 0f 01          	mov    0x1(%edi,%ecx,1),%cl
549e10:	88 0b                	mov    %cl,(%ebx)
549e12:	33 c9                	xor    %ecx,%ecx
549e14:	8a 0e                	mov    (%esi),%cl
549e16:	8b 7d f4             	mov    -0xc(%ebp),%edi
549e19:	4b                   	dec    %ebx
549e1a:	4e                   	dec    %esi
549e1b:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
549e1e:	8a 0c 0f             	mov    (%edi,%ecx,1),%cl
549e21:	88 0b                	mov    %cl,(%ebx)
549e23:	4b                   	dec    %ebx
549e24:	3b c2                	cmp    %edx,%eax
549e26:	77 aa                	ja     0x549dd2
549e28:	8b 55 fc             	mov    -0x4(%ebp),%edx
549e2b:	c6 42 09 08          	movb   $0x8,0x9(%edx)
549e2f:	8b 55 fc             	mov    -0x4(%ebp),%edx
549e32:	c6 42 0b 20          	movb   $0x20,0xb(%edx)
549e36:	c1 e0 02             	shl    $0x2,%eax
549e39:	8b 4d fc             	mov    -0x4(%ebp),%ecx
549e3c:	89 41 04             	mov    %eax,0x4(%ecx)
549e3f:	8b 45 fc             	mov    -0x4(%ebp),%eax
549e42:	c6 40 08 06          	movb   $0x6,0x8(%eax)
549e46:	8b 45 fc             	mov    -0x4(%ebp),%eax
549e49:	c6 40 0a 04          	movb   $0x4,0xa(%eax)
549e4d:	eb 72                	jmp    0x549ec1
549e4f:	8b 55 f8             	mov    -0x8(%ebp),%edx
549e52:	8b 75 f8             	mov    -0x8(%ebp),%esi
549e55:	8d 1c 40             	lea    (%eax,%eax,2),%ebx
549e58:	03 f0                	add    %eax,%esi
549e5a:	03 da                	add    %edx,%ebx
549e5c:	33 d2                	xor    %edx,%edx
549e5e:	4b                   	dec    %ebx
549e5f:	4e                   	dec    %esi
549e60:	3b c2                	cmp    %edx,%eax
549e62:	76 38                	jbe    0x549e9c
549e64:	33 c9                	xor    %ecx,%ecx
549e66:	8b 7d f4             	mov    -0xc(%ebp),%edi
549e69:	8a 0e                	mov    (%esi),%cl
549e6b:	42                   	inc    %edx
549e6c:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
549e6f:	8a 4c 0f 02          	mov    0x2(%edi,%ecx,1),%cl
549e73:	88 0b                	mov    %cl,(%ebx)
549e75:	33 c9                	xor    %ecx,%ecx
549e77:	8a 0e                	mov    (%esi),%cl
549e79:	8b 7d f4             	mov    -0xc(%ebp),%edi
549e7c:	4b                   	dec    %ebx
549e7d:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
549e80:	8a 4c 0f 01          	mov    0x1(%edi,%ecx,1),%cl
549e84:	88 0b                	mov    %cl,(%ebx)
549e86:	33 c9                	xor    %ecx,%ecx
549e88:	8a 0e                	mov    (%esi),%cl
549e8a:	8b 7d f4             	mov    -0xc(%ebp),%edi
549e8d:	4b                   	dec    %ebx
549e8e:	4e                   	dec    %esi
549e8f:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
549e92:	8a 0c 0f             	mov    (%edi,%ecx,1),%cl
549e95:	88 0b                	mov    %cl,(%ebx)
549e97:	4b                   	dec    %ebx
549e98:	3b c2                	cmp    %edx,%eax
549e9a:	77 c8                	ja     0x549e64
549e9c:	8b 55 fc             	mov    -0x4(%ebp),%edx
549e9f:	c6 42 09 08          	movb   $0x8,0x9(%edx)
549ea3:	8b 55 fc             	mov    -0x4(%ebp),%edx
549ea6:	c6 42 0b 18          	movb   $0x18,0xb(%edx)
549eaa:	8d 04 40             	lea    (%eax,%eax,2),%eax
549ead:	8b 4d fc             	mov    -0x4(%ebp),%ecx
549eb0:	89 41 04             	mov    %eax,0x4(%ecx)
549eb3:	8b 45 fc             	mov    -0x4(%ebp),%eax
549eb6:	c6 40 08 02          	movb   $0x2,0x8(%eax)
549eba:	8b 55 fc             	mov    -0x4(%ebp),%edx
549ebd:	c6 42 0a 03          	movb   $0x3,0xa(%edx)