567f25:	8b 57 14             	mov    0x14(%edi),%edx
567f28:	8b 0a                	mov    (%edx),%ecx
567f2a:	0f b7 01             	movzwl (%ecx),%eax
567f2d:	01 07                	add    %eax,(%edi)
567f2f:	8b 07                	mov    (%edi),%eax
567f31:	eb 07                	jmp    0x567f3a
567f33:	8b c7                	mov    %edi,%eax
567f35:	e8 f2 a7 00 00       	call   0x57272c
567f3a:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
567f40:	ff 4d f4             	decl   -0xc(%ebp)
567f43:	83 45 c4 04          	addl   $0x4,-0x3c(%ebp)
567f47:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
567f4b:	8b 55 f4             	mov    -0xc(%ebp),%edx
567f4e:	85 d2                	test   %edx,%edx
567f50:	0f 8f 72 fb ff ff    	jg     0x567ac8
567f56:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
567f5a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
567f5d:	c1 e1 02             	shl    $0x2,%ecx
567f60:	01 4d cc             	add    %ecx,-0x34(%ebp)
567f63:	8b 45 d0             	mov    -0x30(%ebp),%eax
567f66:	c1 e0 02             	shl    $0x2,%eax
567f69:	01 45 c8             	add    %eax,-0x38(%ebp)
567f6c:	8b 55 f8             	mov    -0x8(%ebp),%edx
567f6f:	85 d2                	test   %edx,%edx
567f71:	0f 8f 1f fb ff ff    	jg     0x567a96
567f77:	8b 4d 0c             	mov    0xc(%ebp),%ecx
567f7a:	85 c9                	test   %ecx,%ecx
567f7c:	74 0b                	je     0x567f89
567f7e:	8b 55 0c             	mov    0xc(%ebp),%edx
567f81:	8b c7                	mov    %edi,%eax
567f83:	4a                   	dec    %edx
567f84:	e8 87 aa 00 00       	call   0x572a10
567f89:	8b 4f 20             	mov    0x20(%edi),%ecx
567f8c:	85 c9                	test   %ecx,%ecx
567f8e:	74 05                	je     0x567f95
567f90:	83 c8 ff             	or     $0xffffffff,%eax
567f93:	eb 02                	jmp    0x567f97
567f95:	33 c0                	xor    %eax,%eax
567f97:	5f                   	pop    %edi
567f98:	5e                   	pop    %esi
567f99:	5b                   	pop    %ebx
567f9a:	8b e5                	mov    %ebp,%esp
567f9c:	5d                   	pop    %ebp
567f9d:	c2 10 00             	ret    $0x10
567fa0:	55                   	push   %ebp
567fa1:	8b ec                	mov    %esp,%ebp
567fa3:	83 c4 9c             	add    $0xffffff9c,%esp
567fa6:	53                   	push   %ebx
567fa7:	56                   	push   %esi
567fa8:	57                   	push   %edi
567fa9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
567fac:	8b d8                	mov    %eax,%ebx
567fae:	8b 45 08             	mov    0x8(%ebp),%eax
567fb1:	8b f2                	mov    %edx,%esi
567fb3:	33 d2                	xor    %edx,%edx
567fb5:	89 10                	mov    %edx,(%eax)
567fb7:	8b 4d 10             	mov    0x10(%ebp),%ecx
567fba:	8b 41 18             	mov    0x18(%ecx),%eax
567fbd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
567fc0:	8b 55 10             	mov    0x10(%ebp),%edx
567fc3:	8b 4a 14             	mov    0x14(%edx),%ecx
567fc6:	89 4d e0             	mov    %ecx,-0x20(%ebp)
567fc9:	8b 45 14             	mov    0x14(%ebp),%eax
567fcc:	8b 50 14             	mov    0x14(%eax),%edx
567fcf:	4a                   	dec    %edx
567fd0:	7e 1f                	jle    0x567ff1
567fd2:	8b 4d 14             	mov    0x14(%ebp),%ecx
567fd5:	8b 41 1c             	mov    0x1c(%ecx),%eax
567fd8:	8b 4d 14             	mov    0x14(%ebp),%ecx
567fdb:	8b 50 04             	mov    0x4(%eax),%edx
567fde:	8b 41 1c             	mov    0x1c(%ecx),%eax
567fe1:	8b 08                	mov    (%eax),%ecx
567fe3:	2b d1                	sub    %ecx,%edx
567fe5:	85 d2                	test   %edx,%edx
567fe7:	79 03                	jns    0x567fec
567fe9:	83 c2 03             	add    $0x3,%edx
567fec:	c1 fa 02             	sar    $0x2,%edx
567fef:	eb 02                	jmp    0x567ff3
567ff1:	33 d2                	xor    %edx,%edx
567ff3:	89 55 dc             	mov    %edx,-0x24(%ebp)
567ff6:	8b 45 10             	mov    0x10(%ebp),%eax
567ff9:	8b 50 14             	mov    0x14(%eax),%edx
567ffc:	4a                   	dec    %edx
567ffd:	7e 1f                	jle    0x56801e
567fff:	8b 4d 10             	mov    0x10(%ebp),%ecx
568002:	8b 41 1c             	mov    0x1c(%ecx),%eax
568005:	8b 4d 10             	mov    0x10(%ebp),%ecx
568008:	8b 50 04             	mov    0x4(%eax),%edx
56800b:	8b 41 1c             	mov    0x1c(%ecx),%eax
56800e:	8b 08                	mov    (%eax),%ecx
568010:	2b d1                	sub    %ecx,%edx
568012:	85 d2                	test   %edx,%edx
568014:	79 03                	jns    0x568019
568016:	83 c2 03             	add    $0x3,%edx
568019:	c1 fa 02             	sar    $0x2,%edx
56801c:	eb 02                	jmp    0x568020
56801e:	33 d2                	xor    %edx,%edx
568020:	89 55 d8             	mov    %edx,-0x28(%ebp)
568023:	8d 4e 06             	lea    0x6(%esi),%ecx
568026:	8b 45 dc             	mov    -0x24(%ebp),%eax
568029:	c1 e0 02             	shl    $0x2,%eax
56802c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
56802f:	b8 01 00 00 00       	mov    $0x1,%eax
568034:	d3 e0                	shl    %cl,%eax
568036:	8b 55 d8             	mov    -0x28(%ebp),%edx
568039:	c1 e2 02             	shl    $0x2,%edx
56803c:	89 55 d0             	mov    %edx,-0x30(%ebp)
56803f:	89 45 ec             	mov    %eax,-0x14(%ebp)
568042:	8b 55 14             	mov    0x14(%ebp),%edx
568045:	8b 4a 1c             	mov    0x1c(%edx),%ecx
568048:	8b 41 04             	mov    0x4(%ecx),%eax
56804b:	83 c0 04             	add    $0x4,%eax
56804e:	89 45 cc             	mov    %eax,-0x34(%ebp)
568051:	8b 55 10             	mov    0x10(%ebp),%edx
568054:	8b 4a 1c             	mov    0x1c(%edx),%ecx
568057:	8b 01                	mov    (%ecx),%eax
568059:	89 45 c8             	mov    %eax,-0x38(%ebp)
56805c:	8b 55 e0             	mov    -0x20(%ebp),%edx
56805f:	89 55 f8             	mov    %edx,-0x8(%ebp)
568062:	8b 4d f8             	mov    -0x8(%ebp),%ecx
568065:	85 c9                	test   %ecx,%ecx
568067:	0f 8e 82 07 00 00    	jle    0x5687ef
56806d:	8b 45 cc             	mov    -0x34(%ebp),%eax
568070:	89 45 c4             	mov    %eax,-0x3c(%ebp)
568073:	8b 55 c8             	mov    -0x38(%ebp),%edx
568076:	89 55 c0             	mov    %edx,-0x40(%ebp)
568079:	8b 4d f8             	mov    -0x8(%ebp),%ecx
56807c:	83 f9 04             	cmp    $0x4,%ecx
56807f:	7d 05                	jge    0x568086
568081:	8b 45 f8             	mov    -0x8(%ebp),%eax
568084:	eb 05                	jmp    0x56808b
568086:	b8 04 00 00 00       	mov    $0x4,%eax
56808b:	89 45 e8             	mov    %eax,-0x18(%ebp)
56808e:	8b 55 e4             	mov    -0x1c(%ebp),%edx
568091:	89 55 f4             	mov    %edx,-0xc(%ebp)
568094:	8b 4d f4             	mov    -0xc(%ebp),%ecx
568097:	85 c9                	test   %ecx,%ecx
568099:	0f 8e 2f 07 00 00    	jle    0x5687ce
56809f:	8b 7d c4             	mov    -0x3c(%ebp),%edi
5680a2:	8b 45 c0             	mov    -0x40(%ebp),%eax
5680a5:	89 45 bc             	mov    %eax,-0x44(%ebp)
5680a8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5680ab:	89 55 f0             	mov    %edx,-0x10(%ebp)
5680ae:	8b 0f                	mov    (%edi),%ecx
5680b0:	81 e1 00 50 00 00    	and    $0x5000,%ecx
5680b6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
5680bc:	0f 85 98 01 00 00    	jne    0x56825a
5680c2:	8b 45 bc             	mov    -0x44(%ebp),%eax
5680c5:	8d 4e 06             	lea    0x6(%esi),%ecx
5680c8:	83 f9 06             	cmp    $0x6,%ecx
5680cb:	8b 10                	mov    (%eax),%edx
5680cd:	89 55 b8             	mov    %edx,-0x48(%ebp)
5680d0:	7e 2c                	jle    0x5680fe
5680d2:	85 f6                	test   %esi,%esi
5680d4:	7c 0e                	jl     0x5680e4
5680d6:	8b ce                	mov    %esi,%ecx
5680d8:	8b 45 b8             	mov    -0x48(%ebp),%eax
5680db:	99                   	cltd
5680dc:	33 c2                	xor    %edx,%eax
5680de:	2b c2                	sub    %edx,%eax
5680e0:	d3 f8                	sar    %cl,%eax
5680e2:	eb 0e                	jmp    0x5680f2
5680e4:	8b 45 b8             	mov    -0x48(%ebp),%eax
5680e7:	8b ce                	mov    %esi,%ecx
5680e9:	99                   	cltd
5680ea:	33 c2                	xor    %edx,%eax
5680ec:	f7 d9                	neg    %ecx
5680ee:	2b c2                	sub    %edx,%eax
5680f0:	d3 e0                	shl    %cl,%eax
5680f2:	83 e0 7f             	and    $0x7f,%eax
5680f5:	8b 04 85 24 0e 6b 00 	mov    0x6b0e24(,%eax,4),%eax
5680fc:	eb 2a                	jmp    0x568128
5680fe:	85 f6                	test   %esi,%esi
568100:	7c 0e                	jl     0x568110
568102:	8b ce                	mov    %esi,%ecx
568104:	8b 45 b8             	mov    -0x48(%ebp),%eax
568107:	99                   	cltd
568108:	33 c2                	xor    %edx,%eax
56810a:	2b c2                	sub    %edx,%eax
56810c:	d3 f8                	sar    %cl,%eax
56810e:	eb 0e                	jmp    0x56811e
568110:	8b 45 b8             	mov    -0x48(%ebp),%eax
568113:	8b ce                	mov    %esi,%ecx
568115:	99                   	cltd
568116:	33 c2                	xor    %edx,%eax
568118:	f7 d9                	neg    %ecx
56811a:	2b c2                	sub    %edx,%eax
56811c:	d3 e0                	shl    %cl,%eax
56811e:	83 e0 7f             	and    $0x7f,%eax
568121:	8b 04 85 2c 12 6b 00 	mov    0x6b122c(,%eax,4),%eax
568128:	8b 55 08             	mov    0x8(%ebp),%edx
56812b:	01 02                	add    %eax,(%edx)
56812d:	8b 45 b8             	mov    -0x48(%ebp),%eax
568130:	99                   	cltd
568131:	33 c2                	xor    %edx,%eax
568133:	2b c2                	sub    %edx,%eax
568135:	8b 4d ec             	mov    -0x14(%ebp),%ecx
568138:	23 c1                	and    %ecx,%eax
56813a:	74 07                	je     0x568143
56813c:	b8 01 00 00 00       	mov    $0x1,%eax
568141:	eb 02                	jmp    0x568145
568143:	33 c0                	xor    %eax,%eax
568145:	89 45 b4             	mov    %eax,-0x4c(%ebp)
568148:	f6 43 10 02          	testb  $0x2,0x10(%ebx)
56814c:	75 17                	jne    0x568165
56814e:	68 30 03 00 00       	push   $0x330
568153:	68 3f f8 69 00       	push   $0x69f83f
568158:	68 16 f8 69 00       	push   $0x69f816
56815d:	e8 de 29 ff ff       	call   0x55ab40
568162:	83 c4 0c             	add    $0xc,%esp
568165:	ff 4b 08             	decl   0x8(%ebx)
568168:	0f 89 c3 00 00 00    	jns    0x568231
56816e:	66 8b 53 04          	mov    0x4(%ebx),%dx
568172:	c1 e2 08             	shl    $0x8,%edx
568175:	66 81 e2 ff ff       	and    $0xffff,%dx
56817a:	66 89 53 04          	mov    %dx,0x4(%ebx)
56817e:	66 81 7b 04 00 ff    	cmpw   $0xff00,0x4(%ebx)
568184:	75 07                	jne    0x56818d
568186:	b9 06 00 00 00       	mov    $0x6,%ecx
56818b:	eb 05                	jmp    0x568192
56818d:	b9 07 00 00 00       	mov    $0x7,%ecx
568192:	89 4b 08             	mov    %ecx,0x8(%ebx)
568195:	66 8b 45 b4          	mov    -0x4c(%ebp),%ax
568199:	8b 4b 08             	mov    0x8(%ebx),%ecx
56819c:	66 83 e0 01          	and    $0x1,%ax
5681a0:	66 d3 e0             	shl    %cl,%ax
5681a3:	66 09 43 04          	or     %ax,0x4(%ebx)
5681a7:	8b 53 0c             	mov    0xc(%ebx),%edx
5681aa:	f6 42 08 07          	testb  $0x7,0x8(%edx)
5681ae:	75 6e                	jne    0x56821e
5681b0:	8b 43 0c             	mov    0xc(%ebx),%eax
5681b3:	8b 50 40             	mov    0x40(%eax),%edx
5681b6:	85 d2                	test   %edx,%edx
5681b8:	7c 1c                	jl     0x5681d6
5681ba:	8b 4b 0c             	mov    0xc(%ebx),%ecx
5681bd:	8b 53 0c             	mov    0xc(%ebx),%edx
5681c0:	8b 41 40             	mov    0x40(%ecx),%eax
5681c3:	8b 4a 3c             	mov    0x3c(%edx),%ecx
5681c6:	3b c1                	cmp    %ecx,%eax
5681c8:	7f 0c                	jg     0x5681d6
5681ca:	8b 43 0c             	mov    0xc(%ebx),%eax
5681cd:	83 48 08 04          	orl    $0x4,0x8(%eax)
5681d1:	83 ca ff             	or     $0xffffffff,%edx
5681d4:	eb 4b                	jmp    0x568221
5681d6:	8b 4b 0c             	mov    0xc(%ebx),%ecx
5681d9:	83 49 04 20          	orl    $0x20,0x4(%ecx)
5681dd:	8b 43 0c             	mov    0xc(%ebx),%eax
5681e0:	ff 48 1c             	decl   0x1c(%eax)
5681e3:	79 19                	jns    0x5681fe
5681e5:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
5681e9:	c1 fa 08             	sar    $0x8,%edx
5681ec:	8b 43 0c             	mov    0xc(%ebx),%eax
5681ef:	81 e2 ff 00 00 00    	and    $0xff,%edx
5681f5:	e8 1e 0c 01 00       	call   0x578e18
5681fa:	8b d0                	mov    %eax,%edx
5681fc:	eb 23                	jmp    0x568221
5681fe:	8b 43 0c             	mov    0xc(%ebx),%eax
568201:	ff 40 3c             	incl   0x3c(%eax)
568204:	8b 4b 0c             	mov    0xc(%ebx),%ecx
568207:	8b 41 18             	mov    0x18(%ecx),%eax
56820a:	ff 41 18             	incl   0x18(%ecx)
56820d:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
568211:	c1 fa 08             	sar    $0x8,%edx
568214:	88 10                	mov    %dl,(%eax)
568216:	81 e2 ff 00 00 00    	and    $0xff,%edx
56821c:	eb 03                	jmp    0x568221
56821e:	83 ca ff             	or     $0xffffffff,%edx
568221:	42                   	inc    %edx
568222:	75 05                	jne    0x568229
568224:	83 c8 ff             	or     $0xffffffff,%eax
568227:	eb 20                	jmp    0x568249
568229:	8b 45 b4             	mov    -0x4c(%ebp),%eax
56822c:	83 e0 01             	and    $0x1,%eax
56822f:	eb 18                	jmp    0x568249
568231:	66 8b 55 b4          	mov    -0x4c(%ebp),%dx
568235:	8b 4b 08             	mov    0x8(%ebx),%ecx
568238:	66 83 e2 01          	and    $0x1,%dx
56823c:	66 d3 e2             	shl    %cl,%dx
56823f:	66 09 53 04          	or     %dx,0x4(%ebx)
568243:	8b 45 b4             	mov    -0x4c(%ebp),%eax
568246:	83 e0 01             	and    $0x1,%eax
568249:	40                   	inc    %eax
56824a:	75 08                	jne    0x568254
56824c:	83 c8 ff             	or     $0xffffffff,%eax
56824f:	e9 b0 05 00 00       	jmp    0x568804
568254:	81 0f 00 20 00 00    	orl    $0x2000,(%edi)
56825a:	ff 4d f0             	decl   -0x10(%ebp)
56825d:	8b 55 f0             	mov    -0x10(%ebp),%edx
568260:	85 d2                	test   %edx,%edx
568262:	0f 8e 50 05 00 00    	jle    0x5687b8
568268:	8b 4d dc             	mov    -0x24(%ebp),%ecx
56826b:	8b 45 d8             	mov    -0x28(%ebp),%eax
56826e:	c1 e1 02             	shl    $0x2,%ecx
568271:	c1 e0 02             	shl    $0x2,%eax
568274:	03 f9                	add    %ecx,%edi
568276:	01 45 bc             	add    %eax,-0x44(%ebp)
568279:	8b 17                	mov    (%edi),%edx
56827b:	81 e2 00 50 00 00    	and    $0x5000,%edx
568281:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
568287:	0f 85 98 01 00 00    	jne    0x568425
56828d:	8b 4d bc             	mov    -0x44(%ebp),%ecx
568290:	8d 56 06             	lea    0x6(%esi),%edx
568293:	83 fa 06             	cmp    $0x6,%edx
568296:	8b 01                	mov    (%ecx),%eax
568298:	89 45 b0             	mov    %eax,-0x50(%ebp)
56829b:	7e 2c                	jle    0x5682c9
56829d:	85 f6                	test   %esi,%esi
56829f:	7c 0e                	jl     0x5682af
5682a1:	8b ce                	mov    %esi,%ecx
5682a3:	8b 45 b0             	mov    -0x50(%ebp),%eax
5682a6:	99                   	cltd
5682a7:	33 c2                	xor    %edx,%eax
5682a9:	2b c2                	sub    %edx,%eax
5682ab:	d3 f8                	sar    %cl,%eax
5682ad:	eb 0e                	jmp    0x5682bd
5682af:	8b 45 b0             	mov    -0x50(%ebp),%eax
5682b2:	8b ce                	mov    %esi,%ecx
5682b4:	99                   	cltd
5682b5:	33 c2                	xor    %edx,%eax
5682b7:	f7 d9                	neg    %ecx
5682b9:	2b c2                	sub    %edx,%eax
5682bb:	d3 e0                	shl    %cl,%eax
5682bd:	83 e0 7f             	and    $0x7f,%eax
5682c0:	8b 0c 85 24 0e 6b 00 	mov    0x6b0e24(,%eax,4),%ecx
5682c7:	eb 2a                	jmp    0x5682f3
5682c9:	85 f6                	test   %esi,%esi
5682cb:	7c 0e                	jl     0x5682db
5682cd:	8b ce                	mov    %esi,%ecx
5682cf:	8b 45 b0             	mov    -0x50(%ebp),%eax
5682d2:	99                   	cltd
5682d3:	33 c2                	xor    %edx,%eax
5682d5:	2b c2                	sub    %edx,%eax
5682d7:	d3 f8                	sar    %cl,%eax
5682d9:	eb 0e                	jmp    0x5682e9
5682db:	8b 45 b0             	mov    -0x50(%ebp),%eax
5682de:	8b ce                	mov    %esi,%ecx
5682e0:	99                   	cltd
5682e1:	33 c2                	xor    %edx,%eax
5682e3:	f7 d9                	neg    %ecx
5682e5:	2b c2                	sub    %edx,%eax
5682e7:	d3 e0                	shl    %cl,%eax
5682e9:	83 e0 7f             	and    $0x7f,%eax
5682ec:	8b 0c 85 2c 12 6b 00 	mov    0x6b122c(,%eax,4),%ecx
5682f3:	8b 45 08             	mov    0x8(%ebp),%eax
5682f6:	01 08                	add    %ecx,(%eax)
5682f8:	8b 45 b0             	mov    -0x50(%ebp),%eax
5682fb:	99                   	cltd
5682fc:	33 c2                	xor    %edx,%eax
5682fe:	2b c2                	sub    %edx,%eax
568300:	8b 4d ec             	mov    -0x14(%ebp),%ecx