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
56667a:	7c 10                	jl     0x56668c
56667c:	8b cf                	mov    %edi,%ecx
56667e:	8b 45 c8             	mov    -0x38(%ebp),%eax
566681:	8b 00                	mov    (%eax),%eax
566683:	99                   	cltd
566684:	33 c2                	xor    %edx,%eax
566686:	2b c2                	sub    %edx,%eax
566688:	d3 f8                	sar    %cl,%eax
56668a:	eb 10                	jmp    0x56669c
56668c:	8b 45 c8             	mov    -0x38(%ebp),%eax
56668f:	8b cf                	mov    %edi,%ecx
566691:	f7 d9                	neg    %ecx
566693:	8b 00                	mov    (%eax),%eax
566695:	99                   	cltd
566696:	33 c2                	xor    %edx,%eax
566698:	2b c2                	sub    %edx,%eax
56669a:	d3 e0                	shl    %cl,%eax
56669c:	83 e0 7f             	and    $0x7f,%eax
56669f:	8b 0c 85 28 10 6b 00 	mov    0x6b1028(,%eax,4),%ecx
5666a6:	8b 45 08             	mov    0x8(%ebp),%eax
5666a9:	01 08                	add    %ecx,(%eax)
5666ab:	8b 55 c8             	mov    -0x38(%ebp),%edx
5666ae:	8b 0a                	mov    (%edx),%ecx
5666b0:	85 c9                	test   %ecx,%ecx
5666b2:	7d 07                	jge    0x5666bb
5666b4:	b8 01 00 00 00       	mov    $0x1,%eax
5666b9:	eb 02                	jmp    0x5666bd
5666bb:	33 c0                	xor    %eax,%eax
5666bd:	89 45 a4             	mov    %eax,-0x5c(%ebp)
5666c0:	8b 55 a8             	mov    -0x58(%ebp),%edx
5666c3:	8b 43 10             	mov    0x10(%ebx),%eax
5666c6:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
5666cc:	c1 fa 04             	sar    $0x4,%edx
5666cf:	8b 0c 95 18 c8 6a 00 	mov    0x6ac818(,%edx,4),%ecx
5666d6:	c1 e1 02             	shl    $0x2,%ecx
5666d9:	03 c8                	add    %eax,%ecx
5666db:	89 4b 14             	mov    %ecx,0x14(%ebx)
5666de:	8b 53 14             	mov    0x14(%ebx),%edx
5666e1:	8b 0a                	mov    (%edx),%ecx
5666e3:	8b 55 a8             	mov    -0x58(%ebp),%edx
5666e6:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
5666ec:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5666f0:	c1 fa 04             	sar    $0x4,%edx
5666f3:	8b 0c 95 14 c4 6a 00 	mov    0x6ac414(,%edx,4),%ecx
5666fa:	8b 55 a4             	mov    -0x5c(%ebp),%edx
5666fd:	33 ca                	xor    %edx,%ecx
5666ff:	3b c1                	cmp    %ecx,%eax
566701:	75 28                	jne    0x56672b
566703:	8b 43 14             	mov    0x14(%ebx),%eax
566706:	8b 08                	mov    (%eax),%ecx
566708:	0f b7 01             	movzwl (%ecx),%eax
56670b:	29 43 04             	sub    %eax,0x4(%ebx)
56670e:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
566712:	75 09                	jne    0x56671d
566714:	8b c3                	mov    %ebx,%eax
566716:	e8 31 bd 00 00       	call   0x57244c
56671b:	eb 15                	jmp    0x566732
56671d:	8b 53 14             	mov    0x14(%ebx),%edx
566720:	8b 0a                	mov    (%edx),%ecx
566722:	0f b7 01             	movzwl (%ecx),%eax
566725:	01 03                	add    %eax,(%ebx)
566727:	8b 03                	mov    (%ebx),%eax
566729:	eb 07                	jmp    0x566732
56672b:	8b c3                	mov    %ebx,%eax
56672d:	e8 fa bf 00 00       	call   0x57272c
566732:	8b 55 e0             	mov    -0x20(%ebp),%edx
566735:	c1 e2 02             	shl    $0x2,%edx
566738:	52                   	push   %edx
566739:	8b d6                	mov    %esi,%edx
56673b:	58                   	pop    %eax
56673c:	2b d0                	sub    %eax,%edx
56673e:	8b 45 e0             	mov    -0x20(%ebp),%eax
566741:	c1 e0 02             	shl    $0x2,%eax
566744:	03 c6                	add    %esi,%eax
566746:	eb 33                	jmp    0x56677b
566748:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
56674c:	83 48 04 08          	orl    $0x8,0x4(%eax)
566750:	8b 55 a4             	mov    -0x5c(%ebp),%edx
566753:	85 d2                	test   %edx,%edx
566755:	74 14                	je     0x56676b
566757:	81 08 10 01 00 00    	orl    $0x110,(%eax)
56675d:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
566764:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
56676b:	83 08 10             	orl    $0x10,(%eax)
56676e:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
566772:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
566779:	eb 44                	jmp    0x5667bf
56677b:	83 4a fc 02          	orl    $0x2,-0x4(%edx)
56677f:	83 4a 04 04          	orl    $0x4,0x4(%edx)
566783:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
566787:	83 48 04 08          	orl    $0x8,0x4(%eax)
56678b:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
56678e:	85 c9                	test   %ecx,%ecx
566790:	74 1c                	je     0x5667ae
566792:	81 0a 40 04 00 00    	orl    $0x440,(%edx)
566798:	81 08 10 01 00 00    	orl    $0x110,(%eax)
56679e:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5667a5:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5667ac:	eb 11                	jmp    0x5667bf
5667ae:	83 0a 40             	orl    $0x40,(%edx)
5667b1:	83 08 10             	orl    $0x10,(%eax)
5667b4:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
5667b8:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
5667bf:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
5667c5:	81 0e 00 40 00 00    	orl    $0x4000,(%esi)
5667cb:	ff 4d bc             	decl   -0x44(%ebp)
5667ce:	8b 45 bc             	mov    -0x44(%ebp),%eax
5667d1:	85 c0                	test   %eax,%eax
5667d3:	0f 8e 3f 02 00 00    	jle    0x566a18
5667d9:	8b 55 e0             	mov    -0x20(%ebp),%edx
5667dc:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5667df:	c1 e2 02             	shl    $0x2,%edx
5667e2:	c1 e1 02             	shl    $0x2,%ecx
5667e5:	03 f2                	add    %edx,%esi
5667e7:	01 4d c8             	add    %ecx,-0x38(%ebp)
5667ea:	8b 06                	mov    (%esi),%eax
5667ec:	89 45 a0             	mov    %eax,-0x60(%ebp)
5667ef:	f6 45 a0 ff          	testb  $0xff,-0x60(%ebp)
5667f3:	0f 84 1f 02 00 00    	je     0x566a18
5667f9:	f6 45 a1 50          	testb  $0x50,-0x5f(%ebp)
5667fd:	0f 85 15 02 00 00    	jne    0x566a18
566803:	8b 55 c8             	mov    -0x38(%ebp),%edx
566806:	8b 02                	mov    (%edx),%eax
566808:	99                   	cltd
566809:	33 c2                	xor    %edx,%eax
56680b:	2b c2                	sub    %edx,%eax
56680d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
566810:	23 c1                	and    %ecx,%eax
566812:	74 07                	je     0x56681b
566814:	b8 01 00 00 00       	mov    $0x1,%eax
566819:	eb 02                	jmp    0x56681d
56681b:	33 c0                	xor    %eax,%eax
56681d:	89 45 9c             	mov    %eax,-0x64(%ebp)
566820:	8b 55 fc             	mov    -0x4(%ebp),%edx
566823:	8b 4d a0             	mov    -0x60(%ebp),%ecx
566826:	c1 e2 08             	shl    $0x8,%edx
566829:	81 e1 ff 00 00 00    	and    $0xff,%ecx
56682f:	0b d1                	or     %ecx,%edx
566831:	8b 04 95 10 b4 6a 00 	mov    0x6ab410(,%edx,4),%eax
566838:	8b 53 10             	mov    0x10(%ebx),%edx
56683b:	c1 e0 02             	shl    $0x2,%eax
56683e:	03 c2                	add    %edx,%eax
566840:	89 43 14             	mov    %eax,0x14(%ebx)
566843:	8b 4b 14             	mov    0x14(%ebx),%ecx
566846:	8b 01                	mov    (%ecx),%eax
566848:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
56684b:	0f b7 50 02          	movzwl 0x2(%eax),%edx
56684f:	3b d1                	cmp    %ecx,%edx
566851:	75 28                	jne    0x56687b
566853:	8b 43 14             	mov    0x14(%ebx),%eax
566856:	8b 10                	mov    (%eax),%edx
566858:	0f b7 0a             	movzwl (%edx),%ecx
56685b:	29 4b 04             	sub    %ecx,0x4(%ebx)
56685e:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
566862:	75 09                	jne    0x56686d
566864:	8b c3                	mov    %ebx,%eax
566866:	e8 e1 bb 00 00       	call   0x57244c
56686b:	eb 15                	jmp    0x566882
56686d:	8b 53 14             	mov    0x14(%ebx),%edx
566870:	8b 0a                	mov    (%edx),%ecx
566872:	0f b7 01             	movzwl (%ecx),%eax
566875:	01 03                	add    %eax,(%ebx)
566877:	8b 03                	mov    (%ebx),%eax
566879:	eb 07                	jmp    0x566882
56687b:	8b c3                	mov    %ebx,%eax
56687d:	e8 aa be 00 00       	call   0x57272c
566882:	8b 55 9c             	mov    -0x64(%ebp),%edx
566885:	85 d2                	test   %edx,%edx
566887:	0f 84 85 01 00 00    	je     0x566a12
56688d:	8d 4f 06             	lea    0x6(%edi),%ecx
566890:	83 f9 06             	cmp    $0x6,%ecx
566893:	7e 30                	jle    0x5668c5
566895:	85 ff                	test   %edi,%edi
566897:	7c 10                	jl     0x5668a9
566899:	8b cf                	mov    %edi,%ecx