55b58e:	3b fb                	cmp    %ebx,%edi
55b590:	73 44                	jae    0x55b5d6
55b592:	8b 5d f4             	mov    -0xc(%ebp),%ebx
55b595:	8b cf                	mov    %edi,%ecx
55b597:	b8 93 24 49 92       	mov    $0x92492493,%eax
55b59c:	2b 4b 0c             	sub    0xc(%ebx),%ecx
55b59f:	f7 e9                	imul   %ecx
55b5a1:	8b 43 08             	mov    0x8(%ebx),%eax
55b5a4:	03 d1                	add    %ecx,%edx
55b5a6:	c1 fa 05             	sar    $0x5,%edx
55b5a9:	8b ca                	mov    %edx,%ecx
55b5ab:	c1 e9 1f             	shr    $0x1f,%ecx
55b5ae:	03 ca                	add    %edx,%ecx
55b5b0:	89 0c b0             	mov    %ecx,(%eax,%esi,4)
55b5b3:	8b ce                	mov    %esi,%ecx
55b5b5:	8b 43 08             	mov    0x8(%ebx),%eax
55b5b8:	83 f1 01             	xor    $0x1,%ecx
55b5bb:	8b 04 88             	mov    (%eax,%ecx,4),%eax
55b5be:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
55b5c5:	8d 0c c5 00 00 00 00 	lea    0x0(,%eax,8),%ecx
55b5cc:	2b c8                	sub    %eax,%ecx
55b5ce:	8b 43 0c             	mov    0xc(%ebx),%eax
55b5d1:	8d 1c c8             	lea    (%eax,%ecx,8),%ebx
55b5d4:	eb 49                	jmp    0x55b61f
55b5d6:	8b 45 f8             	mov    -0x8(%ebp),%eax
55b5d9:	33 c9                	xor    %ecx,%ecx
55b5db:	39 4f 18             	cmp    %ecx,0x18(%edi)
55b5de:	8b 7d f4             	mov    -0xc(%ebp),%edi
55b5e1:	0f 45 c1             	cmovne %ecx,%eax
55b5e4:	8b cb                	mov    %ebx,%ecx
55b5e6:	89 45 f8             	mov    %eax,-0x8(%ebp)
55b5e9:	b8 93 24 49 92       	mov    $0x92492493,%eax
55b5ee:	2b 4f 0c             	sub    0xc(%edi),%ecx
55b5f1:	f7 e9                	imul   %ecx
55b5f3:	8b 47 08             	mov    0x8(%edi),%eax
55b5f6:	03 d1                	add    %ecx,%edx
55b5f8:	c1 fa 05             	sar    $0x5,%edx
55b5fb:	8b ca                	mov    %edx,%ecx
55b5fd:	c1 e9 1f             	shr    $0x1f,%ecx
55b600:	03 ca                	add    %edx,%ecx
55b602:	89 0c b0             	mov    %ecx,(%eax,%esi,4)
55b605:	8b ce                	mov    %esi,%ecx
55b607:	8b 47 08             	mov    0x8(%edi),%eax
55b60a:	83 f1 01             	xor    $0x1,%ecx
55b60d:	8b 04 88             	mov    (%eax,%ecx,4),%eax
55b610:	8d 0c c5 00 00 00 00 	lea    0x0(,%eax,8),%ecx
55b617:	2b c8                	sub    %eax,%ecx
55b619:	8b 47 0c             	mov    0xc(%edi),%eax
55b61c:	8d 3c c8             	lea    (%eax,%ecx,8),%edi
55b61f:	8b c6                	mov    %esi,%eax
55b621:	99                   	cltd
55b622:	2b c2                	sub    %edx,%eax
55b624:	8b f0                	mov    %eax,%esi
55b626:	d1 fe                	sar    $1,%esi
55b628:	85 f6                	test   %esi,%esi
55b62a:	0f 8f 30 ff ff ff    	jg     0x55b560
55b630:	8b 4d f4             	mov    -0xc(%ebp),%ecx
55b633:	5f                   	pop    %edi
55b634:	8b 41 08             	mov    0x8(%ecx),%eax
55b637:	8b 40 04             	mov    0x4(%eax),%eax
55b63a:	8d 14 c5 00 00 00 00 	lea    0x0(,%eax,8),%edx
55b641:	2b d0                	sub    %eax,%edx
55b643:	8b 41 0c             	mov    0xc(%ecx),%eax
55b646:	33 c9                	xor    %ecx,%ecx
55b648:	39 4c d0 18          	cmp    %ecx,0x18(%eax,%edx,8)
55b64c:	8b 45 e8             	mov    -0x18(%ebp),%eax
55b64f:	0f 94 c1             	sete   %cl
55b652:	89 08                	mov    %ecx,(%eax)
55b654:	8b 45 f0             	mov    -0x10(%ebp),%eax
55b657:	8b 40 0c             	mov    0xc(%eax),%eax
55b65a:	0f b6 40 0b          	movzbl 0xb(%eax),%eax
55b65e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b661:	5e                   	pop    %esi
55b662:	33 cd                	xor    %ebp,%ecx
55b664:	5b                   	pop    %ebx
55b665:	e8 70 5e 08 00       	call   0x5e14da
55b66a:	8b e5                	mov    %ebp,%esp
55b66c:	5d                   	pop    %ebp
55b66d:	c3                   	ret
55b66e:	cc                   	int3
55b66f:	cc                   	int3
55b670:	55                   	push   %ebp
55b671:	8b ec                	mov    %esp,%ebp
55b673:	83 ec 18             	sub    $0x18,%esp
55b676:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55b67b:	33 c5                	xor    %ebp,%eax
55b67d:	89 45 fc             	mov    %eax,-0x4(%ebp)
55b680:	8b 55 10             	mov    0x10(%ebp),%edx
55b683:	53                   	push   %ebx
55b684:	8b 5d 0c             	mov    0xc(%ebp),%ebx
55b687:	56                   	push   %esi
55b688:	8b 75 08             	mov    0x8(%ebp),%esi
55b68b:	89 5d e8             	mov    %ebx,-0x18(%ebp)
55b68e:	89 55 ec             	mov    %edx,-0x14(%ebp)
55b691:	8b 46 2c             	mov    0x2c(%esi),%eax
55b694:	85 c0                	test   %eax,%eax
55b696:	74 20                	je     0x55b6b8
55b698:	8b 0e                	mov    (%esi),%ecx
55b69a:	03 c8                	add    %eax,%ecx
55b69c:	8b c3                	mov    %ebx,%eax
55b69e:	89 0a                	mov    %ecx,(%edx)
55b6a0:	99                   	cltd
55b6a1:	01 06                	add    %eax,(%esi)
55b6a3:	11 56 04             	adc    %edx,0x4(%esi)
55b6a6:	33 c0                	xor    %eax,%eax
55b6a8:	5e                   	pop    %esi
55b6a9:	5b                   	pop    %ebx
55b6aa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b6ad:	33 cd                	xor    %ebp,%ecx
55b6af:	e8 26 5e 08 00       	call   0x5e14da
55b6b4:	8b e5                	mov    %ebp,%esp
55b6b6:	5d                   	pop    %ebp
55b6b7:	c3                   	ret
55b6b8:	57                   	push   %edi
55b6b9:	8b 7e 28             	mov    0x28(%esi),%edi
55b6bc:	8b c7                	mov    %edi,%eax
55b6be:	99                   	cltd
55b6bf:	8b ca                	mov    %edx,%ecx
55b6c1:	89 45 f8             	mov    %eax,-0x8(%ebp)
55b6c4:	51                   	push   %ecx
55b6c5:	50                   	push   %eax
55b6c6:	ff 76 04             	push   0x4(%esi)
55b6c9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
55b6cc:	ff 36                	push   (%esi)
55b6ce:	e8 fd 6a 08 00       	call   0x5e21d0
55b6d3:	8b c8                	mov    %eax,%ecx
55b6d5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
55b6d8:	85 c9                	test   %ecx,%ecx
55b6da:	75 3e                	jne    0x55b71a
55b6dc:	8b 56 08             	mov    0x8(%esi),%edx
55b6df:	2b 16                	sub    (%esi),%edx
55b6e1:	8b 4e 0c             	mov    0xc(%esi),%ecx
55b6e4:	1b 4e 04             	sbb    0x4(%esi),%ecx
55b6e7:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
55b6ea:	7c 07                	jl     0x55b6f3
55b6ec:	7f 0a                	jg     0x55b6f8
55b6ee:	3b 55 f8             	cmp    -0x8(%ebp),%edx
55b6f1:	77 05                	ja     0x55b6f8
55b6f3:	8b 7e 08             	mov    0x8(%esi),%edi
55b6f6:	2b 3e                	sub    (%esi),%edi
55b6f8:	ff 76 04             	push   0x4(%esi)
55b6fb:	8b 46 18             	mov    0x18(%esi),%eax
55b6fe:	ff 36                	push   (%esi)
55b700:	57                   	push   %edi
55b701:	8b 08                	mov    (%eax),%ecx
55b703:	ff 76 24             	push   0x24(%esi)
55b706:	50                   	push   %eax
55b707:	8b 41 08             	mov    0x8(%ecx),%eax
55b70a:	ff d0                	call   *%eax
55b70c:	83 c4 14             	add    $0x14,%esp
55b70f:	85 c0                	test   %eax,%eax
55b711:	0f 85 0f 01 00 00    	jne    0x55b826
55b717:	8b 4d f0             	mov    -0x10(%ebp),%ecx
55b71a:	8b 7e 28             	mov    0x28(%esi),%edi
55b71d:	2b f9                	sub    %ecx,%edi
55b71f:	89 7d f4             	mov    %edi,-0xc(%ebp)
55b722:	3b df                	cmp    %edi,%ebx
55b724:	7f 25                	jg     0x55b74b
55b726:	8b 46 24             	mov    0x24(%esi),%eax
55b729:	03 c1                	add    %ecx,%eax
55b72b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
55b72e:	5f                   	pop    %edi
55b72f:	89 01                	mov    %eax,(%ecx)
55b731:	8b c3                	mov    %ebx,%eax
55b733:	99                   	cltd
55b734:	01 06                	add    %eax,(%esi)
55b736:	11 56 04             	adc    %edx,0x4(%esi)
55b739:	33 c0                	xor    %eax,%eax
55b73b:	5e                   	pop    %esi
55b73c:	5b                   	pop    %ebx
55b73d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b740:	33 cd                	xor    %ebp,%ecx
55b742:	e8 93 5d 08 00       	call   0x5e14da
55b747:	8b e5                	mov    %ebp,%esp
55b749:	5d                   	pop    %ebp
55b74a:	c3                   	ret
55b74b:	8b 46 10             	mov    0x10(%esi),%eax
55b74e:	3b c3                	cmp    %ebx,%eax
55b750:	7d 71                	jge    0x55b7c3
55b752:	b9 02 00 00 00       	mov    $0x2,%ecx
55b757:	f7 e9                	imul   %ecx
55b759:	8b ca                	mov    %edx,%ecx
55b75b:	8b f8                	mov    %eax,%edi
55b75d:	85 c9                	test   %ecx,%ecx
55b75f:	7f 11                	jg     0x55b772
55b761:	7c 08                	jl     0x55b76b
55b763:	81 ff 80 00 00 00    	cmp    $0x80,%edi
55b769:	73 07                	jae    0x55b772
55b76b:	bf 80 00 00 00       	mov    $0x80,%edi
55b770:	33 c9                	xor    %ecx,%ecx
55b772:	8b c3                	mov    %ebx,%eax
55b774:	99                   	cltd
55b775:	3b d1                	cmp    %ecx,%edx
55b777:	7c 17                	jl     0x55b790
55b779:	7f 05                	jg     0x55b780
55b77b:	3b c7                	cmp    %edi,%eax
55b77d:	76 11                	jbe    0x55b790
55b77f:	90                   	nop
55b780:	0f a4 f9 01          	shld   $0x1,%edi,%ecx
55b784:	03 ff                	add    %edi,%edi
55b786:	3b d1                	cmp    %ecx,%edx
55b788:	7f f6                	jg     0x55b780
55b78a:	7c 04                	jl     0x55b790
55b78c:	3b c7                	cmp    %edi,%eax
55b78e:	77 f0                	ja     0x55b780
55b790:	51                   	push   %ecx
55b791:	57                   	push   %edi
55b792:	ff 76 1c             	push   0x1c(%esi)
55b795:	e8 d6 bd fd ff       	call   0x537570
55b79a:	83 c4 0c             	add    $0xc,%esp
55b79d:	85 c0                	test   %eax,%eax
55b79f:	75 16                	jne    0x55b7b7
55b7a1:	5f                   	pop    %edi
55b7a2:	5e                   	pop    %esi
55b7a3:	b8 07 00 00 00       	mov    $0x7,%eax
55b7a8:	5b                   	pop    %ebx
55b7a9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b7ac:	33 cd                	xor    %ebp,%ecx
55b7ae:	e8 27 5d 08 00       	call   0x5e14da
55b7b3:	8b e5                	mov    %ebp,%esp
55b7b5:	5d                   	pop    %ebp
55b7b6:	c3                   	ret
55b7b7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
55b7ba:	89 7e 10             	mov    %edi,0x10(%esi)
55b7bd:	8b 7d f4             	mov    -0xc(%ebp),%edi
55b7c0:	89 46 1c             	mov    %eax,0x1c(%esi)
55b7c3:	8b 46 24             	mov    0x24(%esi),%eax
55b7c6:	57                   	push   %edi
55b7c7:	03 c1                	add    %ecx,%eax
55b7c9:	50                   	push   %eax
55b7ca:	ff 76 1c             	push   0x1c(%esi)
55b7cd:	e8 2e 77 08 00       	call   0x5e2f00
55b7d2:	8b c7                	mov    %edi,%eax
55b7d4:	83 c4 0c             	add    $0xc,%esp
55b7d7:	99                   	cltd
55b7d8:	8b fb                	mov    %ebx,%edi
55b7da:	01 06                	add    %eax,(%esi)
55b7dc:	11 56 04             	adc    %edx,0x4(%esi)
55b7df:	2b 7d f4             	sub    -0xc(%ebp),%edi
55b7e2:	85 ff                	test   %edi,%edi
55b7e4:	7e 36                	jle    0x55b81c
55b7e6:	3b 7e 28             	cmp    0x28(%esi),%edi
55b7e9:	8d 45 f8             	lea    -0x8(%ebp),%eax
55b7ec:	8b df                	mov    %edi,%ebx
55b7ee:	0f 4f 5e 28          	cmovg  0x28(%esi),%ebx
55b7f2:	50                   	push   %eax
55b7f3:	53                   	push   %ebx
55b7f4:	56                   	push   %esi
55b7f5:	e8 76 fe ff ff       	call   0x55b670
55b7fa:	83 c4 0c             	add    $0xc,%esp
55b7fd:	85 c0                	test   %eax,%eax
55b7ff:	75 25                	jne    0x55b826
55b801:	8b 46 1c             	mov    0x1c(%esi),%eax
55b804:	53                   	push   %ebx
55b805:	ff 75 f8             	push   -0x8(%ebp)
55b808:	2b c7                	sub    %edi,%eax
55b80a:	03 45 e8             	add    -0x18(%ebp),%eax
55b80d:	50                   	push   %eax
55b80e:	e8 ed 76 08 00       	call   0x5e2f00
55b813:	2b fb                	sub    %ebx,%edi
55b815:	83 c4 0c             	add    $0xc,%esp
55b818:	85 ff                	test   %edi,%edi
55b81a:	7f ca                	jg     0x55b7e6
55b81c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
55b81f:	8b 46 1c             	mov    0x1c(%esi),%eax
55b822:	89 01                	mov    %eax,(%ecx)
55b824:	33 c0                	xor    %eax,%eax
55b826:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b829:	5f                   	pop    %edi
55b82a:	5e                   	pop    %esi
55b82b:	33 cd                	xor    %ebp,%ecx
55b82d:	5b                   	pop    %ebx
55b82e:	e8 a7 5c 08 00       	call   0x5e14da
55b833:	8b e5                	mov    %ebp,%esp
55b835:	5d                   	pop    %ebp
55b836:	c3                   	ret
55b837:	cc                   	int3
55b838:	cc                   	int3
55b839:	cc                   	int3
55b83a:	cc                   	int3
55b83b:	cc                   	int3
55b83c:	cc                   	int3
55b83d:	cc                   	int3
55b83e:	cc                   	int3
55b83f:	cc                   	int3
55b840:	55                   	push   %ebp
55b841:	8b ec                	mov    %esp,%ebp
55b843:	83 ec 18             	sub    $0x18,%esp
55b846:	a1 d4 89 72 00       	mov    0x7289d4,%eax
55b84b:	33 c5                	xor    %ebp,%eax
55b84d:	89 45 fc             	mov    %eax,-0x4(%ebp)
55b850:	53                   	push   %ebx
55b851:	8b 5d 0c             	mov    0xc(%ebp),%ebx
55b854:	56                   	push   %esi
55b855:	57                   	push   %edi
55b856:	8b 7d 08             	mov    0x8(%ebp),%edi
55b859:	8b 4f 2c             	mov    0x2c(%edi),%ecx
55b85c:	85 c9                	test   %ecx,%ecx
55b85e:	74 2a                	je     0x55b88a
55b860:	8b 07                	mov    (%edi),%eax
55b862:	03 c1                	add    %ecx,%eax
55b864:	53                   	push   %ebx
55b865:	50                   	push   %eax
55b866:	e8 25 1e fd ff       	call   0x52d690
55b86b:	83 c4 08             	add    $0x8,%esp
55b86e:	0f b6 c0             	movzbl %al,%eax
55b871:	99                   	cltd
55b872:	01 07                	add    %eax,(%edi)
55b874:	11 57 04             	adc    %edx,0x4(%edi)
55b877:	33 c0                	xor    %eax,%eax
55b879:	5f                   	pop    %edi
55b87a:	5e                   	pop    %esi
55b87b:	5b                   	pop    %ebx
55b87c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b87f:	33 cd                	xor    %ebp,%ecx
55b881:	e8 54 5c 08 00       	call   0x5e14da
55b886:	8b e5                	mov    %ebp,%esp
55b888:	5d                   	pop    %ebp
55b889:	c3                   	ret
55b88a:	8b 77 28             	mov    0x28(%edi),%esi
55b88d:	8b c6                	mov    %esi,%eax
55b88f:	99                   	cltd
55b890:	52                   	push   %edx
55b891:	50                   	push   %eax
55b892:	ff 77 04             	push   0x4(%edi)
55b895:	ff 37                	push   (%edi)
55b897:	e8 34 69 08 00       	call   0x5e21d0
55b89c:	8b c8                	mov    %eax,%ecx
55b89e:	85 c9                	test   %ecx,%ecx
55b8a0:	74 32                	je     0x55b8d4
55b8a2:	2b f1                	sub    %ecx,%esi
55b8a4:	83 fe 09             	cmp    $0x9,%esi
55b8a7:	7c 2b                	jl     0x55b8d4
55b8a9:	8b 47 24             	mov    0x24(%edi),%eax
55b8ac:	03 c1                	add    %ecx,%eax
55b8ae:	53                   	push   %ebx
55b8af:	50                   	push   %eax
55b8b0:	e8 db 1d fd ff       	call   0x52d690
55b8b5:	83 c4 08             	add    $0x8,%esp
55b8b8:	0f b6 c0             	movzbl %al,%eax
55b8bb:	99                   	cltd
55b8bc:	01 07                	add    %eax,(%edi)
55b8be:	11 57 04             	adc    %edx,0x4(%edi)
55b8c1:	33 c0                	xor    %eax,%eax
55b8c3:	5f                   	pop    %edi
55b8c4:	5e                   	pop    %esi
55b8c5:	5b                   	pop    %ebx
55b8c6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
55b8c9:	33 cd                	xor    %ebp,%ecx
55b8cb:	e8 0a 5c 08 00       	call   0x5e14da