566059:	8b 4d 10             	mov    0x10(%ebp),%ecx
56605c:	8b 50 04             	mov    0x4(%eax),%edx
56605f:	8b 41 1c             	mov    0x1c(%ecx),%eax
566062:	8b 08                	mov    (%eax),%ecx
566064:	2b d1                	sub    %ecx,%edx
566066:	85 d2                	test   %edx,%edx
566068:	79 03                	jns    0x56606d
56606a:	83 c2 03             	add    $0x3,%edx
56606d:	c1 fa 02             	sar    $0x2,%edx
566070:	eb 02                	jmp    0x566074
566072:	33 d2                	xor    %edx,%edx
566074:	89 55 dc             	mov    %edx,-0x24(%ebp)
566077:	8d 4f 06             	lea    0x6(%edi),%ecx
56607a:	8b 45 e0             	mov    -0x20(%ebp),%eax
56607d:	c1 e0 02             	shl    $0x2,%eax
566080:	89 45 d8             	mov    %eax,-0x28(%ebp)
566083:	b8 01 00 00 00       	mov    $0x1,%eax
566088:	d3 e0                	shl    %cl,%eax
56608a:	8b 55 dc             	mov    -0x24(%ebp),%edx
56608d:	c1 e2 02             	shl    $0x2,%edx
566090:	89 55 d4             	mov    %edx,-0x2c(%ebp)
566093:	89 45 f0             	mov    %eax,-0x10(%ebp)
566096:	8b 55 14             	mov    0x14(%ebp),%edx
566099:	8b 4a 1c             	mov    0x1c(%edx),%ecx
56609c:	8b 41 04             	mov    0x4(%ecx),%eax
56609f:	83 c0 04             	add    $0x4,%eax
5660a2:	89 45 d0             	mov    %eax,-0x30(%ebp)
5660a5:	8b 55 10             	mov    0x10(%ebp),%edx
5660a8:	8b 4a 1c             	mov    0x1c(%edx),%ecx
5660ab:	8b 01                	mov    (%ecx),%eax
5660ad:	89 45 cc             	mov    %eax,-0x34(%ebp)
5660b0:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5660b3:	89 55 f8             	mov    %edx,-0x8(%ebp)
5660b6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5660b9:	85 c9                	test   %ecx,%ecx
5660bb:	0f 8e 8e 09 00 00    	jle    0x566a4f
5660c1:	8b 45 d0             	mov    -0x30(%ebp),%eax
5660c4:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5660c7:	8b 55 cc             	mov    -0x34(%ebp),%edx
5660ca:	89 55 c0             	mov    %edx,-0x40(%ebp)
5660cd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5660d0:	83 f9 04             	cmp    $0x4,%ecx
5660d3:	7d 05                	jge    0x5660da
5660d5:	8b 45 f8             	mov    -0x8(%ebp),%eax
5660d8:	eb 05                	jmp    0x5660df
5660da:	b8 04 00 00 00       	mov    $0x4,%eax
5660df:	89 45 ec             	mov    %eax,-0x14(%ebp)
5660e2:	8b 55 e8             	mov    -0x18(%ebp),%edx
5660e5:	89 55 f4             	mov    %edx,-0xc(%ebp)
5660e8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5660eb:	85 c9                	test   %ecx,%ecx
5660ed:	0f 8e 3b 09 00 00    	jle    0x566a2e
5660f3:	8b 75 c4             	mov    -0x3c(%ebp),%esi
5660f6:	8b 45 c0             	mov    -0x40(%ebp),%eax
5660f9:	89 45 c8             	mov    %eax,-0x38(%ebp)
5660fc:	8b 55 ec             	mov    -0x14(%ebp),%edx
5660ff:	89 55 bc             	mov    %edx,-0x44(%ebp)
566102:	8b 0e                	mov    (%esi),%ecx
566104:	89 4d b8             	mov    %ecx,-0x48(%ebp)
566107:	f6 45 b8 ff          	testb  $0xff,-0x48(%ebp)
56610b:	0f 84 20 02 00 00    	je     0x566331
566111:	f6 45 b9 50          	testb  $0x50,-0x47(%ebp)
566115:	0f 85 16 02 00 00    	jne    0x566331
56611b:	8b 45 c8             	mov    -0x38(%ebp),%eax
56611e:	8b 00                	mov    (%eax),%eax
566120:	99                   	cltd
566121:	33 c2                	xor    %edx,%eax
566123:	2b c2                	sub    %edx,%eax
566125:	8b 4d f0             	mov    -0x10(%ebp),%ecx
566128:	23 c1                	and    %ecx,%eax
56612a:	74 07                	je     0x566133
56612c:	b8 01 00 00 00       	mov    $0x1,%eax
566131:	eb 02                	jmp    0x566135
566133:	33 c0                	xor    %eax,%eax
566135:	89 45 b4             	mov    %eax,-0x4c(%ebp)
566138:	8b 55 fc             	mov    -0x4(%ebp),%edx
56613b:	8b 4d b8             	mov    -0x48(%ebp),%ecx
56613e:	c1 e2 08             	shl    $0x8,%edx
566141:	81 e1 ff 00 00 00    	and    $0xff,%ecx
566147:	0b d1                	or     %ecx,%edx
566149:	8b 04 95 10 b4 6a 00 	mov    0x6ab410(,%edx,4),%eax
566150:	8b 53 10             	mov    0x10(%ebx),%edx
566153:	c1 e0 02             	shl    $0x2,%eax
566156:	03 c2                	add    %edx,%eax
566158:	89 43 14             	mov    %eax,0x14(%ebx)
56615b:	8b 08                	mov    (%eax),%ecx
56615d:	8b 55 b4             	mov    -0x4c(%ebp),%edx
566160:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
566164:	3b c2                	cmp    %edx,%eax
566166:	75 28                	jne    0x566190
566168:	8b 4b 14             	mov    0x14(%ebx),%ecx
56616b:	8b 01                	mov    (%ecx),%eax
56616d:	0f b7 10             	movzwl (%eax),%edx
566170:	29 53 04             	sub    %edx,0x4(%ebx)
566173:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
566177:	75 09                	jne    0x566182
566179:	8b c3                	mov    %ebx,%eax
56617b:	e8 cc c2 00 00       	call   0x57244c
566180:	eb 15                	jmp    0x566197
566182:	8b 53 14             	mov    0x14(%ebx),%edx
566185:	8b 0a                	mov    (%edx),%ecx
566187:	0f b7 01             	movzwl (%ecx),%eax
56618a:	01 03                	add    %eax,(%ebx)
56618c:	8b 03                	mov    (%ebx),%eax
56618e:	eb 07                	jmp    0x566197
566190:	8b c3                	mov    %ebx,%eax
566192:	e8 95 c5 00 00       	call   0x57272c
566197:	8b 55 b4             	mov    -0x4c(%ebp),%edx
56619a:	85 d2                	test   %edx,%edx
56619c:	0f 84 89 01 00 00    	je     0x56632b
5661a2:	8d 4f 06             	lea    0x6(%edi),%ecx
5661a5:	83 f9 06             	cmp    $0x6,%ecx
5661a8:	7e 30                	jle    0x5661da
5661aa:	85 ff                	test   %edi,%edi
5661ac:	7c 10                	jl     0x5661be
5661ae:	8b cf                	mov    %edi,%ecx
5661b0:	8b 45 c8             	mov    -0x38(%ebp),%eax
5661b3:	8b 00                	mov    (%eax),%eax
5661b5:	99                   	cltd
5661b6:	33 c2                	xor    %edx,%eax
5661b8:	2b c2                	sub    %edx,%eax
5661ba:	d3 f8                	sar    %cl,%eax
5661bc:	eb 10                	jmp    0x5661ce
5661be:	8b 45 c8             	mov    -0x38(%ebp),%eax
5661c1:	8b cf                	mov    %edi,%ecx
5661c3:	f7 d9                	neg    %ecx
5661c5:	8b 00                	mov    (%eax),%eax
5661c7:	99                   	cltd
5661c8:	33 c2                	xor    %edx,%eax
5661ca:	2b c2                	sub    %edx,%eax
5661cc:	d3 e0                	shl    %cl,%eax
5661ce:	83 e0 7f             	and    $0x7f,%eax
5661d1:	8b 0c 85 20 0c 6b 00 	mov    0x6b0c20(,%eax,4),%ecx
5661d8:	eb 2e                	jmp    0x566208
5661da:	85 ff                	test   %edi,%edi
5661dc:	7c 10                	jl     0x5661ee
5661de:	8b cf                	mov    %edi,%ecx
5661e0:	8b 45 c8             	mov    -0x38(%ebp),%eax
5661e3:	8b 00                	mov    (%eax),%eax
5661e5:	99                   	cltd
5661e6:	33 c2                	xor    %edx,%eax
5661e8:	2b c2                	sub    %edx,%eax
5661ea:	d3 f8                	sar    %cl,%eax
5661ec:	eb 10                	jmp    0x5661fe
5661ee:	8b 45 c8             	mov    -0x38(%ebp),%eax
5661f1:	8b cf                	mov    %edi,%ecx
5661f3:	f7 d9                	neg    %ecx
5661f5:	8b 00                	mov    (%eax),%eax
5661f7:	99                   	cltd
5661f8:	33 c2                	xor    %edx,%eax
5661fa:	2b c2                	sub    %edx,%eax
5661fc:	d3 e0                	shl    %cl,%eax
5661fe:	83 e0 7f             	and    $0x7f,%eax
566201:	8b 0c 85 28 10 6b 00 	mov    0x6b1028(,%eax,4),%ecx
566208:	8b 45 08             	mov    0x8(%ebp),%eax
56620b:	01 08                	add    %ecx,(%eax)
56620d:	8b 55 c8             	mov    -0x38(%ebp),%edx
566210:	8b 0a                	mov    (%edx),%ecx
566212:	85 c9                	test   %ecx,%ecx
566214:	7d 07                	jge    0x56621d
566216:	b8 01 00 00 00       	mov    $0x1,%eax
56621b:	eb 02                	jmp    0x56621f
56621d:	33 c0                	xor    %eax,%eax
56621f:	89 45 b4             	mov    %eax,-0x4c(%ebp)
566222:	8b 55 b8             	mov    -0x48(%ebp),%edx
566225:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
56622b:	c1 fa 04             	sar    $0x4,%edx
56622e:	8b 04 95 18 c8 6a 00 	mov    0x6ac818(,%edx,4),%eax
566235:	8b 53 10             	mov    0x10(%ebx),%edx
566238:	c1 e0 02             	shl    $0x2,%eax
56623b:	03 c2                	add    %edx,%eax
56623d:	89 43 14             	mov    %eax,0x14(%ebx)
566240:	8b 08                	mov    (%eax),%ecx
566242:	8b 55 b8             	mov    -0x48(%ebp),%edx
566245:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
56624b:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
56624f:	c1 fa 04             	sar    $0x4,%edx
566252:	8b 0c 95 14 c4 6a 00 	mov    0x6ac414(,%edx,4),%ecx
566259:	8b 55 b4             	mov    -0x4c(%ebp),%edx
56625c:	33 ca                	xor    %edx,%ecx
56625e:	3b c1                	cmp    %ecx,%eax
566260:	75 28                	jne    0x56628a
566262:	8b 43 14             	mov    0x14(%ebx),%eax
566265:	8b 08                	mov    (%eax),%ecx
566267:	0f b7 01             	movzwl (%ecx),%eax
56626a:	29 43 04             	sub    %eax,0x4(%ebx)
56626d:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
566271:	75 09                	jne    0x56627c
566273:	8b c3                	mov    %ebx,%eax
566275:	e8 d2 c1 00 00       	call   0x57244c
56627a:	eb 15                	jmp    0x566291
56627c:	8b 53 14             	mov    0x14(%ebx),%edx
56627f:	8b 0a                	mov    (%edx),%ecx
566281:	0f b7 01             	movzwl (%ecx),%eax
566284:	01 03                	add    %eax,(%ebx)
566286:	8b 03                	mov    (%ebx),%eax
566288:	eb 07                	jmp    0x566291
56628a:	8b c3                	mov    %ebx,%eax
56628c:	e8 9b c4 00 00       	call   0x57272c
566291:	8b 55 e0             	mov    -0x20(%ebp),%edx
566294:	c1 e2 02             	shl    $0x2,%edx
566297:	52                   	push   %edx
566298:	8b d6                	mov    %esi,%edx
56629a:	58                   	pop    %eax
56629b:	2b d0                	sub    %eax,%edx
56629d:	8b 45 e0             	mov    -0x20(%ebp),%eax
5662a0:	c1 e0 02             	shl    $0x2,%eax
5662a3:	03 c6                	add    %esi,%eax
5662a5:	8b 4d 18             	mov    0x18(%ebp),%ecx
5662a8:	85 c9                	test   %ecx,%ecx
5662aa:	74 35                	je     0x5662e1
5662ac:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
5662b0:	83 48 04 08          	orl    $0x8,0x4(%eax)
5662b4:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5662b7:	85 d2                	test   %edx,%edx
5662b9:	74 16                	je     0x5662d1
5662bb:	81 08 10 01 00 00    	orl    $0x110,(%eax)
5662c1:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5662c8:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5662cf:	eb 54                	jmp    0x566325
5662d1:	83 08 10             	orl    $0x10,(%eax)
5662d4:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
5662d8:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
5662df:	eb 44                	jmp    0x566325
5662e1:	83 4a fc 02          	orl    $0x2,-0x4(%edx)
5662e5:	83 4a 04 04          	orl    $0x4,0x4(%edx)
5662e9:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
5662ed:	83 48 04 08          	orl    $0x8,0x4(%eax)
5662f1:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
5662f4:	85 c9                	test   %ecx,%ecx
5662f6:	74 1c                	je     0x566314
5662f8:	81 0a 40 04 00 00    	orl    $0x440,(%edx)
5662fe:	81 08 10 01 00 00    	orl    $0x110,(%eax)
566304:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
56630b:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
566312:	eb 11                	jmp    0x566325
566314:	83 0a 40             	orl    $0x40,(%edx)
566317:	83 08 10             	orl    $0x10,(%eax)
56631a:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
56631e:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
566325:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
56632b:	81 0e 00 40 00 00    	orl    $0x4000,(%esi)
566331:	ff 4d bc             	decl   -0x44(%ebp)
566334:	8b 45 bc             	mov    -0x44(%ebp),%eax
566337:	85 c0                	test   %eax,%eax
566339:	0f 8e d9 06 00 00    	jle    0x566a18
56633f:	8b 55 e0             	mov    -0x20(%ebp),%edx
566342:	8b 45 dc             	mov    -0x24(%ebp),%eax
566345:	c1 e2 02             	shl    $0x2,%edx
566348:	c1 e0 02             	shl    $0x2,%eax
56634b:	03 f2                	add    %edx,%esi
56634d:	01 45 c8             	add    %eax,-0x38(%ebp)
566350:	8b 16                	mov    (%esi),%edx
566352:	89 55 b0             	mov    %edx,-0x50(%ebp)
566355:	f6 45 b0 ff          	testb  $0xff,-0x50(%ebp)
566359:	0f 84 1f 02 00 00    	je     0x56657e
56635f:	f6 45 b1 50          	testb  $0x50,-0x4f(%ebp)
566363:	0f 85 15 02 00 00    	jne    0x56657e
566369:	8b 4d c8             	mov    -0x38(%ebp),%ecx
56636c:	8b 01                	mov    (%ecx),%eax
56636e:	99                   	cltd
56636f:	33 c2                	xor    %edx,%eax
566371:	2b c2                	sub    %edx,%eax
566373:	8b 4d f0             	mov    -0x10(%ebp),%ecx
566376:	23 c1                	and    %ecx,%eax
566378:	74 07                	je     0x566381
56637a:	b8 01 00 00 00       	mov    $0x1,%eax
56637f:	eb 02                	jmp    0x566383
566381:	33 c0                	xor    %eax,%eax
566383:	89 45 ac             	mov    %eax,-0x54(%ebp)
566386:	8b 55 fc             	mov    -0x4(%ebp),%edx
566389:	8b 4d b0             	mov    -0x50(%ebp),%ecx
56638c:	c1 e2 08             	shl    $0x8,%edx
56638f:	81 e1 ff 00 00 00    	and    $0xff,%ecx
566395:	0b d1                	or     %ecx,%edx
566397:	8b 04 95 10 b4 6a 00 	mov    0x6ab410(,%edx,4),%eax
56639e:	8b 53 10             	mov    0x10(%ebx),%edx
5663a1:	c1 e0 02             	shl    $0x2,%eax
5663a4:	03 c2                	add    %edx,%eax
5663a6:	89 43 14             	mov    %eax,0x14(%ebx)
5663a9:	8b 4b 14             	mov    0x14(%ebx),%ecx
5663ac:	8b 01                	mov    (%ecx),%eax
5663ae:	8b 4d ac             	mov    -0x54(%ebp),%ecx
5663b1:	0f b7 50 02          	movzwl 0x2(%eax),%edx
5663b5:	3b d1                	cmp    %ecx,%edx
5663b7:	75 28                	jne    0x5663e1
5663b9:	8b 43 14             	mov    0x14(%ebx),%eax
5663bc:	8b 10                	mov    (%eax),%edx
5663be:	0f b7 0a             	movzwl (%edx),%ecx
5663c1:	29 4b 04             	sub    %ecx,0x4(%ebx)
5663c4:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5663c8:	75 09                	jne    0x5663d3
5663ca:	8b c3                	mov    %ebx,%eax
5663cc:	e8 7b c0 00 00       	call   0x57244c
5663d1:	eb 15                	jmp    0x5663e8
5663d3:	8b 53 14             	mov    0x14(%ebx),%edx
5663d6:	8b 0a                	mov    (%edx),%ecx
5663d8:	0f b7 01             	movzwl (%ecx),%eax
5663db:	01 03                	add    %eax,(%ebx)
5663dd:	8b 03                	mov    (%ebx),%eax
5663df:	eb 07                	jmp    0x5663e8
5663e1:	8b c3                	mov    %ebx,%eax
5663e3:	e8 44 c3 00 00       	call   0x57272c
5663e8:	8b 55 ac             	mov    -0x54(%ebp),%edx
5663eb:	85 d2                	test   %edx,%edx
5663ed:	0f 84 85 01 00 00    	je     0x566578
5663f3:	8d 4f 06             	lea    0x6(%edi),%ecx
5663f6:	83 f9 06             	cmp    $0x6,%ecx
5663f9:	7e 30                	jle    0x56642b
5663fb:	85 ff                	test   %edi,%edi
5663fd:	7c 10                	jl     0x56640f
5663ff:	8b cf                	mov    %edi,%ecx
566401:	8b 45 c8             	mov    -0x38(%ebp),%eax
566404:	8b 00                	mov    (%eax),%eax
566406:	99                   	cltd
566407:	33 c2                	xor    %edx,%eax
566409:	2b c2                	sub    %edx,%eax
56640b:	d3 f8                	sar    %cl,%eax
56640d:	eb 10                	jmp    0x56641f
56640f:	8b 45 c8             	mov    -0x38(%ebp),%eax
566412:	8b cf                	mov    %edi,%ecx
566414:	f7 d9                	neg    %ecx
566416:	8b 00                	mov    (%eax),%eax
566418:	99                   	cltd
566419:	33 c2                	xor    %edx,%eax
56641b:	2b c2                	sub    %edx,%eax
56641d:	d3 e0                	shl    %cl,%eax
56641f:	83 e0 7f             	and    $0x7f,%eax
566422:	8b 0c 85 20 0c 6b 00 	mov    0x6b0c20(,%eax,4),%ecx
566429:	eb 2e                	jmp    0x566459
56642b:	85 ff                	test   %edi,%edi
56642d:	7c 10                	jl     0x56643f
56642f:	8b cf                	mov    %edi,%ecx
566431:	8b 45 c8             	mov    -0x38(%ebp),%eax
566434:	8b 00                	mov    (%eax),%eax
566436:	99                   	cltd
566437:	33 c2                	xor    %edx,%eax
566439:	2b c2                	sub    %edx,%eax
56643b:	d3 f8                	sar    %cl,%eax
56643d:	eb 10                	jmp    0x56644f
56643f:	8b 45 c8             	mov    -0x38(%ebp),%eax
566442:	8b cf                	mov    %edi,%ecx
566444:	f7 d9                	neg    %ecx
566446:	8b 00                	mov    (%eax),%eax
566448:	99                   	cltd
566449:	33 c2                	xor    %edx,%eax
56644b:	2b c2                	sub    %edx,%eax
56644d:	d3 e0                	shl    %cl,%eax
56644f:	83 e0 7f             	and    $0x7f,%eax
566452:	8b 0c 85 28 10 6b 00 	mov    0x6b1028(,%eax,4),%ecx