56c3cf:	8b 53 28             	mov    0x28(%ebx),%edx
56c3d2:	d3 e0                	shl    %cl,%eax
56c3d4:	03 c2                	add    %edx,%eax
56c3d6:	8b 53 10             	mov    0x10(%ebx),%edx
56c3d9:	8b ce                	mov    %esi,%ecx
56c3db:	48                   	dec    %eax
56c3dc:	8b 52 08             	mov    0x8(%edx),%edx
56c3df:	d3 e2                	shl    %cl,%edx
56c3e1:	8b ca                	mov    %edx,%ecx
56c3e3:	99                   	cltd
56c3e4:	f7 f9                	idiv   %ecx
56c3e6:	8b 53 14             	mov    0x14(%ebx),%edx
56c3e9:	8b 4a 08             	mov    0x8(%edx),%ecx
56c3ec:	d3 f8                	sar    %cl,%eax
56c3ee:	50                   	push   %eax
56c3ef:	8b 43 14             	mov    0x14(%ebx),%eax
56c3f2:	8b 40 08             	mov    0x8(%eax),%eax
56c3f5:	85 c0                	test   %eax,%eax
56c3f7:	7f 17                	jg     0x56c410
56c3f9:	68 b3 01 00 00       	push   $0x1b3
56c3fe:	68 90 04 6a 00       	push   $0x6a0490
56c403:	68 66 04 6a 00       	push   $0x6a0466
56c408:	e8 33 e7 fe ff       	call   0x55ab40
56c40d:	83 c4 0c             	add    $0xc,%esp
56c410:	8b 53 14             	mov    0x14(%ebx),%edx
56c413:	8b 44 24 10          	mov    0x10(%esp),%eax
56c417:	8b 4a 08             	mov    0x8(%edx),%ecx
56c41a:	5a                   	pop    %edx
56c41b:	d3 e8                	shr    %cl,%eax
56c41d:	2b d0                	sub    %eax,%edx
56c41f:	8b 4b 2c             	mov    0x2c(%ebx),%ecx
56c422:	85 c9                	test   %ecx,%ecx
56c424:	8b ea                	mov    %edx,%ebp
56c426:	7c 0e                	jl     0x56c436
56c428:	8b ce                	mov    %esi,%ecx
56c42a:	8b 43 10             	mov    0x10(%ebx),%eax
56c42d:	8b 50 0c             	mov    0xc(%eax),%edx
56c430:	d3 e2                	shl    %cl,%edx
56c432:	85 d2                	test   %edx,%edx
56c434:	7f 17                	jg     0x56c44d
56c436:	68 b5 01 00 00       	push   $0x1b5
56c43b:	68 c5 04 6a 00       	push   $0x6a04c5
56c440:	68 9c 04 6a 00       	push   $0x6a049c
56c445:	e8 f6 e6 fe ff       	call   0x55ab40
56c44a:	83 c4 0c             	add    $0xc,%esp
56c44d:	8b 43 10             	mov    0x10(%ebx),%eax
56c450:	8b ce                	mov    %esi,%ecx
56c452:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c455:	8b 40 0c             	mov    0xc(%eax),%eax
56c458:	d3 e0                	shl    %cl,%eax
56c45a:	03 c2                	add    %edx,%eax
56c45c:	8b 53 10             	mov    0x10(%ebx),%edx
56c45f:	8b ce                	mov    %esi,%ecx
56c461:	48                   	dec    %eax
56c462:	8b 52 0c             	mov    0xc(%edx),%edx
56c465:	d3 e2                	shl    %cl,%edx
56c467:	8b ca                	mov    %edx,%ecx
56c469:	99                   	cltd
56c46a:	f7 f9                	idiv   %ecx
56c46c:	85 c0                	test   %eax,%eax
56c46e:	7c 0a                	jl     0x56c47a
56c470:	8b 43 14             	mov    0x14(%ebx),%eax
56c473:	8b 40 0c             	mov    0xc(%eax),%eax
56c476:	85 c0                	test   %eax,%eax
56c478:	7f 17                	jg     0x56c491
56c47a:	68 b5 01 00 00       	push   $0x1b5
56c47f:	68 c0 05 6a 00       	push   $0x6a05c0
56c484:	68 d1 04 6a 00       	push   $0x6a04d1
56c489:	e8 b2 e6 fe ff       	call   0x55ab40
56c48e:	83 c4 0c             	add    $0xc,%esp
56c491:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c494:	85 d2                	test   %edx,%edx
56c496:	7c 0e                	jl     0x56c4a6
56c498:	8b ce                	mov    %esi,%ecx
56c49a:	8b 43 10             	mov    0x10(%ebx),%eax
56c49d:	8b 50 0c             	mov    0xc(%eax),%edx
56c4a0:	d3 e2                	shl    %cl,%edx
56c4a2:	85 d2                	test   %edx,%edx
56c4a4:	7f 17                	jg     0x56c4bd
56c4a6:	68 b5 01 00 00       	push   $0x1b5
56c4ab:	68 f5 05 6a 00       	push   $0x6a05f5
56c4b0:	68 cc 05 6a 00       	push   $0x6a05cc
56c4b5:	e8 86 e6 fe ff       	call   0x55ab40
56c4ba:	83 c4 0c             	add    $0xc,%esp
56c4bd:	8b 43 10             	mov    0x10(%ebx),%eax
56c4c0:	8b ce                	mov    %esi,%ecx
56c4c2:	8b 53 2c             	mov    0x2c(%ebx),%edx
56c4c5:	8b 40 0c             	mov    0xc(%eax),%eax
56c4c8:	d3 e0                	shl    %cl,%eax
56c4ca:	03 c2                	add    %edx,%eax
56c4cc:	8b 53 10             	mov    0x10(%ebx),%edx
56c4cf:	8b ce                	mov    %esi,%ecx
56c4d1:	48                   	dec    %eax
56c4d2:	8b 52 0c             	mov    0xc(%edx),%edx
56c4d5:	d3 e2                	shl    %cl,%edx
56c4d7:	8b ca                	mov    %edx,%ecx
56c4d9:	99                   	cltd
56c4da:	f7 f9                	idiv   %ecx
56c4dc:	8b 53 14             	mov    0x14(%ebx),%edx
56c4df:	8b 4a 0c             	mov    0xc(%edx),%ecx
56c4e2:	d3 f8                	sar    %cl,%eax
56c4e4:	50                   	push   %eax
56c4e5:	8b 43 14             	mov    0x14(%ebx),%eax
56c4e8:	8b 40 0c             	mov    0xc(%eax),%eax
56c4eb:	85 c0                	test   %eax,%eax
56c4ed:	7f 17                	jg     0x56c506
56c4ef:	68 b6 01 00 00       	push   $0x1b6
56c4f4:	68 2c 06 6a 00       	push   $0x6a062c
56c4f9:	68 01 06 6a 00       	push   $0x6a0601
56c4fe:	e8 3d e6 fe ff       	call   0x55ab40
56c503:	83 c4 0c             	add    $0xc,%esp
56c506:	8b 53 14             	mov    0x14(%ebx),%edx
56c509:	8b 44 24 14          	mov    0x14(%esp),%eax
56c50d:	8b 4a 0c             	mov    0xc(%edx),%ecx
56c510:	5a                   	pop    %edx
56c511:	d3 e8                	shr    %cl,%eax
56c513:	92                   	xchg   %eax,%edx
56c514:	2b c2                	sub    %edx,%eax
56c516:	8b 53 14             	mov    0x14(%ebx),%edx
56c519:	8b 52 10             	mov    0x10(%edx),%edx
56c51c:	0f af d0             	imul   %eax,%edx
56c51f:	03 d5                	add    %ebp,%edx
56c521:	89 53 20             	mov    %edx,0x20(%ebx)
56c524:	8b 43 14             	mov    0x14(%ebx),%eax
56c527:	8b 08                	mov    (%eax),%ecx
56c529:	3b d1                	cmp    %ecx,%edx
56c52b:	7c 17                	jl     0x56c544
56c52d:	68 b8 01 00 00       	push   $0x1b8
56c532:	68 58 06 6a 00       	push   $0x6a0658
56c537:	68 38 06 6a 00       	push   $0x6a0638
56c53c:	e8 ff e5 fe ff       	call   0x55ab40
56c541:	83 c4 0c             	add    $0xc,%esp
56c544:	33 c0                	xor    %eax,%eax
56c546:	89 43 24             	mov    %eax,0x24(%ebx)
56c549:	eb 20                	jmp    0x56c56b
56c54b:	8b 53 14             	mov    0x14(%ebx),%edx
56c54e:	8b 4b 20             	mov    0x20(%ebx),%ecx
56c551:	c1 e1 02             	shl    $0x2,%ecx
56c554:	8b 52 04             	mov    0x4(%edx),%edx
56c557:	03 d1                	add    %ecx,%edx
56c559:	8b 0a                	mov    (%edx),%ecx
56c55b:	3b c1                	cmp    %ecx,%eax
56c55d:	7c 09                	jl     0x56c568
56c55f:	ff 02                	incl   (%edx)
56c561:	33 c0                	xor    %eax,%eax
56c563:	e9 90 00 00 00       	jmp    0x56c5f8
56c568:	ff 43 24             	incl   0x24(%ebx)
56c56b:	8b 43 24             	mov    0x24(%ebx),%eax
56c56e:	8b 13                	mov    (%ebx),%edx
56c570:	3b c2                	cmp    %edx,%eax
56c572:	7d 08                	jge    0x56c57c
56c574:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
56c578:	3b c1                	cmp    %ecx,%eax
56c57a:	7c cf                	jl     0x56c54b
56c57c:	ff 43 1c             	incl   0x1c(%ebx)
56c57f:	83 43 14 14          	addl   $0x14,0x14(%ebx)
56c583:	8b 53 10             	mov    0x10(%ebx),%edx
56c586:	8b 12                	mov    (%edx),%edx
56c588:	8b 43 1c             	mov    0x1c(%ebx),%eax
56c58b:	3b d0                	cmp    %eax,%edx
56c58d:	7e 0d                	jle    0x56c59c
56c58f:	33 c9                	xor    %ecx,%ecx
56c591:	8a 4f 02             	mov    0x2(%edi),%cl
56c594:	3b c1                	cmp    %ecx,%eax
56c596:	0f 8c 6b fc ff ff    	jl     0x56c207
56c59c:	ff 43 18             	incl   0x18(%ebx)
56c59f:	83 43 10 10          	addl   $0x10,0x10(%ebx)
56c5a3:	8b 43 18             	mov    0x18(%ebx),%eax
56c5a6:	8b 53 08             	mov    0x8(%ebx),%edx
56c5a9:	3b c2                	cmp    %edx,%eax
56c5ab:	7d 0c                	jge    0x56c5b9
56c5ad:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
56c5b1:	3b c1                	cmp    %ecx,%eax
56c5b3:	0f 8c 30 fc ff ff    	jl     0x56c1e9
56c5b9:	8b 43 28             	mov    0x28(%ebx),%eax
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