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)
549ec1:	5f                   	pop    %edi
549ec2:	5e                   	pop    %esi
549ec3:	5b                   	pop    %ebx
549ec4:	8b e5                	mov    %ebp,%esp
549ec6:	5d                   	pop    %ebp
549ec7:	c2 08 00             	ret    $0x8
549eca:	90                   	nop
549ecb:	90                   	nop
549ecc:	53                   	push   %ebx
549ecd:	56                   	push   %esi
549ece:	57                   	push   %edi
549ecf:	55                   	push   %ebp
549ed0:	83 c4 ec             	add    $0xffffffec,%esp
549ed3:	89 4c 24 04          	mov    %ecx,0x4(%esp)
549ed7:	89 14 24             	mov    %edx,(%esp)
549eda:	8b 10                	mov    (%eax),%edx
549edc:	8a 48 08             	mov    0x8(%eax),%cl
549edf:	84 c9                	test   %cl,%cl
549ee1:	0f 85 a6 02 00 00    	jne    0x54a18d
549ee7:	8b 4c 24 04          	mov    0x4(%esp),%ecx
549eeb:	85 c9                	test   %ecx,%ecx
549eed:	74 0a                	je     0x549ef9
549eef:	8b 4c 24 04          	mov    0x4(%esp),%ecx
549ef3:	66 8b 49 08          	mov    0x8(%ecx),%cx
549ef7:	eb 02                	jmp    0x549efb
549ef9:	33 c9                	xor    %ecx,%ecx
549efb:	66 89 4c 24 10       	mov    %cx,0x10(%esp)
549f00:	8a 48 09             	mov    0x9(%eax),%cl
549f03:	80 f9 08             	cmp    $0x8,%cl
549f06:	0f 83 a8 01 00 00    	jae    0x54a0b4
549f0c:	fe c9                	dec    %cl
549f0e:	74 16                	je     0x549f26
549f10:	fe c9                	dec    %cl
549f12:	0f 84 83 00 00 00    	je     0x549f9b
549f18:	80 e9 02             	sub    $0x2,%cl
549f1b:	0f 84 0d 01 00 00    	je     0x54a02e
549f21:	e9 83 01 00 00       	jmp    0x54a0a9
549f26:	0f b7 4c 24 10       	movzwl 0x10(%esp),%ecx
549f2b:	8b d9                	mov    %ecx,%ebx
549f2d:	8b fa                	mov    %edx,%edi
549f2f:	c1 e1 08             	shl    $0x8,%ecx
549f32:	4f                   	dec    %edi
549f33:	2b cb                	sub    %ebx,%ecx
549f35:	bb 07 00 00 00       	mov    $0x7,%ebx
549f3a:	66 89 4c 24 10       	mov    %cx,0x10(%esp)
549f3f:	33 ed                	xor    %ebp,%ebp
549f41:	c1 ef 03             	shr    $0x3,%edi
549f44:	8b 0c 24             	mov    (%esp),%ecx
549f47:	03 f9                	add    %ecx,%edi
549f49:	8b 34 24             	mov    (%esp),%esi
549f4c:	8d 4a 07             	lea    0x7(%edx),%ecx
549f4f:	03 f2                	add    %edx,%esi
549f51:	83 e1 07             	and    $0x7,%ecx
549f54:	4e                   	dec    %esi
549f55:	2b d9                	sub    %ecx,%ebx
549f57:	3b d5                	cmp    %ebp,%edx
549f59:	89 5c 24 08          	mov    %ebx,0x8(%esp)
549f5d:	0f 86 46 01 00 00    	jbe    0x54a0a9
549f63:	8b 4c 24 08          	mov    0x8(%esp),%ecx
549f67:	33 db                	xor    %ebx,%ebx
549f69:	8a 1f                	mov    (%edi),%bl
549f6b:	d3 fb                	sar    %cl,%ebx
549f6d:	f6 c3 01             	test   $0x1,%bl
549f70:	74 05                	je     0x549f77
549f72:	c6 06 ff             	movb   $0xff,(%esi)
549f75:	eb 03                	jmp    0x549f7a
549f77:	c6 06 00             	movb   $0x0,(%esi)
549f7a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
549f7e:	83 f9 07             	cmp    $0x7,%ecx
549f81:	75 09                	jne    0x549f8c
549f83:	33 c9                	xor    %ecx,%ecx
549f85:	4f                   	dec    %edi
549f86:	89 4c 24 08          	mov    %ecx,0x8(%esp)
549f8a:	eb 04                	jmp    0x549f90
549f8c:	ff 44 24 08          	incl   0x8(%esp)
549f90:	4e                   	dec    %esi
549f91:	45                   	inc    %ebp
549f92:	3b d5                	cmp    %ebp,%edx
549f94:	77 cd                	ja     0x549f63
549f96:	e9 0e 01 00 00       	jmp    0x54a0a9
549f9b:	0f b7 4c 24 10       	movzwl 0x10(%esp),%ecx
549fa0:	8b d9                	mov    %ecx,%ebx
549fa2:	8b fa                	mov    %edx,%edi
549fa4:	c1 e1 04             	shl    $0x4,%ecx
549fa7:	4f                   	dec    %edi
549fa8:	03 cb                	add    %ebx,%ecx
549faa:	bb 03 00 00 00       	mov    $0x3,%ebx
549faf:	c1 ef 02             	shr    $0x2,%edi
549fb2:	33 ed                	xor    %ebp,%ebp
549fb4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
549fb7:	66 89 4c 24 10       	mov    %cx,0x10(%esp)
549fbc:	8b 0c 24             	mov    (%esp),%ecx
549fbf:	8b 34 24             	mov    (%esp),%esi
549fc2:	03 f9                	add    %ecx,%edi
549fc4:	8d 4a 03             	lea    0x3(%edx),%ecx
549fc7:	83 e1 03             	and    $0x3,%ecx
549fca:	03 f2                	add    %edx,%esi
549fcc:	2b d9                	sub    %ecx,%ebx
549fce:	4e                   	dec    %esi
549fcf:	03 db                	add    %ebx,%ebx
549fd1:	3b d5                	cmp    %ebp,%edx
549fd3:	89 5c 24 08          	mov    %ebx,0x8(%esp)
549fd7:	0f 86 cc 00 00 00    	jbe    0x54a0a9
549fdd:	8b 4c 24 08          	mov    0x8(%esp),%ecx
549fe1:	33 db                	xor    %ebx,%ebx
549fe3:	8a 1f                	mov    (%edi),%bl
549fe5:	d3 fb                	sar    %cl,%ebx
549fe7:	83 e3 03             	and    $0x3,%ebx
549fea:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
549fee:	8a 4c 24 0c          	mov    0xc(%esp),%cl
549ff2:	8a 5c 24 0c          	mov    0xc(%esp),%bl
549ff6:	c1 e3 02             	shl    $0x2,%ebx
549ff9:	0a cb                	or     %bl,%cl
549ffb:	8a 5c 24 0c          	mov    0xc(%esp),%bl
549fff:	c1 e3 04             	shl    $0x4,%ebx
54a002:	0a cb                	or     %bl,%cl
54a004:	8a 5c 24 0c          	mov    0xc(%esp),%bl
54a008:	c1 e3 06             	shl    $0x6,%ebx
54a00b:	0a cb                	or     %bl,%cl
54a00d:	88 0e                	mov    %cl,(%esi)
54a00f:	8b 4c 24 08          	mov    0x8(%esp),%ecx
54a013:	83 f9 06             	cmp    $0x6,%ecx
54a016:	75 09                	jne    0x54a021
54a018:	33 c9                	xor    %ecx,%ecx
54a01a:	4f                   	dec    %edi
54a01b:	89 4c 24 08          	mov    %ecx,0x8(%esp)
54a01f:	eb 05                	jmp    0x54a026
54a021:	83 44 24 08 02       	addl   $0x2,0x8(%esp)
54a026:	4e                   	dec    %esi
54a027:	45                   	inc    %ebp
54a028:	3b d5                	cmp    %ebp,%edx
54a02a:	77 b1                	ja     0x549fdd
54a02c:	eb 7b                	jmp    0x54a0a9
54a02e:	0f b7 4c 24 10       	movzwl 0x10(%esp),%ecx
54a033:	8b d9                	mov    %ecx,%ebx
54a035:	8b fa                	mov    %edx,%edi
54a037:	c1 e1 04             	shl    $0x4,%ecx
54a03a:	4f                   	dec    %edi
54a03b:	03 cb                	add    %ebx,%ecx
54a03d:	bb 01 00 00 00       	mov    $0x1,%ebx
54a042:	66 89 4c 24 10       	mov    %cx,0x10(%esp)
54a047:	33 ed                	xor    %ebp,%ebp
54a049:	d1 ef                	shr    $1,%edi
54a04b:	8b 0c 24             	mov    (%esp),%ecx
54a04e:	03 f9                	add    %ecx,%edi
54a050:	8d 4a 01             	lea    0x1(%edx),%ecx
54a053:	83 e1 01             	and    $0x1,%ecx
54a056:	8b 34 24             	mov    (%esp),%esi
54a059:	2b d9                	sub    %ecx,%ebx
54a05b:	03 f2                	add    %edx,%esi
54a05d:	c1 e3 02             	shl    $0x2,%ebx
54a060:	4e                   	dec    %esi
54a061:	3b d5                	cmp    %ebp,%edx
54a063:	89 5c 24 08          	mov    %ebx,0x8(%esp)
54a067:	76 40                	jbe    0x54a0a9
54a069:	8b 4c 24 08          	mov    0x8(%esp),%ecx
54a06d:	33 db                	xor    %ebx,%ebx
54a06f:	8a 1f                	mov    (%edi),%bl
54a071:	d3 fb                	sar    %cl,%ebx
54a073:	83 e3 0f             	and    $0xf,%ebx
54a076:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
54a07a:	8a 4c 24 0c          	mov    0xc(%esp),%cl
54a07e:	8a 5c 24 0c          	mov    0xc(%esp),%bl
54a082:	c1 e3 04             	shl    $0x4,%ebx
54a085:	0a cb                	or     %bl,%cl
54a087:	88 0e                	mov    %cl,(%esi)
54a089:	8b 4c 24 08          	mov    0x8(%esp),%ecx
54a08d:	83 f9 04             	cmp    $0x4,%ecx
54a090:	75 09                	jne    0x54a09b
54a092:	33 c9                	xor    %ecx,%ecx
54a094:	4f                   	dec    %edi
54a095:	89 4c 24 08          	mov    %ecx,0x8(%esp)
54a099:	eb 08                	jmp    0x54a0a3
54a09b:	c7 44 24 08 04 00 00 	movl   $0x4,0x8(%esp)
54a0a2:	00