56e380:	b8 0a 00 00 00       	mov    $0xa,%eax
56e385:	e8 2a 1b 00 00       	call   0x56feb4
56e38a:	8b d8                	mov    %eax,%ebx
56e38c:	85 db                	test   %ebx,%ebx
56e38e:	75 17                	jne    0x56e3a7
56e390:	68 8f 02 00 00       	push   $0x28f
56e395:	68 27 0c 6a 00       	push   $0x6a0c27
56e39a:	68 21 0c 6a 00       	push   $0x6a0c21
56e39f:	e8 9c c7 fe ff       	call   0x55ab40
56e3a4:	83 c4 0c             	add    $0xc,%esp
56e3a7:	8b ce                	mov    %esi,%ecx
56e3a9:	8b d3                	mov    %ebx,%edx
56e3ab:	8b c3                	mov    %ebx,%eax
56e3ad:	e8 0e f5 ff ff       	call   0x56d8c0
56e3b2:	8b f0                	mov    %eax,%esi
56e3b4:	85 f6                	test   %esi,%esi
56e3b6:	75 17                	jne    0x56e3cf
56e3b8:	68 91 02 00 00       	push   $0x291
56e3bd:	68 37 0c 6a 00       	push   $0x6a0c37
56e3c2:	68 32 0c 6a 00       	push   $0x6a0c32
56e3c7:	e8 74 c7 fe ff       	call   0x55ab40
56e3cc:	83 c4 0c             	add    $0xc,%esp
56e3cf:	8b c3                	mov    %ebx,%eax
56e3d1:	e8 5e 1b 00 00       	call   0x56ff34
56e3d6:	8b c6                	mov    %esi,%eax
56e3d8:	5e                   	pop    %esi
56e3d9:	5b                   	pop    %ebx
56e3da:	c3                   	ret
56e3db:	90                   	nop
56e3dc:	55                   	push   %ebp
56e3dd:	8b ec                	mov    %esp,%ebp
56e3df:	53                   	push   %ebx
56e3e0:	56                   	push   %esi
56e3e1:	57                   	push   %edi
56e3e2:	8b f1                	mov    %ecx,%esi
56e3e4:	8b da                	mov    %edx,%ebx
56e3e6:	8b f8                	mov    %eax,%edi
56e3e8:	85 db                	test   %ebx,%ebx
56e3ea:	7d 17                	jge    0x56e403
56e3ec:	68 b3 00 00 00       	push   $0xb3
56e3f1:	68 84 0c 6a 00       	push   $0x6a0c84
56e3f6:	68 6c 0c 6a 00       	push   $0x6a0c6c
56e3fb:	e8 40 c7 fe ff       	call   0x55ab40
56e400:	83 c4 0c             	add    $0xc,%esp
56e403:	8d 43 01             	lea    0x1(%ebx),%eax
56e406:	8b 55 18             	mov    0x18(%ebp),%edx
56e409:	d1 f8                	sar    $1,%eax
56e40b:	85 f6                	test   %esi,%esi
56e40d:	89 02                	mov    %eax,(%edx)
56e40f:	7d 17                	jge    0x56e428
56e411:	68 b4 00 00 00       	push   $0xb4
56e416:	68 a5 0c 6a 00       	push   $0x6a0ca5
56e41b:	68 8f 0c 6a 00       	push   $0x6a0c8f
56e420:	e8 1b c7 fe ff       	call   0x55ab40
56e425:	83 c4 0c             	add    $0xc,%esp
56e428:	8d 4e 01             	lea    0x1(%esi),%ecx
56e42b:	8b 45 14             	mov    0x14(%ebp),%eax
56e42e:	d1 f9                	sar    $1,%ecx
56e430:	85 db                	test   %ebx,%ebx
56e432:	89 08                	mov    %ecx,(%eax)
56e434:	7d 17                	jge    0x56e44d
56e436:	68 b5 00 00 00       	push   $0xb5
56e43b:	68 c7 0c 6a 00       	push   $0x6a0cc7
56e440:	68 b0 0c 6a 00       	push   $0x6a0cb0
56e445:	e8 f6 c6 fe ff       	call   0x55ab40
56e44a:	83 c4 0c             	add    $0xc,%esp
56e44d:	8b 55 0c             	mov    0xc(%ebp),%edx
56e450:	d1 fb                	sar    $1,%ebx
56e452:	85 f6                	test   %esi,%esi
56e454:	89 1a                	mov    %ebx,(%edx)
56e456:	7d 17                	jge    0x56e46f
56e458:	68 b6 00 00 00       	push   $0xb6
56e45d:	68 e7 0c 6a 00       	push   $0x6a0ce7
56e462:	68 d2 0c 6a 00       	push   $0x6a0cd2
56e467:	e8 d4 c6 fe ff       	call   0x55ab40
56e46c:	83 c4 0c             	add    $0xc,%esp
56e46f:	8b 4d 08             	mov    0x8(%ebp),%ecx
56e472:	d1 fe                	sar    $1,%esi
56e474:	89 31                	mov    %esi,(%ecx)
56e476:	8b 45 1c             	mov    0x1c(%ebp),%eax
56e479:	89 38                	mov    %edi,(%eax)
56e47b:	8b 55 14             	mov    0x14(%ebp),%edx
56e47e:	8b 45 18             	mov    0x18(%ebp),%eax
56e481:	8b 0a                	mov    (%edx),%ecx
56e483:	8b 10                	mov    (%eax),%edx
56e485:	2b ca                	sub    %edx,%ecx
56e487:	0f af 4d 20          	imul   0x20(%ebp),%ecx
56e48b:	c1 e1 02             	shl    $0x2,%ecx
56e48e:	03 f9                	add    %ecx,%edi
56e490:	8b 4d 10             	mov    0x10(%ebp),%ecx
56e493:	89 39                	mov    %edi,(%ecx)
56e495:	5f                   	pop    %edi
56e496:	5e                   	pop    %esi
56e497:	5b                   	pop    %ebx
56e498:	5d                   	pop    %ebp
56e499:	c2 1c 00             	ret    $0x1c
56e49c:	55                   	push   %ebp
56e49d:	8b ec                	mov    %esp,%ebp
56e49f:	50                   	push   %eax
56e4a0:	b8 04 00 00 00       	mov    $0x4,%eax
56e4a5:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
56e4ab:	50                   	push   %eax
56e4ac:	48                   	dec    %eax
56e4ad:	75 f6                	jne    0x56e4a5
56e4af:	8b 45 fc             	mov    -0x4(%ebp),%eax
56e4b2:	83 c4 ec             	add    $0xffffffec,%esp
56e4b5:	53                   	push   %ebx
56e4b6:	56                   	push   %esi
56e4b7:	57                   	push   %edi
56e4b8:	8b f1                	mov    %ecx,%esi
56e4ba:	8b da                	mov    %edx,%ebx
56e4bc:	89 45 fc             	mov    %eax,-0x4(%ebp)
56e4bf:	8b 7d 18             	mov    0x18(%ebp),%edi
56e4c2:	8b c6                	mov    %esi,%eax
56e4c4:	2b c3                	sub    %ebx,%eax
56e4c6:	79 17                	jns    0x56e4df
56e4c8:	68 bf 00 00 00       	push   $0xbf
56e4cd:	68 13 0d 6a 00       	push   $0x6a0d13
56e4d2:	68 f2 0c 6a 00       	push   $0x6a0cf2
56e4d7:	e8 64 c6 fe ff       	call   0x55ab40
56e4dc:	83 c4 0c             	add    $0xc,%esp
56e4df:	8d 95 e8 bf ff ff    	lea    -0x4018(%ebp),%edx
56e4e5:	2b f3                	sub    %ebx,%esi
56e4e7:	89 55 f8             	mov    %edx,-0x8(%ebp)
56e4ea:	83 c6 03             	add    $0x3,%esi
56e4ed:	8b 4d 20             	mov    0x20(%ebp),%ecx
56e4f0:	03 c9                	add    %ecx,%ecx
56e4f2:	89 4d ec             	mov    %ecx,-0x14(%ebp)
56e4f5:	8b 45 14             	mov    0x14(%ebp),%eax
56e4f8:	2b c7                	sub    %edi,%eax
56e4fa:	89 45 f4             	mov    %eax,-0xc(%ebp)
56e4fd:	c1 fe 02             	sar    $0x2,%esi
56e500:	8b 55 08             	mov    0x8(%ebp),%edx
56e503:	8b 4d 0c             	mov    0xc(%ebp),%ecx
56e506:	8b de                	mov    %esi,%ebx
56e508:	2b d1                	sub    %ecx,%edx
56e50a:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
56e510:	89 55 f0             	mov    %edx,-0x10(%ebp)
56e513:	7e 16                	jle    0x56e52b
56e515:	8b c3                	mov    %ebx,%eax
56e517:	c1 e0 02             	shl    $0x2,%eax
56e51a:	e8 5d 9e 00 00       	call   0x57837c
56e51f:	89 45 f8             	mov    %eax,-0x8(%ebp)
56e522:	85 c0                	test   %eax,%eax
56e524:	75 05                	jne    0x56e52b
56e526:	e8 1d c6 fe ff       	call   0x55ab48
56e52b:	8b 55 0c             	mov    0xc(%ebp),%edx
56e52e:	3b fa                	cmp    %edx,%edi
56e530:	0f 8e dc 00 00 00    	jle    0x56e612
56e536:	8b 4d f8             	mov    -0x8(%ebp),%ecx
56e539:	8b 45 20             	mov    0x20(%ebp),%eax
56e53c:	c1 e0 02             	shl    $0x2,%eax
56e53f:	8b 55 fc             	mov    -0x4(%ebp),%edx
56e542:	03 c2                	add    %edx,%eax
56e544:	8b 55 1c             	mov    0x1c(%ebp),%edx
56e547:	8b 5d f4             	mov    -0xc(%ebp),%ebx
56e54a:	c7 45 e8 01 00 00 00 	movl   $0x1,-0x18(%ebp)
56e551:	eb 26                	jmp    0x56e579
56e553:	8b 75 e8             	mov    -0x18(%ebp),%esi
56e556:	85 f6                	test   %esi,%esi
56e558:	74 07                	je     0x56e561
56e55a:	8b 32                	mov    (%edx),%esi
56e55c:	89 31                	mov    %esi,(%ecx)
56e55e:	83 c1 04             	add    $0x4,%ecx
56e561:	8b 30                	mov    (%eax),%esi
56e563:	89 32                	mov    %esi,(%edx)
56e565:	8b 75 ec             	mov    -0x14(%ebp),%esi
56e568:	c1 e6 02             	shl    $0x2,%esi
56e56b:	03 c6                	add    %esi,%eax
56e56d:	8b 75 20             	mov    0x20(%ebp),%esi
56e570:	c1 e6 02             	shl    $0x2,%esi
56e573:	03 d6                	add    %esi,%edx
56e575:	83 75 e8 01          	xorl   $0x1,-0x18(%ebp)
56e579:	8b f3                	mov    %ebx,%esi
56e57b:	83 c3 ff             	add    $0xffffffff,%ebx
56e57e:	85 f6                	test   %esi,%esi
56e580:	7f d1                	jg     0x56e553
56e582:	8b 55 f0             	mov    -0x10(%ebp),%edx
56e585:	8b 45 10             	mov    0x10(%ebp),%eax
56e588:	4a                   	dec    %edx
56e589:	8b 5d f0             	mov    -0x10(%ebp),%ebx
56e58c:	0f af 55 20          	imul   0x20(%ebp),%edx
56e590:	c1 e2 02             	shl    $0x2,%edx
56e593:	8b 75 f8             	mov    -0x8(%ebp),%esi
56e596:	03 d0                	add    %eax,%edx
56e598:	8b 45 f4             	mov    -0xc(%ebp),%eax
56e59b:	03 c3                	add    %ebx,%eax
56e59d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
56e5a0:	48                   	dec    %eax
56e5a1:	d1 f8                	sar    $1,%eax
56e5a3:	03 c0                	add    %eax,%eax
56e5a5:	0f af 45 20          	imul   0x20(%ebp),%eax
56e5a9:	c1 e0 02             	shl    $0x2,%eax
56e5ac:	03 c3                	add    %ebx,%eax
56e5ae:	8b d9                	mov    %ecx,%ebx
56e5b0:	2b de                	sub    %esi,%ebx
56e5b2:	85 db                	test   %ebx,%ebx
56e5b4:	79 03                	jns    0x56e5b9
56e5b6:	83 c3 03             	add    $0x3,%ebx
56e5b9:	c1 fb 02             	sar    $0x2,%ebx
56e5bc:	53                   	push   %ebx
56e5bd:	8b 5d f0             	mov    -0x10(%ebp),%ebx
56e5c0:	5e                   	pop    %esi
56e5c1:	2b de                	sub    %esi,%ebx
56e5c3:	eb 14                	jmp    0x56e5d9
56e5c5:	8b 30                	mov    (%eax),%esi
56e5c7:	89 32                	mov    %esi,(%edx)
56e5c9:	8b 75 20             	mov    0x20(%ebp),%esi
56e5cc:	c1 e6 02             	shl    $0x2,%esi
56e5cf:	2b d6                	sub    %esi,%edx
56e5d1:	8b 75 ec             	mov    -0x14(%ebp),%esi
56e5d4:	c1 e6 02             	shl    $0x2,%esi
56e5d7:	2b c6                	sub    %esi,%eax
56e5d9:	8b f3                	mov    %ebx,%esi
56e5db:	83 c3 ff             	add    $0xffffffff,%ebx
56e5de:	85 f6                	test   %esi,%esi
56e5e0:	7f e3                	jg     0x56e5c5
56e5e2:	8b d9                	mov    %ecx,%ebx
56e5e4:	8b 45 f8             	mov    -0x8(%ebp),%eax
56e5e7:	2b d8                	sub    %eax,%ebx
56e5e9:	85 db                	test   %ebx,%ebx
56e5eb:	79 03                	jns    0x56e5f0
56e5ed:	83 c3 03             	add    $0x3,%ebx
56e5f0:	c1 fb 02             	sar    $0x2,%ebx
56e5f3:	eb 0f                	jmp    0x56e604
56e5f5:	83 e9 04             	sub    $0x4,%ecx
56e5f8:	8b 01                	mov    (%ecx),%eax
56e5fa:	89 02                	mov    %eax,(%edx)
56e5fc:	8b 45 20             	mov    0x20(%ebp),%eax
56e5ff:	c1 e0 02             	shl    $0x2,%eax
56e602:	2b d0                	sub    %eax,%edx
56e604:	8b c3                	mov    %ebx,%eax
56e606:	83 c3 ff             	add    $0xffffffff,%ebx
56e609:	85 c0                	test   %eax,%eax
56e60b:	7f e8                	jg     0x56e5f5
56e60d:	e9 cc 00 00 00       	jmp    0x56e6de
56e612:	33 d2                	xor    %edx,%edx
56e614:	89 55 e8             	mov    %edx,-0x18(%ebp)
56e617:	8b 45 fc             	mov    -0x4(%ebp),%eax
56e61a:	8b 55 1c             	mov    0x1c(%ebp),%edx
56e61d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
56e620:	8b 5d f4             	mov    -0xc(%ebp),%ebx
56e623:	eb 26                	jmp    0x56e64b
56e625:	8b 75 e8             	mov    -0x18(%ebp),%esi
56e628:	85 f6                	test   %esi,%esi
56e62a:	74 07                	je     0x56e633
56e62c:	8b 32                	mov    (%edx),%esi
56e62e:	89 31                	mov    %esi,(%ecx)
56e630:	83 c1 04             	add    $0x4,%ecx
56e633:	8b 30                	mov    (%eax),%esi
56e635:	89 32                	mov    %esi,(%edx)
56e637:	8b 75 ec             	mov    -0x14(%ebp),%esi
56e63a:	c1 e6 02             	shl    $0x2,%esi
56e63d:	03 c6                	add    %esi,%eax
56e63f:	8b 75 20             	mov    0x20(%ebp),%esi
56e642:	c1 e6 02             	shl    $0x2,%esi
56e645:	03 d6                	add    %esi,%edx
56e647:	83 75 e8 01          	xorl   $0x1,-0x18(%ebp)
56e64b:	8b f3                	mov    %ebx,%esi
56e64d:	83 c3 ff             	add    $0xffffffff,%ebx
56e650:	85 f6                	test   %esi,%esi
56e652:	7f d1                	jg     0x56e625
56e654:	8b 45 f4             	mov    -0xc(%ebp),%eax
56e657:	8b 55 f0             	mov    -0x10(%ebp),%edx
56e65a:	03 c2                	add    %edx,%eax
56e65c:	8b 5d 10             	mov    0x10(%ebp),%ebx
56e65f:	d1 f8                	sar    $1,%eax
56e661:	8b 75 f8             	mov    -0x8(%ebp),%esi
56e664:	03 c0                	add    %eax,%eax
56e666:	48                   	dec    %eax
56e667:	f7 6d 20             	imull  0x20(%ebp)
56e66a:	c1 e0 02             	shl    $0x2,%eax
56e66d:	8b 55 fc             	mov    -0x4(%ebp),%edx
56e670:	03 c2                	add    %edx,%eax
56e672:	8b 55 f0             	mov    -0x10(%ebp),%edx
56e675:	4a                   	dec    %edx
56e676:	0f af 55 20          	imul   0x20(%ebp),%edx
56e67a:	c1 e2 02             	shl    $0x2,%edx
56e67d:	03 d3                	add    %ebx,%edx
56e67f:	8b d9                	mov    %ecx,%ebx
56e681:	2b de                	sub    %esi,%ebx
56e683:	85 db                	test   %ebx,%ebx
56e685:	79 03                	jns    0x56e68a
56e687:	83 c3 03             	add    $0x3,%ebx
56e68a:	c1 fb 02             	sar    $0x2,%ebx
56e68d:	53                   	push   %ebx
56e68e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
56e691:	5e                   	pop    %esi
56e692:	2b de                	sub    %esi,%ebx
56e694:	eb 14                	jmp    0x56e6aa
56e696:	8b 30                	mov    (%eax),%esi
56e698:	89 32                	mov    %esi,(%edx)
56e69a:	8b 75 ec             	mov    -0x14(%ebp),%esi
56e69d:	c1 e6 02             	shl    $0x2,%esi
56e6a0:	2b c6                	sub    %esi,%eax
56e6a2:	8b 75 20             	mov    0x20(%ebp),%esi
56e6a5:	c1 e6 02             	shl    $0x2,%esi
56e6a8:	2b d6                	sub    %esi,%edx
56e6aa:	8b f3                	mov    %ebx,%esi
56e6ac:	83 c3 ff             	add    $0xffffffff,%ebx
56e6af:	85 f6                	test   %esi,%esi
56e6b1:	7f e3                	jg     0x56e696
56e6b3:	8b d9                	mov    %ecx,%ebx
56e6b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
56e6b8:	2b d8                	sub    %eax,%ebx
56e6ba:	85 db                	test   %ebx,%ebx
56e6bc:	79 03                	jns    0x56e6c1
56e6be:	83 c3 03             	add    $0x3,%ebx
56e6c1:	c1 fb 02             	sar    $0x2,%ebx
56e6c4:	eb 0f                	jmp    0x56e6d5
56e6c6:	83 e9 04             	sub    $0x4,%ecx
56e6c9:	8b 01                	mov    (%ecx),%eax
56e6cb:	89 02                	mov    %eax,(%edx)
56e6cd:	8b 45 20             	mov    0x20(%ebp),%eax
56e6d0:	c1 e0 02             	shl    $0x2,%eax
56e6d3:	2b d0                	sub    %eax,%edx
56e6d5:	8b c3                	mov    %ebx,%eax
56e6d7:	83 c3 ff             	add    $0xffffffff,%ebx
56e6da:	85 c0                	test   %eax,%eax
56e6dc:	7f e8                	jg     0x56e6c6
56e6de:	8d 95 e8 bf ff ff    	lea    -0x4018(%ebp),%edx
56e6e4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
56e6e7:	3b d1                	cmp    %ecx,%edx
56e6e9:	74 08                	je     0x56e6f3
56e6eb:	8b 45 f8             	mov    -0x8(%ebp),%eax
56e6ee:	e8 91 9c 00 00       	call   0x578384
56e6f3:	5f                   	pop    %edi
56e6f4:	5e                   	pop    %esi
56e6f5:	5b                   	pop    %ebx
56e6f6:	8b e5                	mov    %ebp,%esp
56e6f8:	5d                   	pop    %ebp
56e6f9:	c2 1c 00             	ret    $0x1c
56e6fc:	55                   	push   %ebp
56e6fd:	8b ec                	mov    %esp,%ebp
56e6ff:	50                   	push   %eax
56e700:	b8 04 00 00 00       	mov    $0x4,%eax
56e705:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
56e70b:	50                   	push   %eax
56e70c:	48                   	dec    %eax
56e70d:	75 f6                	jne    0x56e705
56e70f:	8b 45 fc             	mov    -0x4(%ebp),%eax
56e712:	83 c4 ec             	add    $0xffffffec,%esp
56e715:	53                   	push   %ebx
56e716:	56                   	push   %esi
56e717:	57                   	push   %edi
56e718:	8b f9                	mov    %ecx,%edi
56e71a:	8b f2                	mov    %edx,%esi
56e71c:	89 45 fc             	mov    %eax,-0x4(%ebp)
56e71f:	8b 5d 20             	mov    0x20(%ebp),%ebx
56e722:	8b c7                	mov    %edi,%eax