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
566459:	8b 45 08             	mov    0x8(%ebp),%eax
56645c:	01 08                	add    %ecx,(%eax)
56645e:	8b 55 c8             	mov    -0x38(%ebp),%edx
566461:	8b 0a                	mov    (%edx),%ecx
566463:	85 c9                	test   %ecx,%ecx
566465:	7d 07                	jge    0x56646e
566467:	b8 01 00 00 00       	mov    $0x1,%eax
56646c:	eb 02                	jmp    0x566470
56646e:	33 c0                	xor    %eax,%eax
566470:	89 45 ac             	mov    %eax,-0x54(%ebp)
566473:	8b 55 b0             	mov    -0x50(%ebp),%edx
566476:	8b 43 10             	mov    0x10(%ebx),%eax
566479:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
56647f:	c1 fa 04             	sar    $0x4,%edx
566482:	8b 0c 95 18 c8 6a 00 	mov    0x6ac818(,%edx,4),%ecx
566489:	c1 e1 02             	shl    $0x2,%ecx
56648c:	03 c8                	add    %eax,%ecx
56648e:	89 4b 14             	mov    %ecx,0x14(%ebx)
566491:	8b 53 14             	mov    0x14(%ebx),%edx
566494:	8b 0a                	mov    (%edx),%ecx
566496:	8b 55 b0             	mov    -0x50(%ebp),%edx
566499:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
56649f:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5664a3:	c1 fa 04             	sar    $0x4,%edx
5664a6:	8b 0c 95 14 c4 6a 00 	mov    0x6ac414(,%edx,4),%ecx
5664ad:	8b 55 ac             	mov    -0x54(%ebp),%edx
5664b0:	33 ca                	xor    %edx,%ecx
5664b2:	3b c1                	cmp    %ecx,%eax
5664b4:	75 28                	jne    0x5664de
5664b6:	8b 43 14             	mov    0x14(%ebx),%eax
5664b9:	8b 08                	mov    (%eax),%ecx
5664bb:	0f b7 01             	movzwl (%ecx),%eax
5664be:	29 43 04             	sub    %eax,0x4(%ebx)
5664c1:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5664c5:	75 09                	jne    0x5664d0
5664c7:	8b c3                	mov    %ebx,%eax
5664c9:	e8 7e bf 00 00       	call   0x57244c
5664ce:	eb 15                	jmp    0x5664e5
5664d0:	8b 53 14             	mov    0x14(%ebx),%edx
5664d3:	8b 0a                	mov    (%edx),%ecx
5664d5:	0f b7 01             	movzwl (%ecx),%eax
5664d8:	01 03                	add    %eax,(%ebx)
5664da:	8b 03                	mov    (%ebx),%eax
5664dc:	eb 07                	jmp    0x5664e5
5664de:	8b c3                	mov    %ebx,%eax
5664e0:	e8 47 c2 00 00       	call   0x57272c
5664e5:	8b 55 e0             	mov    -0x20(%ebp),%edx
5664e8:	c1 e2 02             	shl    $0x2,%edx
5664eb:	52                   	push   %edx
5664ec:	8b d6                	mov    %esi,%edx
5664ee:	58                   	pop    %eax
5664ef:	2b d0                	sub    %eax,%edx
5664f1:	8b 45 e0             	mov    -0x20(%ebp),%eax
5664f4:	c1 e0 02             	shl    $0x2,%eax
5664f7:	03 c6                	add    %esi,%eax
5664f9:	eb 33                	jmp    0x56652e
5664fb:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
5664ff:	83 48 04 08          	orl    $0x8,0x4(%eax)
566503:	8b 55 ac             	mov    -0x54(%ebp),%edx
566506:	85 d2                	test   %edx,%edx
566508:	74 14                	je     0x56651e
56650a:	81 08 10 01 00 00    	orl    $0x110,(%eax)
566510:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
566517:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
56651e:	83 08 10             	orl    $0x10,(%eax)
566521:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
566525:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
56652c:	eb 44                	jmp    0x566572
56652e:	83 4a fc 02          	orl    $0x2,-0x4(%edx)
566532:	83 4a 04 04          	orl    $0x4,0x4(%edx)
566536:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
56653a:	83 48 04 08          	orl    $0x8,0x4(%eax)
56653e:	8b 4d ac             	mov    -0x54(%ebp),%ecx
566541:	85 c9                	test   %ecx,%ecx
566543:	74 1c                	je     0x566561
566545:	81 0a 40 04 00 00    	orl    $0x440,(%edx)
56654b:	81 08 10 01 00 00    	orl    $0x110,(%eax)
566551:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
566558:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
56655f:	eb 11                	jmp    0x566572
566561:	83 0a 40             	orl    $0x40,(%edx)
566564:	83 08 10             	orl    $0x10,(%eax)
566567:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
56656b:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
566572:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
566578:	81 0e 00 40 00 00    	orl    $0x4000,(%esi)
56657e:	ff 4d bc             	decl   -0x44(%ebp)
566581:	8b 45 bc             	mov    -0x44(%ebp),%eax
566584:	85 c0                	test   %eax,%eax
566586:	0f 8e 8c 04 00 00    	jle    0x566a18
56658c:	8b 55 e0             	mov    -0x20(%ebp),%edx
56658f:	8b 4d dc             	mov    -0x24(%ebp),%ecx
566592:	c1 e2 02             	shl    $0x2,%edx
566595:	c1 e1 02             	shl    $0x2,%ecx
566598:	03 f2                	add    %edx,%esi
56659a:	01 4d c8             	add    %ecx,-0x38(%ebp)
56659d:	8b 06                	mov    (%esi),%eax
56659f:	89 45 a8             	mov    %eax,-0x58(%ebp)
5665a2:	f6 45 a8 ff          	testb  $0xff,-0x58(%ebp)
5665a6:	0f 84 1f 02 00 00    	je     0x5667cb
5665ac:	f6 45 a9 50          	testb  $0x50,-0x57(%ebp)
5665b0:	0f 85 15 02 00 00    	jne    0x5667cb
5665b6:	8b 55 c8             	mov    -0x38(%ebp),%edx
5665b9:	8b 02                	mov    (%edx),%eax
5665bb:	99                   	cltd
5665bc:	33 c2                	xor    %edx,%eax
5665be:	2b c2                	sub    %edx,%eax
5665c0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5665c3:	23 c1                	and    %ecx,%eax
5665c5:	74 07                	je     0x5665ce
5665c7:	b8 01 00 00 00       	mov    $0x1,%eax
5665cc:	eb 02                	jmp    0x5665d0
5665ce:	33 c0                	xor    %eax,%eax
5665d0:	89 45 a4             	mov    %eax,-0x5c(%ebp)
5665d3:	8b 55 fc             	mov    -0x4(%ebp),%edx
5665d6:	8b 4d a8             	mov    -0x58(%ebp),%ecx
5665d9:	c1 e2 08             	shl    $0x8,%edx
5665dc:	81 e1 ff 00 00 00    	and    $0xff,%ecx
5665e2:	0b d1                	or     %ecx,%edx
5665e4:	8b 04 95 10 b4 6a 00 	mov    0x6ab410(,%edx,4),%eax
5665eb:	8b 53 10             	mov    0x10(%ebx),%edx
5665ee:	c1 e0 02             	shl    $0x2,%eax
5665f1:	03 c2                	add    %edx,%eax
5665f3:	89 43 14             	mov    %eax,0x14(%ebx)
5665f6:	8b 4b 14             	mov    0x14(%ebx),%ecx
5665f9:	8b 01                	mov    (%ecx),%eax
5665fb:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
5665fe:	0f b7 50 02          	movzwl 0x2(%eax),%edx
566602:	3b d1                	cmp    %ecx,%edx
566604:	75 28                	jne    0x56662e
566606:	8b 43 14             	mov    0x14(%ebx),%eax
566609:	8b 10                	mov    (%eax),%edx
56660b:	0f b7 0a             	movzwl (%edx),%ecx
56660e:	29 4b 04             	sub    %ecx,0x4(%ebx)
566611:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
566615:	75 09                	jne    0x566620
566617:	8b c3                	mov    %ebx,%eax
566619:	e8 2e be 00 00       	call   0x57244c
56661e:	eb 15                	jmp    0x566635
566620:	8b 53 14             	mov    0x14(%ebx),%edx
566623:	8b 0a                	mov    (%edx),%ecx
566625:	0f b7 01             	movzwl (%ecx),%eax
566628:	01 03                	add    %eax,(%ebx)
56662a:	8b 03                	mov    (%ebx),%eax
56662c:	eb 07                	jmp    0x566635
56662e:	8b c3                	mov    %ebx,%eax
566630:	e8 f7 c0 00 00       	call   0x57272c
566635:	8b 55 a4             	mov    -0x5c(%ebp),%edx
566638:	85 d2                	test   %edx,%edx
56663a:	0f 84 85 01 00 00    	je     0x5667c5
566640:	8d 4f 06             	lea    0x6(%edi),%ecx
566643:	83 f9 06             	cmp    $0x6,%ecx
566646:	7e 30                	jle    0x566678
566648:	85 ff                	test   %edi,%edi
56664a:	7c 10                	jl     0x56665c
56664c:	8b cf                	mov    %edi,%ecx
56664e:	8b 45 c8             	mov    -0x38(%ebp),%eax
566651:	8b 00                	mov    (%eax),%eax
566653:	99                   	cltd
566654:	33 c2                	xor    %edx,%eax
566656:	2b c2                	sub    %edx,%eax
566658:	d3 f8                	sar    %cl,%eax
56665a:	eb 10                	jmp    0x56666c
56665c:	8b 45 c8             	mov    -0x38(%ebp),%eax
56665f:	8b cf                	mov    %edi,%ecx
566661:	f7 d9                	neg    %ecx
566663:	8b 00                	mov    (%eax),%eax
566665:	99                   	cltd
566666:	33 c2                	xor    %edx,%eax
566668:	2b c2                	sub    %edx,%eax
56666a:	d3 e0                	shl    %cl,%eax
56666c:	83 e0 7f             	and    $0x7f,%eax
56666f:	8b 0c 85 20 0c 6b 00 	mov    0x6b0c20(,%eax,4),%ecx
566676:	eb 2e                	jmp    0x5666a6
566678:	85 ff                	test   %edi,%edi