56542d:	8b 13                	mov    (%ebx),%edx
56542f:	c1 ea 10             	shr    $0x10,%edx
565432:	8b 01                	mov    (%ecx),%eax
565434:	0f b7 08             	movzwl (%eax),%ecx
565437:	3b d1                	cmp    %ecx,%edx
565439:	72 27                	jb     0x565462
56543b:	8b 53 0c             	mov    0xc(%ebx),%edx
56543e:	8b 02                	mov    (%edx),%eax
565440:	0f b7 10             	movzwl (%eax),%edx
565443:	c1 e2 10             	shl    $0x10,%edx
565446:	29 13                	sub    %edx,(%ebx)
565448:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
56544c:	74 0b                	je     0x565459
56544e:	8b 4b 0c             	mov    0xc(%ebx),%ecx
565451:	8b 01                	mov    (%ecx),%eax
565453:	0f b7 40 02          	movzwl 0x2(%eax),%eax
565457:	eb 10                	jmp    0x565469
565459:	8b c3                	mov    %ebx,%eax
56545b:	e8 50 c8 00 00       	call   0x571cb0
565460:	eb 07                	jmp    0x565469
565462:	8b c3                	mov    %ebx,%eax
565464:	e8 67 c9 00 00       	call   0x571dd0
565469:	81 e7 f0 0f 00 00    	and    $0xff0,%edi
56546f:	c1 ff 04             	sar    $0x4,%edi
565472:	33 04 bd 14 c4 6a 00 	xor    0x6ac414(,%edi,4),%eax
565479:	85 c0                	test   %eax,%eax
56547b:	74 07                	je     0x565484
56547d:	8b 55 d0             	mov    -0x30(%ebp),%edx
565480:	f7 da                	neg    %edx
565482:	eb 03                	jmp    0x565487
565484:	8b 55 d0             	mov    -0x30(%ebp),%edx
565487:	8b 4d bc             	mov    -0x44(%ebp),%ecx
56548a:	89 11                	mov    %edx,(%ecx)
56548c:	8b 55 cc             	mov    -0x34(%ebp),%edx
56548f:	c1 e2 02             	shl    $0x2,%edx
565492:	8b ce                	mov    %esi,%ecx
565494:	2b ca                	sub    %edx,%ecx
565496:	8b 55 cc             	mov    -0x34(%ebp),%edx
565499:	c1 e2 02             	shl    $0x2,%edx
56549c:	03 d6                	add    %esi,%edx
56549e:	eb 30                	jmp    0x5654d0
5654a0:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
5654a4:	83 4a 04 08          	orl    $0x8,0x4(%edx)
5654a8:	85 c0                	test   %eax,%eax
5654aa:	74 14                	je     0x5654c0
5654ac:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5654b2:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5654b9:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5654c0:	83 0a 10             	orl    $0x10,(%edx)
5654c3:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
5654c7:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
5654ce:	eb 41                	jmp    0x565511
5654d0:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
5654d4:	83 49 04 04          	orl    $0x4,0x4(%ecx)
5654d8:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
5654dc:	83 4a 04 08          	orl    $0x8,0x4(%edx)
5654e0:	85 c0                	test   %eax,%eax
5654e2:	74 1c                	je     0x565500
5654e4:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
5654ea:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5654f0:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5654f7:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5654fe:	eb 11                	jmp    0x565511
565500:	83 09 40             	orl    $0x40,(%ecx)
565503:	83 0a 10             	orl    $0x10,(%edx)
565506:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
56550a:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
565511:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
565517:	81 26 ff bf ff ff    	andl   $0xffffbfff,(%esi)
56551d:	ff 4d f0             	decl   -0x10(%ebp)
565520:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
565524:	83 45 ac 04          	addl   $0x4,-0x54(%ebp)
565528:	8b 45 f0             	mov    -0x10(%ebp),%eax
56552b:	85 c0                	test   %eax,%eax
56552d:	0f 8f 41 f7 ff ff    	jg     0x564c74
565533:	83 45 f4 04          	addl   $0x4,-0xc(%ebp)
565537:	8b 4d c8             	mov    -0x38(%ebp),%ecx
56553a:	c1 e1 02             	shl    $0x2,%ecx
56553d:	01 4d c4             	add    %ecx,-0x3c(%ebp)
565540:	8b 45 b4             	mov    -0x4c(%ebp),%eax
565543:	c1 e0 02             	shl    $0x2,%eax
565546:	01 45 b0             	add    %eax,-0x50(%ebp)
565549:	8b 55 f4             	mov    -0xc(%ebp),%edx
56554c:	8b 4d d8             	mov    -0x28(%ebp),%ecx
56554f:	3b d1                	cmp    %ecx,%edx
565551:	0f 8c e1 f6 ff ff    	jl     0x564c38
565557:	8b 45 10             	mov    0x10(%ebp),%eax
56555a:	85 c0                	test   %eax,%eax
56555c:	0f 84 84 01 00 00    	je     0x5656e6
565562:	33 d2                	xor    %edx,%edx
565564:	89 55 a8             	mov    %edx,-0x58(%ebp)
565567:	8b 4b 10             	mov    0x10(%ebx),%ecx
56556a:	83 c1 48             	add    $0x48,%ecx
56556d:	89 4b 0c             	mov    %ecx,0xc(%ebx)
565570:	8b 43 0c             	mov    0xc(%ebx),%eax
565573:	8b 10                	mov    (%eax),%edx
565575:	0f b7 0a             	movzwl (%edx),%ecx
565578:	29 4b 04             	sub    %ecx,0x4(%ebx)
56557b:	8b 53 0c             	mov    0xc(%ebx),%edx
56557e:	8b 03                	mov    (%ebx),%eax
565580:	c1 e8 10             	shr    $0x10,%eax
565583:	8b 0a                	mov    (%edx),%ecx
565585:	0f b7 11             	movzwl (%ecx),%edx
565588:	3b c2                	cmp    %edx,%eax
56558a:	72 27                	jb     0x5655b3
56558c:	8b 43 0c             	mov    0xc(%ebx),%eax
56558f:	8b 08                	mov    (%eax),%ecx
565591:	0f b7 01             	movzwl (%ecx),%eax
565594:	c1 e0 10             	shl    $0x10,%eax
565597:	29 03                	sub    %eax,(%ebx)
565599:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
56559d:	74 0b                	je     0x5655aa
56559f:	8b 53 0c             	mov    0xc(%ebx),%edx
5655a2:	8b 0a                	mov    (%edx),%ecx
5655a4:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5655a8:	eb 10                	jmp    0x5655ba
5655aa:	8b c3                	mov    %ebx,%eax
5655ac:	e8 ff c6 00 00       	call   0x571cb0
5655b1:	eb 07                	jmp    0x5655ba
5655b3:	8b c3                	mov    %ebx,%eax
5655b5:	e8 16 c8 00 00       	call   0x571dd0
5655ba:	8b 55 a8             	mov    -0x58(%ebp),%edx
5655bd:	83 e0 01             	and    $0x1,%eax
5655c0:	03 d2                	add    %edx,%edx
5655c2:	0b d0                	or     %eax,%edx
5655c4:	89 55 a8             	mov    %edx,-0x58(%ebp)
5655c7:	8b 4b 0c             	mov    0xc(%ebx),%ecx
5655ca:	8b 01                	mov    (%ecx),%eax
5655cc:	0f b7 10             	movzwl (%eax),%edx
5655cf:	29 53 04             	sub    %edx,0x4(%ebx)
5655d2:	8b 43 0c             	mov    0xc(%ebx),%eax
5655d5:	8b 0b                	mov    (%ebx),%ecx
5655d7:	c1 e9 10             	shr    $0x10,%ecx
5655da:	8b 10                	mov    (%eax),%edx
5655dc:	0f b7 02             	movzwl (%edx),%eax
5655df:	3b c8                	cmp    %eax,%ecx
5655e1:	72 27                	jb     0x56560a
5655e3:	8b 53 0c             	mov    0xc(%ebx),%edx
5655e6:	8b 0a                	mov    (%edx),%ecx
5655e8:	0f b7 01             	movzwl (%ecx),%eax
5655eb:	c1 e0 10             	shl    $0x10,%eax
5655ee:	29 03                	sub    %eax,(%ebx)
5655f0:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5655f4:	74 0b                	je     0x565601
5655f6:	8b 53 0c             	mov    0xc(%ebx),%edx
5655f9:	8b 0a                	mov    (%edx),%ecx
5655fb:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5655ff:	eb 10                	jmp    0x565611
565601:	8b c3                	mov    %ebx,%eax
565603:	e8 a8 c6 00 00       	call   0x571cb0
565608:	eb 07                	jmp    0x565611
56560a:	8b c3                	mov    %ebx,%eax
56560c:	e8 bf c7 00 00       	call   0x571dd0
565611:	8b 55 a8             	mov    -0x58(%ebp),%edx
565614:	83 e0 01             	and    $0x1,%eax
565617:	03 d2                	add    %edx,%edx
565619:	0b d0                	or     %eax,%edx
56561b:	89 55 a8             	mov    %edx,-0x58(%ebp)
56561e:	8b 4b 0c             	mov    0xc(%ebx),%ecx
565621:	8b 01                	mov    (%ecx),%eax
565623:	0f b7 10             	movzwl (%eax),%edx
565626:	29 53 04             	sub    %edx,0x4(%ebx)
565629:	8b 43 0c             	mov    0xc(%ebx),%eax
56562c:	8b 0b                	mov    (%ebx),%ecx
56562e:	c1 e9 10             	shr    $0x10,%ecx
565631:	8b 10                	mov    (%eax),%edx
565633:	0f b7 02             	movzwl (%edx),%eax
565636:	3b c8                	cmp    %eax,%ecx
565638:	72 27                	jb     0x565661
56563a:	8b 53 0c             	mov    0xc(%ebx),%edx
56563d:	8b 0a                	mov    (%edx),%ecx
56563f:	0f b7 01             	movzwl (%ecx),%eax
565642:	c1 e0 10             	shl    $0x10,%eax
565645:	29 03                	sub    %eax,(%ebx)
565647:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
56564b:	74 0b                	je     0x565658
56564d:	8b 53 0c             	mov    0xc(%ebx),%edx
565650:	8b 0a                	mov    (%edx),%ecx
565652:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
565656:	eb 10                	jmp    0x565668
565658:	8b c3                	mov    %ebx,%eax
56565a:	e8 51 c6 00 00       	call   0x571cb0
56565f:	eb 07                	jmp    0x565668
565661:	8b c3                	mov    %ebx,%eax
565663:	e8 68 c7 00 00       	call   0x571dd0
565668:	8b 55 a8             	mov    -0x58(%ebp),%edx
56566b:	83 e0 01             	and    $0x1,%eax
56566e:	03 d2                	add    %edx,%edx
565670:	0b d0                	or     %eax,%edx
565672:	89 55 a8             	mov    %edx,-0x58(%ebp)
565675:	8b 4b 0c             	mov    0xc(%ebx),%ecx
565678:	8b 01                	mov    (%ecx),%eax
56567a:	0f b7 10             	movzwl (%eax),%edx
56567d:	29 53 04             	sub    %edx,0x4(%ebx)
565680:	8b 43 0c             	mov    0xc(%ebx),%eax
565683:	8b 0b                	mov    (%ebx),%ecx
565685:	c1 e9 10             	shr    $0x10,%ecx
565688:	8b 10                	mov    (%eax),%edx
56568a:	0f b7 02             	movzwl (%edx),%eax
56568d:	3b c8                	cmp    %eax,%ecx
56568f:	72 27                	jb     0x5656b8
565691:	8b 53 0c             	mov    0xc(%ebx),%edx
565694:	8b 0a                	mov    (%edx),%ecx
565696:	0f b7 01             	movzwl (%ecx),%eax
565699:	c1 e0 10             	shl    $0x10,%eax
56569c:	29 03                	sub    %eax,(%ebx)
56569e:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5656a2:	74 0b                	je     0x5656af
5656a4:	8b 53 0c             	mov    0xc(%ebx),%edx
5656a7:	8b 0a                	mov    (%edx),%ecx
5656a9:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5656ad:	eb 10                	jmp    0x5656bf
5656af:	8b c3                	mov    %ebx,%eax
5656b1:	e8 fa c5 00 00       	call   0x571cb0
5656b6:	eb 07                	jmp    0x5656bf
5656b8:	8b c3                	mov    %ebx,%eax
5656ba:	e8 11 c7 00 00       	call   0x571dd0
5656bf:	8b 55 a8             	mov    -0x58(%ebp),%edx
5656c2:	03 d2                	add    %edx,%edx
5656c4:	83 e0 01             	and    $0x1,%eax
5656c7:	0b d0                	or     %eax,%edx
5656c9:	89 55 a8             	mov    %edx,-0x58(%ebp)
5656cc:	8b 4d a8             	mov    -0x58(%ebp),%ecx
5656cf:	83 f9 0a             	cmp    $0xa,%ecx
5656d2:	74 12                	je     0x5656e6
5656d4:	68 19 f5 69 00       	push   $0x69f519
5656d9:	68 80 2e 6a 00       	push   $0x6a2e80
5656de:	e8 e9 49 01 00       	call   0x57a0cc
5656e3:	83 c4 08             	add    $0x8,%esp
5656e6:	33 c0                	xor    %eax,%eax
5656e8:	5f                   	pop    %edi
5656e9:	5e                   	pop    %esi
5656ea:	5b                   	pop    %ebx
5656eb:	8b e5                	mov    %ebp,%esp
5656ed:	5d                   	pop    %ebp
5656ee:	c2 14 00             	ret    $0x14
5656f1:	8d 40 00             	lea    0x0(%eax),%eax
5656f4:	53                   	push   %ebx
5656f5:	56                   	push   %esi
5656f6:	57                   	push   %edi
5656f7:	83 c4 d0             	add    $0xffffffd0,%esp
5656fa:	89 04 24             	mov    %eax,(%esp)
5656fd:	8b 04 24             	mov    (%esp),%eax
565700:	8b 40 0c             	mov    0xc(%eax),%eax
565703:	8b 58 28             	mov    0x28(%eax),%ebx
565706:	8b 50 2c             	mov    0x2c(%eax),%edx
565709:	8b f3                	mov    %ebx,%esi
56570b:	8b ca                	mov    %edx,%ecx
56570d:	c1 e3 07             	shl    $0x7,%ebx
565710:	03 de                	add    %esi,%ebx
565712:	c1 e3 02             	shl    $0x2,%ebx
565715:	03 cb                	add    %ebx,%ecx
565717:	89 4c 24 08          	mov    %ecx,0x8(%esp)
56571b:	89 54 24 04          	mov    %edx,0x4(%esp)
56571f:	8b 54 24 08          	mov    0x8(%esp),%edx
565723:	8b 44 24 04          	mov    0x4(%esp),%eax
565727:	3b c2                	cmp    %edx,%eax
565729:	0f 84 1a 02 00 00    	je     0x565949
56572f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
565733:	8b 41 04             	mov    0x4(%ecx),%eax
565736:	8b 4c 24 04          	mov    0x4(%esp),%ecx
56573a:	8b d0                	mov    %eax,%edx
56573c:	0f b7 09             	movzwl (%ecx),%ecx
56573f:	c1 e1 02             	shl    $0x2,%ecx
565742:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
565745:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
565748:	03 d1                	add    %ecx,%edx
56574a:	89 54 24 10          	mov    %edx,0x10(%esp)
56574e:	89 44 24 0c          	mov    %eax,0xc(%esp)
565752:	8b 44 24 0c          	mov    0xc(%esp),%eax
565756:	8b 54 24 10          	mov    0x10(%esp),%edx
56575a:	3b c2                	cmp    %edx,%eax
56575c:	0f 84 cf 01 00 00    	je     0x565931
565762:	8b 44 24 0c          	mov    0xc(%esp),%eax
565766:	8b 40 34             	mov    0x34(%eax),%eax
565769:	85 c0                	test   %eax,%eax
56576b:	0f 84 ab 01 00 00    	je     0x56591c
565771:	8b d0                	mov    %eax,%edx
565773:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
565777:	8b 49 30             	mov    0x30(%ecx),%ecx
56577a:	c1 e1 02             	shl    $0x2,%ecx
56577d:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
565780:	03 d1                	add    %ecx,%edx
565782:	89 54 24 18          	mov    %edx,0x18(%esp)
565786:	89 44 24 14          	mov    %eax,0x14(%esp)
56578a:	8b 44 24 14          	mov    0x14(%esp),%eax
56578e:	8b 54 24 18          	mov    0x18(%esp),%edx
565792:	3b c2                	cmp    %edx,%eax
565794:	0f 84 82 01 00 00    	je     0x56591c
56579a:	8b 44 24 14          	mov    0x14(%esp),%eax
56579e:	8b 50 04             	mov    0x4(%eax),%edx
5657a1:	85 d2                	test   %edx,%edx
5657a3:	0f 84 5e 01 00 00    	je     0x565907
5657a9:	33 c9                	xor    %ecx,%ecx
5657ab:	89 4c 24 28          	mov    %ecx,0x28(%esp)
5657af:	8b 44 24 14          	mov    0x14(%esp),%eax
5657b3:	8b 10                	mov    (%eax),%edx
5657b5:	89 54 24 2c          	mov    %edx,0x2c(%esp)
5657b9:	e9 36 01 00 00       	jmp    0x5658f4
5657be:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
5657c2:	8b 41 1c             	mov    0x1c(%ecx),%eax
5657c5:	85 c0                	test   %eax,%eax
5657c7:	0f 84 1e 01 00 00    	je     0x5658eb
5657cd:	33 d2                	xor    %edx,%edx
5657cf:	89 54 24 24          	mov    %edx,0x24(%esp)
5657d3:	8b c8                	mov    %eax,%ecx
5657d5:	8b 54 24 2c          	mov    0x2c(%esp),%edx
5657d9:	8b 52 18             	mov    0x18(%edx),%edx
5657dc:	c1 e2 02             	shl    $0x2,%edx
5657df:	8d 14 52             	lea    (%edx,%edx,2),%edx
5657e2:	8d 14 92             	lea    (%edx,%edx,4),%edx
5657e5:	03 ca                	add    %edx,%ecx
5657e7:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
5657eb:	8b d8                	mov    %eax,%ebx
5657ed:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5657f1:	3b d8                	cmp    %eax,%ebx
5657f3:	74 79                	je     0x56586e
5657f5:	33 f6                	xor    %esi,%esi
5657f7:	33 c0                	xor    %eax,%eax
5657f9:	89 44 24 20          	mov    %eax,0x20(%esp)
5657fd:	eb 2b                	jmp    0x56582a
5657ff:	33 c9                	xor    %ecx,%ecx
565801:	eb 19                	jmp    0x56581c
565803:	8b 57 1c             	mov    0x1c(%edi),%edx
565806:	8b 44 24 20          	mov    0x20(%esp),%eax
56580a:	8b 14 82             	mov    (%edx,%eax,4),%edx
56580d:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
565810:	99                   	cltd
565811:	33 c2                	xor    %edx,%eax
565813:	2b c2                	sub    %edx,%eax
565815:	3b f0                	cmp    %eax,%esi
565817:	7d 02                	jge    0x56581b
565819:	8b f0                	mov    %eax,%esi
56581b:	41                   	inc    %ecx
56581c:	8b 7b 1c             	mov    0x1c(%ebx),%edi
56581f:	8b 47 18             	mov    0x18(%edi),%eax
565822:	3b c8                	cmp    %eax,%ecx
565824:	7c dd                	jl     0x565803
565826:	ff 44 24 20          	incl   0x20(%esp)
56582a:	8b 53 1c             	mov    0x1c(%ebx),%edx
56582d:	8b 4a 14             	mov    0x14(%edx),%ecx
565830:	8b 44 24 20          	mov    0x20(%esp),%eax
565834:	3b c8                	cmp    %eax,%ecx
565836:	7f c7                	jg     0x5657ff
565838:	8b 54 24 24          	mov    0x24(%esp),%edx
56583c:	3b f2                	cmp    %edx,%esi
56583e:	7e 04                	jle    0x565844
565840:	89 74 24 24          	mov    %esi,0x24(%esp)
565844:	8b c6                	mov    %esi,%eax
565846:	e8 19 3d 01 00       	call   0x579564