561ed0:	3b cb                	cmp    %ebx,%ecx
561ed2:	7c 0f                	jl     0x561ee3
561ed4:	8a 48 09             	mov    0x9(%eax),%cl
561ed7:	80 f9 01             	cmp    $0x1,%cl
561eda:	75 0b                	jne    0x561ee7
561edc:	66 83 78 0a 01       	cmpw   $0x1,0xa(%eax)
561ee1:	74 04                	je     0x561ee7
561ee3:	33 c0                	xor    %eax,%eax
561ee5:	5b                   	pop    %ebx
561ee6:	c3                   	ret
561ee7:	4a                   	dec    %edx
561ee8:	05 1c 01 00 00       	add    $0x11c,%eax
561eed:	66 85 d2             	test   %dx,%dx
561ef0:	77 c7                	ja     0x561eb9
561ef2:	b8 01 00 00 00       	mov    $0x1,%eax
561ef7:	5b                   	pop    %ebx
561ef8:	c3                   	ret
561ef9:	90                   	nop
561efa:	90                   	nop
561efb:	90                   	nop
561efc:	53                   	push   %ebx
561efd:	56                   	push   %esi
561efe:	57                   	push   %edi
561eff:	55                   	push   %ebp
561f00:	0f b7 e8             	movzwl %ax,%ebp
561f03:	83 c4 f4             	add    $0xfffffff4,%esp
561f06:	8b f2                	mov    %edx,%esi
561f08:	66 25 ff 07          	and    $0x7ff,%ax
561f0c:	33 db                	xor    %ebx,%ebx
561f0e:	89 0c 24             	mov    %ecx,(%esp)
561f11:	66 89 44 24 08       	mov    %ax,0x8(%esp)
561f16:	8d 04 76             	lea    (%esi,%esi,2),%eax
561f19:	83 c0 fe             	add    $0xfffffffe,%eax
561f1c:	89 44 24 04          	mov    %eax,0x4(%esp)
561f20:	8b 04 24             	mov    (%esp),%eax
561f23:	8b f8                	mov    %eax,%edi
561f25:	8b 44 24 04          	mov    0x4(%esp),%eax
561f29:	c1 fd 0b             	sar    $0xb,%ebp
561f2c:	3b d8                	cmp    %eax,%ebx
561f2e:	0f 8d b5 00 00 00    	jge    0x561fe9
561f34:	85 db                	test   %ebx,%ebx
561f36:	7e 0d                	jle    0x561f45
561f38:	8d 43 02             	lea    0x2(%ebx),%eax
561f3b:	b9 03 00 00 00       	mov    $0x3,%ecx
561f40:	99                   	cltd
561f41:	f7 f9                	idiv   %ecx
561f43:	eb 02                	jmp    0x561f47
561f45:	33 c0                	xor    %eax,%eax
561f47:	0f b7 cd             	movzwl %bp,%ecx
561f4a:	03 ce                	add    %esi,%ecx
561f4c:	8d 56 ff             	lea    -0x1(%esi),%edx
561f4f:	2b d0                	sub    %eax,%edx
561f51:	49                   	dec    %ecx
561f52:	2b ca                	sub    %edx,%ecx
561f54:	f7 c1 e0 ff ff ff    	test   $0xffffffe0,%ecx
561f5a:	74 17                	je     0x561f73
561f5c:	68 61 06 00 00       	push   $0x661
561f61:	68 96 ef 69 00       	push   $0x69ef96
561f66:	68 34 ef 69 00       	push   $0x69ef34
561f6b:	e8 d0 8b ff ff       	call   0x55ab40
561f70:	83 c4 0c             	add    $0xc,%esp
561f73:	85 db                	test   %ebx,%ebx
561f75:	7e 0d                	jle    0x561f84
561f77:	8d 43 02             	lea    0x2(%ebx),%eax
561f7a:	b9 03 00 00 00       	mov    $0x3,%ecx
561f7f:	99                   	cltd
561f80:	f7 f9                	idiv   %ecx
561f82:	eb 02                	jmp    0x561f86
561f84:	33 c0                	xor    %eax,%eax
561f86:	8b d6                	mov    %esi,%edx
561f88:	66 81 c2 ff ff       	add    $0xffff,%dx
561f8d:	66 2b d0             	sub    %ax,%dx
561f90:	8b ce                	mov    %esi,%ecx
561f92:	66 03 cd             	add    %bp,%cx
561f95:	66 81 c1 ff ff       	add    $0xffff,%cx
561f9a:	66 2b ca             	sub    %dx,%cx
561f9d:	66 83 e1 1f          	and    $0x1f,%cx
561fa1:	c1 e1 0b             	shl    $0xb,%ecx
561fa4:	51                   	push   %ecx
561fa5:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
561faa:	a9 00 f8 ff ff       	test   $0xfffff800,%eax
561faf:	74 17                	je     0x561fc8
561fb1:	68 60 06 00 00       	push   $0x660
561fb6:	68 2a ef 69 00       	push   $0x69ef2a
561fbb:	68 15 ef 69 00       	push   $0x69ef15
561fc0:	e8 7b 8b ff ff       	call   0x55ab40
561fc5:	83 c4 0c             	add    $0xc,%esp
561fc8:	66 8b 54 24 0c       	mov    0xc(%esp),%dx
561fcd:	66 81 e2 ff 07       	and    $0x7ff,%dx
561fd2:	59                   	pop    %ecx
561fd3:	66 0b ca             	or     %dx,%cx
561fd6:	66 89 0f             	mov    %cx,(%edi)
561fd9:	43                   	inc    %ebx
561fda:	83 c7 02             	add    $0x2,%edi
561fdd:	8b 44 24 04          	mov    0x4(%esp),%eax
561fe1:	3b d8                	cmp    %eax,%ebx
561fe3:	0f 8c 4b ff ff ff    	jl     0x561f34
561fe9:	83 c4 0c             	add    $0xc,%esp
561fec:	5d                   	pop    %ebp
561fed:	5f                   	pop    %edi
561fee:	5e                   	pop    %esi
561fef:	5b                   	pop    %ebx
561ff0:	c3                   	ret
561ff1:	90                   	nop
561ff2:	90                   	nop
561ff3:	90                   	nop
561ff4:	53                   	push   %ebx
561ff5:	56                   	push   %esi
561ff6:	51                   	push   %ecx
561ff7:	89 04 24             	mov    %eax,(%esp)
561ffa:	33 f6                	xor    %esi,%esi
561ffc:	8b 04 24             	mov    (%esp),%eax
561fff:	8b 58 10             	mov    0x10(%eax),%ebx
562002:	eb 3c                	jmp    0x562040
562004:	f6 43 04 01          	testb  $0x1,0x4(%ebx)
562008:	75 16                	jne    0x562020
56200a:	33 d2                	xor    %edx,%edx
56200c:	8d 83 d7 00 00 00    	lea    0xd7(%ebx),%eax
562012:	c6 00 0f             	movb   $0xf,(%eax)
562015:	c6 40 21 0f          	movb   $0xf,0x21(%eax)
562019:	42                   	inc    %edx
56201a:	40                   	inc    %eax
56201b:	83 fa 21             	cmp    $0x21,%edx
56201e:	7c f2                	jl     0x562012
562020:	8a 4b 09             	mov    0x9(%ebx),%cl
562023:	80 f9 01             	cmp    $0x1,%cl
562026:	75 11                	jne    0x562039
562028:	8d 4b 0c             	lea    0xc(%ebx),%ecx
56202b:	33 d2                	xor    %edx,%edx
56202d:	8a 53 05             	mov    0x5(%ebx),%dl
562030:	66 8b 43 0c          	mov    0xc(%ebx),%ax
562034:	e8 c3 fe ff ff       	call   0x561efc
562039:	46                   	inc    %esi
56203a:	81 c3 1c 01 00 00    	add    $0x11c,%ebx
562040:	8b 04 24             	mov    (%esp),%eax
562043:	0f b7 50 0e          	movzwl 0xe(%eax),%edx
562047:	3b f2                	cmp    %edx,%esi
562049:	7c b9                	jl     0x562004
56204b:	33 c0                	xor    %eax,%eax
56204d:	5a                   	pop    %edx
56204e:	5e                   	pop    %esi
56204f:	5b                   	pop    %ebx
562050:	c3                   	ret
562051:	90                   	nop
562052:	90                   	nop
562053:	90                   	nop
562054:	53                   	push   %ebx
562055:	8b d8                	mov    %eax,%ebx
562057:	56                   	push   %esi
562058:	57                   	push   %edi
562059:	55                   	push   %ebp
56205a:	8b ea                	mov    %edx,%ebp
56205c:	83 0b 01             	orl    $0x1,(%ebx)
56205f:	8a 45 01             	mov    0x1(%ebp),%al
562062:	88 43 08             	mov    %al,0x8(%ebx)
562065:	8a 55 04             	mov    0x4(%ebp),%dl
562068:	84 d2                	test   %dl,%dl
56206a:	74 12                	je     0x56207e
56206c:	8a 4d 0d             	mov    0xd(%ebp),%cl
56206f:	84 c9                	test   %cl,%cl
562071:	75 04                	jne    0x562077
562073:	b0 01                	mov    $0x1,%al
562075:	eb 02                	jmp    0x562079
562077:	b0 02                	mov    $0x2,%al
562079:	88 43 0c             	mov    %al,0xc(%ebx)
56207c:	eb 04                	jmp    0x562082
56207e:	c6 43 0c 00          	movb   $0x0,0xc(%ebx)
562082:	66 8b 55 02          	mov    0x2(%ebp),%dx
562086:	66 89 53 0a          	mov    %dx,0xa(%ebx)
56208a:	8a 4d 00             	mov    0x0(%ebp),%cl
56208d:	80 e1 06             	and    $0x6,%cl
562090:	88 4b 0d             	mov    %cl,0xd(%ebx)
562093:	33 ff                	xor    %edi,%edi
562095:	8b 73 10             	mov    0x10(%ebx),%esi
562098:	eb 15                	jmp    0x5620af
56209a:	6a 00                	push   $0x0
56209c:	8d 4d 08             	lea    0x8(%ebp),%ecx
56209f:	8b d6                	mov    %esi,%edx
5620a1:	8b c3                	mov    %ebx,%eax
5620a3:	e8 40 00 00 00       	call   0x5620e8
5620a8:	47                   	inc    %edi
5620a9:	81 c6 1c 01 00 00    	add    $0x11c,%esi
5620af:	0f b7 43 0e          	movzwl 0xe(%ebx),%eax
5620b3:	3b f8                	cmp    %eax,%edi
5620b5:	7c e3                	jl     0x56209a
5620b7:	83 0b 01             	orl    $0x1,(%ebx)
5620ba:	33 c0                	xor    %eax,%eax
5620bc:	5d                   	pop    %ebp
5620bd:	5f                   	pop    %edi
5620be:	5e                   	pop    %esi
5620bf:	5b                   	pop    %ebx
5620c0:	c3                   	ret
5620c1:	90                   	nop
5620c2:	90                   	nop
5620c3:	90                   	nop
5620c4:	53                   	push   %ebx
5620c5:	6a 04                	push   $0x4
5620c7:	8d 4a 04             	lea    0x4(%edx),%ecx
5620ca:	0f b7 12             	movzwl (%edx),%edx
5620cd:	8b da                	mov    %edx,%ebx
5620cf:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
5620d2:	c1 e2 03             	shl    $0x3,%edx
5620d5:	2b d3                	sub    %ebx,%edx
5620d7:	c1 e2 02             	shl    $0x2,%edx
5620da:	8b 58 10             	mov    0x10(%eax),%ebx
5620dd:	03 d3                	add    %ebx,%edx
5620df:	e8 04 00 00 00       	call   0x5620e8
5620e4:	33 c0                	xor    %eax,%eax
5620e6:	5b                   	pop    %ebx
5620e7:	c3                   	ret
5620e8:	55                   	push   %ebp
5620e9:	8b ec                	mov    %esp,%ebp
5620eb:	53                   	push   %ebx
5620ec:	56                   	push   %esi
5620ed:	57                   	push   %edi
5620ee:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
5620f2:	75 05                	jne    0x5620f9
5620f4:	f6 02 04             	testb  $0x4,(%edx)
5620f7:	75 58                	jne    0x562151
5620f9:	8a 41 01             	mov    0x1(%ecx),%al
5620fc:	8d b2 d7 00 00 00    	lea    0xd7(%edx),%esi
562102:	40                   	inc    %eax
562103:	88 42 05             	mov    %al,0x5(%edx)
562106:	8a 41 02             	mov    0x2(%ecx),%al
562109:	04 02                	add    $0x2,%al
56210b:	88 42 06             	mov    %al,0x6(%edx)
56210e:	8a 41 03             	mov    0x3(%ecx),%al
562111:	04 02                	add    $0x2,%al
562113:	88 42 07             	mov    %al,0x7(%edx)
562116:	8a 41 05             	mov    0x5(%ecx),%al
562119:	88 42 08             	mov    %al,0x8(%edx)
56211c:	8a 41 04             	mov    0x4(%ecx),%al
56211f:	88 82 d6 00 00 00    	mov    %al,0xd6(%edx)
562125:	8a 01                	mov    (%ecx),%al
562127:	24 01                	and    $0x1,%al
562129:	33 ff                	xor    %edi,%edi
56212b:	88 42 04             	mov    %al,0x4(%edx)
56212e:	8d 41 0c             	lea    0xc(%ecx),%eax
562131:	eb 0f                	jmp    0x562142
562133:	8a 18                	mov    (%eax),%bl
562135:	47                   	inc    %edi
562136:	88 1e                	mov    %bl,(%esi)
562138:	8a 58 01             	mov    0x1(%eax),%bl
56213b:	88 5e 21             	mov    %bl,0x21(%esi)
56213e:	46                   	inc    %esi
56213f:	83 c0 02             	add    $0x2,%eax
562142:	8b 59 08             	mov    0x8(%ecx),%ebx
562145:	3b fb                	cmp    %ebx,%edi
562147:	7c ea                	jl     0x562133
562149:	8b 45 08             	mov    0x8(%ebp),%eax
56214c:	83 c8 01             	or     $0x1,%eax
56214f:	09 02                	or     %eax,(%edx)
562151:	33 c0                	xor    %eax,%eax
562153:	5f                   	pop    %edi
562154:	5e                   	pop    %esi
562155:	5b                   	pop    %ebx
562156:	5d                   	pop    %ebp
562157:	c2 04 00             	ret    $0x4
56215a:	90                   	nop
56215b:	90                   	nop
56215c:	53                   	push   %ebx
56215d:	8b d8                	mov    %eax,%ebx
56215f:	56                   	push   %esi
562160:	57                   	push   %edi
562161:	55                   	push   %ebp
562162:	8b ea                	mov    %edx,%ebp
562164:	8b 73 10             	mov    0x10(%ebx),%esi
562167:	33 ff                	xor    %edi,%edi
562169:	eb 14                	jmp    0x56217f
56216b:	6a 00                	push   $0x0
56216d:	8b cd                	mov    %ebp,%ecx
56216f:	8b d6                	mov    %esi,%edx
562171:	8b c3                	mov    %ebx,%eax
562173:	e8 40 00 00 00       	call   0x5621b8
562178:	47                   	inc    %edi
562179:	81 c6 1c 01 00 00    	add    $0x11c,%esi
56217f:	0f b7 43 0e          	movzwl 0xe(%ebx),%eax
562183:	3b f8                	cmp    %eax,%edi
562185:	7c e4                	jl     0x56216b
562187:	83 0b 02             	orl    $0x2,(%ebx)
56218a:	33 c0                	xor    %eax,%eax
56218c:	5d                   	pop    %ebp
56218d:	5f                   	pop    %edi
56218e:	5e                   	pop    %esi
56218f:	5b                   	pop    %ebx
562190:	c3                   	ret
562191:	90                   	nop
562192:	90                   	nop
562193:	90                   	nop
562194:	53                   	push   %ebx
562195:	6a 08                	push   $0x8
562197:	8d 4a 04             	lea    0x4(%edx),%ecx
56219a:	0f b7 12             	movzwl (%edx),%edx
56219d:	8b da                	mov    %edx,%ebx
56219f:	8d 14 d3             	lea    (%ebx,%edx,8),%edx
5621a2:	c1 e2 03             	shl    $0x3,%edx
5621a5:	2b d3                	sub    %ebx,%edx
5621a7:	c1 e2 02             	shl    $0x2,%edx
5621aa:	8b 58 10             	mov    0x10(%eax),%ebx
5621ad:	03 d3                	add    %ebx,%edx
5621af:	e8 04 00 00 00       	call   0x5621b8
5621b4:	5b                   	pop    %ebx
5621b5:	c3                   	ret
5621b6:	90                   	nop
5621b7:	90                   	nop
5621b8:	55                   	push   %ebp
5621b9:	8b ec                	mov    %esp,%ebp
5621bb:	53                   	push   %ebx
5621bc:	56                   	push   %esi
5621bd:	8b 45 08             	mov    0x8(%ebp),%eax
5621c0:	a8 08                	test   $0x8,%al
5621c2:	75 05                	jne    0x5621c9
5621c4:	f6 02 08             	testb  $0x8,(%edx)
5621c7:	75 37                	jne    0x562200
5621c9:	83 c8 02             	or     $0x2,%eax
5621cc:	09 02                	or     %eax,(%edx)
5621ce:	33 c0                	xor    %eax,%eax
5621d0:	8d 5a 0c             	lea    0xc(%edx),%ebx
5621d3:	eb 0e                	jmp    0x5621e3
5621d5:	8b 71 08             	mov    0x8(%ecx),%esi
5621d8:	66 8b 34 46          	mov    (%esi,%eax,2),%si
5621dc:	40                   	inc    %eax
5621dd:	66 89 33             	mov    %si,(%ebx)
5621e0:	83 c3 02             	add    $0x2,%ebx
5621e3:	8b 71 04             	mov    0x4(%ecx),%esi
5621e6:	3b c6                	cmp    %esi,%eax
5621e8:	7c eb                	jl     0x5621d5
5621ea:	66 8b 41 04          	mov    0x4(%ecx),%ax
5621ee:	66 89 42 0a          	mov    %ax,0xa(%edx)
5621f2:	8a 41 0c             	mov    0xc(%ecx),%al
5621f5:	88 82 d4 00 00 00    	mov    %al,0xd4(%edx)
5621fb:	8a 09                	mov    (%ecx),%cl
5621fd:	88 4a 09             	mov    %cl,0x9(%edx)
562200:	33 c0                	xor    %eax,%eax
562202:	5e                   	pop    %esi
562203:	5b                   	pop    %ebx
562204:	5d                   	pop    %ebp
562205:	c2 04 00             	ret    $0x4
562208:	53                   	push   %ebx
562209:	0f b7 0a             	movzwl (%edx),%ecx
56220c:	8b d9                	mov    %ecx,%ebx
56220e:	8b 40 10             	mov    0x10(%eax),%eax
562211:	8a 52 03             	mov    0x3(%edx),%dl
562214:	8d 0c cb             	lea    (%ebx,%ecx,8),%ecx
562217:	c1 e1 03             	shl    $0x3,%ecx
56221a:	2b cb                	sub    %ebx,%ecx
56221c:	c1 e1 02             	shl    $0x2,%ecx
56221f:	03 c1                	add    %ecx,%eax
562221:	88 90 d5 00 00 00    	mov    %dl,0xd5(%eax)
562227:	33 c0                	xor    %eax,%eax