56c5bc:	8b 4b 30             	mov    0x30(%ebx),%ecx
56c5bf:	99                   	cltd
56c5c0:	f7 7b 30             	idivl  0x30(%ebx)
56c5c3:	2b ca                	sub    %edx,%ecx
56c5c5:	01 4b 28             	add    %ecx,0x28(%ebx)
56c5c8:	8b 43 28             	mov    0x28(%ebx),%eax
56c5cb:	8b 53 40             	mov    0x40(%ebx),%edx
56c5ce:	3b c2                	cmp    %edx,%eax
56c5d0:	0f 8c f9 fb ff ff    	jl     0x56c1cf
56c5d6:	8b 43 2c             	mov    0x2c(%ebx),%eax
56c5d9:	8b 4b 34             	mov    0x34(%ebx),%ecx
56c5dc:	99                   	cltd
56c5dd:	f7 7b 34             	idivl  0x34(%ebx)
56c5e0:	2b ca                	sub    %edx,%ecx
56c5e2:	01 4b 2c             	add    %ecx,0x2c(%ebx)
56c5e5:	8b 43 2c             	mov    0x2c(%ebx),%eax
56c5e8:	8b 53 44             	mov    0x44(%ebx),%edx
56c5eb:	3b c2                	cmp    %edx,%eax
56c5ed:	0f 8c d1 fb ff ff    	jl     0x56c1c4
56c5f3:	b8 01 00 00 00       	mov    $0x1,%eax
56c5f8:	83 c4 18             	add    $0x18,%esp
56c5fb:	5d                   	pop    %ebp
56c5fc:	5f                   	pop    %edi
56c5fd:	5e                   	pop    %esi
56c5fe:	5b                   	pop    %ebx
56c5ff:	c3                   	ret
56c600:	53                   	push   %ebx
56c601:	8b d8                	mov    %eax,%ebx
56c603:	56                   	push   %esi
56c604:	57                   	push   %edi
56c605:	55                   	push   %ebp
56c606:	83 c4 f4             	add    $0xfffffff4,%esp
56c609:	8b 43 60             	mov    0x60(%ebx),%eax
56c60c:	8b 7b 48             	mov    0x48(%ebx),%edi
56c60f:	85 c0                	test   %eax,%eax
56c611:	0f 84 a1 04 00 00    	je     0x56cab8
56c617:	33 d2                	xor    %edx,%edx
56c619:	89 53 60             	mov    %edx,0x60(%ebx)
56c61c:	0f b7 4f 04          	movzwl 0x4(%edi),%ecx
56c620:	89 4b 18             	mov    %ecx,0x18(%ebx)
56c623:	8b 43 18             	mov    0x18(%ebx),%eax
56c626:	c1 e0 04             	shl    $0x4,%eax
56c629:	8b 53 0c             	mov    0xc(%ebx),%edx
56c62c:	03 c2                	add    %edx,%eax
56c62e:	89 43 10             	mov    %eax,0x10(%ebx)
56c631:	e9 f6 04 00 00       	jmp    0x56cb2c
56c636:	8b 4b 10             	mov    0x10(%ebx),%ecx
56c639:	8b 43 10             	mov    0x10(%ebx),%eax
56c63c:	8b 51 04             	mov    0x4(%ecx),%edx
56c63f:	8b 00                	mov    (%eax),%eax
56c641:	8b 4a 08             	mov    0x8(%edx),%ecx
56c644:	03 c8                	add    %eax,%ecx
56c646:	b8 01 00 00 00       	mov    $0x1,%eax
56c64b:	49                   	dec    %ecx
56c64c:	d3 e0                	shl    %cl,%eax
56c64e:	8b 4b 10             	mov    0x10(%ebx),%ecx
56c651:	0f af 41 08          	imul   0x8(%ecx),%eax
56c655:	89 43 30             	mov    %eax,0x30(%ebx)
56c658:	8b 43 10             	mov    0x10(%ebx),%eax
56c65b:	8b 4a 0c             	mov    0xc(%edx),%ecx
56c65e:	8b 10                	mov    (%eax),%edx
56c660:	b8 01 00 00 00       	mov    $0x1,%eax
56c665:	03 ca                	add    %edx,%ecx
56c667:	8b 53 10             	mov    0x10(%ebx),%edx
56c66a:	49                   	dec    %ecx
56c66b:	d3 e0                	shl    %cl,%eax
56c66d:	f7 6a 0c             	imull  0xc(%edx)
56c670:	89 43 34             	mov    %eax,0x34(%ebx)
56c673:	b8 01 00 00 00       	mov    $0x1,%eax
56c678:	8b 53 10             	mov    0x10(%ebx),%edx
56c67b:	8b 52 04             	mov    0x4(%edx),%edx
56c67e:	83 c2 14             	add    $0x14,%edx
56c681:	e9 92 00 00 00       	jmp    0x56c718
56c686:	8b 4a 08             	mov    0x8(%edx),%ecx
56c689:	8b 73 10             	mov    0x10(%ebx),%esi
56c68c:	8b 36                	mov    (%esi),%esi
56c68e:	03 ce                	add    %esi,%ecx
56c690:	2b c8                	sub    %eax,%ecx
56c692:	49                   	dec    %ecx
56c693:	be 01 00 00 00       	mov    $0x1,%esi
56c698:	d3 e6                	shl    %cl,%esi
56c69a:	8b 4b 10             	mov    0x10(%ebx),%ecx
56c69d:	0f af 71 08          	imul   0x8(%ecx),%esi
56c6a1:	8b 4b 30             	mov    0x30(%ebx),%ecx
56c6a4:	3b f1                	cmp    %ecx,%esi
56c6a6:	7e 05                	jle    0x56c6ad
56c6a8:	8b 4b 30             	mov    0x30(%ebx),%ecx
56c6ab:	eb 1d                	jmp    0x56c6ca
56c6ad:	8b 4a 08             	mov    0x8(%edx),%ecx
56c6b0:	8b 73 10             	mov    0x10(%ebx),%esi
56c6b3:	8b 36                	mov    (%esi),%esi
56c6b5:	03 ce                	add    %esi,%ecx
56c6b7:	2b c8                	sub    %eax,%ecx
56c6b9:	49                   	dec    %ecx
56c6ba:	be 01 00 00 00       	mov    $0x1,%esi
56c6bf:	d3 e6                	shl    %cl,%esi
56c6c1:	8b ce                	mov    %esi,%ecx
56c6c3:	8b 73 10             	mov    0x10(%ebx),%esi
56c6c6:	0f af 4e 08          	imul   0x8(%esi),%ecx
56c6ca:	89 4b 30             	mov    %ecx,0x30(%ebx)
56c6cd:	8b 4a 0c             	mov    0xc(%edx),%ecx
56c6d0:	8b 73 10             	mov    0x10(%ebx),%esi
56c6d3:	8b 36                	mov    (%esi),%esi
56c6d5:	03 ce                	add    %esi,%ecx
56c6d7:	2b c8                	sub    %eax,%ecx
56c6d9:	49                   	dec    %ecx
56c6da:	be 01 00 00 00       	mov    $0x1,%esi
56c6df:	d3 e6                	shl    %cl,%esi
56c6e1:	8b 4b 10             	mov    0x10(%ebx),%ecx
56c6e4:	0f af 71 0c          	imul   0xc(%ecx),%esi
56c6e8:	8b 4b 34             	mov    0x34(%ebx),%ecx
56c6eb:	3b f1                	cmp    %ecx,%esi
56c6ed:	7e 05                	jle    0x56c6f4
56c6ef:	8b 4b 34             	mov    0x34(%ebx),%ecx
56c6f2:	eb 1d                	jmp    0x56c711
56c6f4:	8b 4a 0c             	mov    0xc(%edx),%ecx
56c6f7:	8b 73 10             	mov    0x10(%ebx),%esi
56c6fa:	8b 36                	mov    (%esi),%esi
56c6fc:	03 ce                	add    %esi,%ecx
56c6fe:	2b c8                	sub    %eax,%ecx
56c700:	49                   	dec    %ecx
56c701:	be 01 00 00 00       	mov    $0x1,%esi
56c706:	d3 e6                	shl    %cl,%esi
56c708:	8b ce                	mov    %esi,%ecx
56c70a:	8b 73 10             	mov    0x10(%ebx),%esi
56c70d:	0f af 4e 0c          	imul   0xc(%esi),%ecx
56c711:	89 4b 34             	mov    %ecx,0x34(%ebx)
56c714:	40                   	inc    %eax
56c715:	83 c2 14             	add    $0x14,%edx
56c718:	8b 4b 10             	mov    0x10(%ebx),%ecx
56c71b:	8b 09                	mov    (%ecx),%ecx
56c71d:	3b c1                	cmp    %ecx,%eax
56c71f:	0f 8c 61 ff ff ff    	jl     0x56c686
56c725:	8b 43 3c             	mov    0x3c(%ebx),%eax
56c728:	89 43 2c             	mov    %eax,0x2c(%ebx)
56c72b:	e9 e7 03 00 00       	jmp    0x56cb17
56c730:	8b 53 38             	mov    0x38(%ebx),%edx
56c733:	89 53 28             	mov    %edx,0x28(%ebx)
56c736:	e9 bf 03 00 00       	jmp    0x56cafa
56c73b:	33 c0                	xor    %eax,%eax
56c73d:	8a 47 01             	mov    0x1(%edi),%al
56c740:	89 43 1c             	mov    %eax,0x1c(%ebx)
56c743:	c1 e0 02             	shl    $0x2,%eax
56c746:	8b 53 10             	mov    0x10(%ebx),%edx
56c749:	8b 4a 04             	mov    0x4(%edx),%ecx
56c74c:	8d 04 80             	lea    (%eax,%eax,4),%eax
56c74f:	03 c8                	add    %eax,%ecx
56c751:	89 4b 14             	mov    %ecx,0x14(%ebx)
56c754:	e9 7a 03 00 00       	jmp    0x56cad3
56c759:	8b 4b 14             	mov    0x14(%ebx),%ecx
56c75c:	8b 09                	mov    (%ecx),%ecx
56c75e:	85 c9                	test   %ecx,%ecx
56c760:	0f 84 66 03 00 00    	je     0x56cacc
56c766:	8b f2                	mov    %edx,%esi
56c768:	4e                   	dec    %esi
56c769:	2b f0                	sub    %eax,%esi
56c76b:	8b 43 38             	mov    0x38(%ebx),%eax
56c76e:	85 c0                	test   %eax,%eax
56c770:	7c 0e                	jl     0x56c780
56c772:	8b ce                	mov    %esi,%ecx
56c774:	8b 53 10             	mov    0x10(%ebx),%edx
56c777:	8b 42 08             	mov    0x8(%edx),%eax
56c77a:	d3 e0                	shl    %cl,%eax
56c77c:	85 c0                	test   %eax,%eax
56c77e:	7f 17                	jg     0x56c797
56c780:	68 fd 01 00 00       	push   $0x1fd
56c785:	68 92 06 6a 00       	push   $0x6a0692
56c78a:	68 64 06 6a 00       	push   $0x6a0664
56c78f:	e8 ac e3 fe ff       	call   0x55ab40
56c794:	83 c4 0c             	add    $0xc,%esp
56c797:	8b ce                	mov    %esi,%ecx
56c799:	8b 53 10             	mov    0x10(%ebx),%edx
56c79c:	8b 6a 08             	mov    0x8(%edx),%ebp
56c79f:	d3 e5                	shl    %cl,%ebp
56c7a1:	8b c5                	mov    %ebp,%eax
56c7a3:	8b 53 38             	mov    0x38(%ebx),%edx
56c7a6:	03 c2                	add    %edx,%eax
56c7a8:	48                   	dec    %eax
56c7a9:	99                   	cltd
56c7aa:	f7 fd                	idiv   %ebp
56c7ac:	89 04 24             	mov    %eax,(%esp)
56c7af:	8b 43 3c             	mov    0x3c(%ebx),%eax
56c7b2:	85 c0                	test   %eax,%eax
56c7b4:	7c 0e                	jl     0x56c7c4
56c7b6:	8b ce                	mov    %esi,%ecx
56c7b8:	8b 43 10             	mov    0x10(%ebx),%eax
56c7bb:	8b 50 0c             	mov    0xc(%eax),%edx
56c7be:	d3 e2                	shl    %cl,%edx
56c7c0:	85 d2                	test   %edx,%edx
56c7c2:	7f 17                	jg     0x56c7db
56c7c4:	68 fe 01 00 00       	push   $0x1fe
56c7c9:	68 cc 06 6a 00       	push   $0x6a06cc
56c7ce:	68 9e 06 6a 00       	push   $0x6a069e
56c7d3:	e8 68 e3 fe ff       	call   0x55ab40
56c7d8:	83 c4 0c             	add    $0xc,%esp
56c7db:	8b 43 10             	mov    0x10(%ebx),%eax
56c7de:	8b ce                	mov    %esi,%ecx
56c7e0:	8b 53 3c             	mov    0x3c(%ebx),%edx
56c7e3:	8b 68 0c             	mov    0xc(%eax),%ebp
56c7e6:	d3 e5                	shl    %cl,%ebp
56c7e8:	8b c5                	mov    %ebp,%eax
56c7ea:	03 c2                	add    %edx,%eax
56c7ec:	48                   	dec    %eax
56c7ed:	99                   	cltd
56c7ee:	f7 fd                	idiv   %ebp
56c7f0:	89 44 24 04          	mov    %eax,0x4(%esp)
56c7f4:	8b 43 14             	mov    0x14(%ebx),%eax
56c7f7:	8b 68 08             	mov    0x8(%eax),%ebp
56c7fa:	8b 40 0c             	mov    0xc(%eax),%eax
56c7fd:	03 c6                	add    %esi,%eax
56c7ff:	03 ee                	add    %esi,%ebp
56c801:	89 44 24 08          	mov    %eax,0x8(%esp)
56c805:	8b 53 28             	mov    0x28(%ebx),%edx
56c808:	8b 4b 38             	mov    0x38(%ebx),%ecx
56c80b:	3b d1                	cmp    %ecx,%edx
56c80d:	75 1a                	jne    0x56c829
56c80f:	8b ce                	mov    %esi,%ecx
56c811:	8b 04 24             	mov    (%esp),%eax
56c814:	d3 e0                	shl    %cl,%eax
56c816:	8b cd                	mov    %ebp,%ecx
56c818:	ba 01 00 00 00       	mov    $0x1,%edx
56c81d:	d3 e2                	shl    %cl,%edx
56c81f:	8b ca                	mov    %edx,%ecx
56c821:	33 d2                	xor    %edx,%edx
56c823:	f7 f1                	div    %ecx
56c825:	85 d2                	test   %edx,%edx
56c827:	75 1a                	jne    0x56c843
56c829:	8b cd                	mov    %ebp,%ecx
56c82b:	8b 43 10             	mov    0x10(%ebx),%eax
56c82e:	8b 50 08             	mov    0x8(%eax),%edx
56c831:	d3 e2                	shl    %cl,%edx
56c833:	8b 43 28             	mov    0x28(%ebx),%eax
56c836:	8b ca                	mov    %edx,%ecx
56c838:	99                   	cltd
56c839:	f7 f9                	idiv   %ecx
56c83b:	85 d2                	test   %edx,%edx
56c83d:	0f 85 89 02 00 00    	jne    0x56cacc
56c843:	8b 6b 2c             	mov    0x2c(%ebx),%ebp
56c846:	8b 43 3c             	mov    0x3c(%ebx),%eax
56c849:	3b e8                	cmp    %eax,%ebp
56c84b:	75 1d                	jne    0x56c86a
56c84d:	8b ce                	mov    %esi,%ecx
56c84f:	8b 44 24 04          	mov    0x4(%esp),%eax
56c853:	d3 e0                	shl    %cl,%eax
56c855:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56c859:	ba 01 00 00 00       	mov    $0x1,%edx
56c85e:	d3 e2                	shl    %cl,%edx
56c860:	8b ca                	mov    %edx,%ecx
56c862:	33 d2                	xor    %edx,%edx
56c864:	f7 f1                	div    %ecx
56c866:	85 d2                	test   %edx,%edx
56c868:	75 1b                	jne    0x56c885
56c86a:	8b 4c 24 08          	mov    0x8(%esp),%ecx
56c86e:	8b 43 10             	mov    0x10(%ebx),%eax
56c871:	8b 50 0c             	mov    0xc(%eax),%edx
56c874:	d3 e2                	shl    %cl,%edx
56c876:	8b c5                	mov    %ebp,%eax
56c878:	8b ca                	mov    %edx,%ecx
56c87a:	99                   	cltd
56c87b:	f7 f9                	idiv   %ecx
56c87d:	85 d2                	test   %edx,%edx
56c87f:	0f 85 47 02 00 00    	jne    0x56cacc
56c885:	8b 43 28             	mov    0x28(%ebx),%eax
56c888:	85 c0                	test   %eax,%eax
56c88a:	7c 0e                	jl     0x56c89a
56c88c:	8b ce                	mov    %esi,%ecx
56c88e:	8b 53 10             	mov    0x10(%ebx),%edx
56c891:	8b 42 08             	mov    0x8(%edx),%eax
56c894:	d3 e0                	shl    %cl,%eax
56c896:	85 c0                	test   %eax,%eax
56c898:	7f 17                	jg     0x56c8b1
56c89a:	68 06 02 00 00       	push   $0x206
56c89f:	68 01 07 6a 00       	push   $0x6a0701
56c8a4:	68 d8 06 6a 00       	push   $0x6a06d8
56c8a9:	e8 92 e2 fe ff       	call   0x55ab40
56c8ae:	83 c4 0c             	add    $0xc,%esp
56c8b1:	8b ce                	mov    %esi,%ecx
56c8b3:	8b 53 10             	mov    0x10(%ebx),%edx
56c8b6:	8b 6a 08             	mov    0x8(%edx),%ebp
56c8b9:	d3 e5                	shl    %cl,%ebp
56c8bb:	8b c5                	mov    %ebp,%eax
56c8bd:	8b 53 28             	mov    0x28(%ebx),%edx
56c8c0:	03 c2                	add    %edx,%eax
56c8c2:	48                   	dec    %eax
56c8c3:	99                   	cltd
56c8c4:	f7 fd                	idiv   %ebp
56c8c6:	85 c0                	test   %eax,%eax
56c8c8:	7c 0a                	jl     0x56c8d4
56c8ca:	8b 43 14             	mov    0x14(%ebx),%eax
56c8cd:	8b 48 08             	mov    0x8(%eax),%ecx
56c8d0:	85 c9                	test   %ecx,%ecx
56c8d2:	7f 17                	jg     0x56c8eb
56c8d4:	68 06 02 00 00       	push   $0x206
56c8d9:	68 fb 07 6a 00       	push   $0x6a07fb
56c8de:	68 0d 07 6a 00       	push   $0x6a070d
56c8e3:	e8 58 e2 fe ff       	call   0x55ab40
56c8e8:	83 c4 0c             	add    $0xc,%esp
56c8eb:	8b 43 28             	mov    0x28(%ebx),%eax
56c8ee:	85 c0                	test   %eax,%eax
56c8f0:	7c 0e                	jl     0x56c900
56c8f2:	8b ce                	mov    %esi,%ecx
56c8f4:	8b 53 10             	mov    0x10(%ebx),%edx
56c8f7:	8b 42 08             	mov    0x8(%edx),%eax
56c8fa:	d3 e0                	shl    %cl,%eax
56c8fc:	85 c0                	test   %eax,%eax
56c8fe:	7f 17                	jg     0x56c917
56c900:	68 06 02 00 00       	push   $0x206
56c905:	68 30 08 6a 00       	push   $0x6a0830
56c90a:	68 07 08 6a 00       	push   $0x6a0807
56c90f:	e8 2c e2 fe ff       	call   0x55ab40
56c914:	83 c4 0c             	add    $0xc,%esp
56c917:	8b 53 10             	mov    0x10(%ebx),%edx
56c91a:	8b ce                	mov    %esi,%ecx
56c91c:	8b 42 08             	mov    0x8(%edx),%eax
56c91f:	8b 53 28             	mov    0x28(%ebx),%edx
56c922:	d3 e0                	shl    %cl,%eax
56c924:	03 c2                	add    %edx,%eax
56c926:	8b 53 10             	mov    0x10(%ebx),%edx
56c929:	8b ce                	mov    %esi,%ecx
56c92b:	48                   	dec    %eax
56c92c:	8b 52 08             	mov    0x8(%edx),%edx
56c92f:	d3 e2                	shl    %cl,%edx
56c931:	8b ca                	mov    %edx,%ecx
56c933:	99                   	cltd
56c934:	f7 f9                	idiv   %ecx
56c936:	8b 53 14             	mov    0x14(%ebx),%edx
56c939:	8b 4a 08             	mov    0x8(%edx),%ecx
56c93c:	d3 f8                	sar    %cl,%eax
56c93e:	50                   	push   %eax
56c93f:	8b 43 14             	mov    0x14(%ebx),%eax
56c942:	8b 40 08             	mov    0x8(%eax),%eax
56c945:	85 c0                	test   %eax,%eax
56c947:	7f 17                	jg     0x56c960
56c949:	68 07 02 00 00       	push   $0x207
56c94e:	68 66 08 6a 00       	push   $0x6a0866
56c953:	68 3c 08 6a 00       	push   $0x6a083c
56c958:	e8 e3 e1 fe ff       	call   0x55ab40
56c95d:	83 c4 0c             	add    $0xc,%esp
56c960:	8b 53 14             	mov    0x14(%ebx),%edx
56c963:	8b 44 24 04          	mov    0x4(%esp),%eax
56c967:	8b 4a 08             	mov    0x8(%edx),%ecx
56c96a:	5a                   	pop    %edx
56c96b:	d3 e8                	shr    %cl,%eax
56c96d:	2b d0                	sub    %eax,%edx
56c96f:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
56c972:	85 c9                	test   %ecx,%ecx
56c974:	8b ea                	mov    %edx,%ebp
56c976:	7c 0e                	jl     0x56c986
56c978:	8b ce                	mov    %esi,%ecx
56c97a:	8b 43 10             	mov    0x10(%ebx),%eax