61e491:	8b f1                	mov    %ecx,%esi
61e493:	8b 4c 24 08          	mov    0x8(%esp),%ecx
61e497:	57                   	push   %edi
61e498:	8b 7e 08             	mov    0x8(%esi),%edi
61e49b:	8b c7                	mov    %edi,%eax
61e49d:	8b 56 04             	mov    0x4(%esi),%edx
61e4a0:	2b c2                	sub    %edx,%eax
61e4a2:	c1 f8 07             	sar    $0x7,%eax
61e4a5:	3b c1                	cmp    %ecx,%eax
61e4a7:	73 37                	jae    0x61e4e0
61e4a9:	2b 16                	sub    (%esi),%edx
61e4ab:	53                   	push   %ebx
61e4ac:	bb ff ff ff 01       	mov    $0x1ffffff,%ebx
61e4b1:	c1 fa 07             	sar    $0x7,%edx
61e4b4:	8b c3                	mov    %ebx,%eax
61e4b6:	2b c2                	sub    %edx,%eax
61e4b8:	3b c1                	cmp    %ecx,%eax
61e4ba:	72 29                	jb     0x61e4e5
61e4bc:	2b 3e                	sub    (%esi),%edi
61e4be:	03 d1                	add    %ecx,%edx
61e4c0:	c1 ff 07             	sar    $0x7,%edi
61e4c3:	33 c9                	xor    %ecx,%ecx
61e4c5:	8b c7                	mov    %edi,%eax
61e4c7:	d1 e8                	shr    $1,%eax
61e4c9:	2b d8                	sub    %eax,%ebx
61e4cb:	03 c7                	add    %edi,%eax
61e4cd:	3b df                	cmp    %edi,%ebx
61e4cf:	0f 43 c8             	cmovae %eax,%ecx
61e4d2:	3b ca                	cmp    %edx,%ecx
61e4d4:	0f 43 d1             	cmovae %ecx,%edx
61e4d7:	8b ce                	mov    %esi,%ecx
61e4d9:	52                   	push   %edx
61e4da:	e8 0d ed df ff       	call   0x41d1ec
61e4df:	5b                   	pop    %ebx
61e4e0:	5f                   	pop    %edi
61e4e1:	5e                   	pop    %esi
61e4e2:	c2 04 00             	ret    $0x4
61e4e5:	68 58 20 bd 00       	push   $0xbd2058
61e4ea:	e8 27 b3 e0 ff       	call   0x429816
61e4ef:	cc                   	int3
61e4f0:	cc                   	int3
61e4f1:	cc                   	int3
61e4f2:	cc                   	int3
61e4f3:	cc                   	int3
61e4f4:	cc                   	int3
61e4f5:	cc                   	int3
61e4f6:	cc                   	int3
61e4f7:	cc                   	int3
61e4f8:	cc                   	int3
61e4f9:	cc                   	int3
61e4fa:	cc                   	int3
61e4fb:	cc                   	int3
61e4fc:	cc                   	int3
61e4fd:	cc                   	int3
61e4fe:	cc                   	int3
61e4ff:	cc                   	int3
61e500:	cc                   	int3
61e501:	cc                   	int3
61e502:	cc                   	int3
61e503:	cc                   	int3
61e504:	cc                   	int3
61e505:	cc                   	int3
61e506:	cc                   	int3
61e507:	cc                   	int3
61e508:	cc                   	int3
61e509:	cc                   	int3
61e50a:	cc                   	int3
61e50b:	cc                   	int3
61e50c:	cc                   	int3
61e50d:	cc                   	int3
61e50e:	cc                   	int3
61e50f:	cc                   	int3
61e510:	56                   	push   %esi
61e511:	8b f1                	mov    %ecx,%esi
61e513:	8b 4c 24 08          	mov    0x8(%esp),%ecx
61e517:	57                   	push   %edi
61e518:	8b 7e 08             	mov    0x8(%esi),%edi
61e51b:	8b c7                	mov    %edi,%eax
61e51d:	8b 56 04             	mov    0x4(%esi),%edx
61e520:	2b c2                	sub    %edx,%eax
61e522:	c1 f8 03             	sar    $0x3,%eax
61e525:	3b c1                	cmp    %ecx,%eax
61e527:	73 37                	jae    0x61e560
61e529:	2b 16                	sub    (%esi),%edx
61e52b:	53                   	push   %ebx
61e52c:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
61e531:	c1 fa 03             	sar    $0x3,%edx
61e534:	8b c3                	mov    %ebx,%eax
61e536:	2b c2                	sub    %edx,%eax
61e538:	3b c1                	cmp    %ecx,%eax
61e53a:	72 29                	jb     0x61e565
61e53c:	2b 3e                	sub    (%esi),%edi
61e53e:	03 d1                	add    %ecx,%edx
61e540:	c1 ff 03             	sar    $0x3,%edi
61e543:	33 c9                	xor    %ecx,%ecx
61e545:	8b c7                	mov    %edi,%eax
61e547:	d1 e8                	shr    $1,%eax
61e549:	2b d8                	sub    %eax,%ebx
61e54b:	03 c7                	add    %edi,%eax
61e54d:	3b df                	cmp    %edi,%ebx
61e54f:	0f 43 c8             	cmovae %eax,%ecx
61e552:	3b ca                	cmp    %edx,%ecx
61e554:	0f 43 d1             	cmovae %ecx,%edx
61e557:	8b ce                	mov    %esi,%ecx
61e559:	52                   	push   %edx
61e55a:	e8 4d 72 e0 ff       	call   0x4257ac
61e55f:	5b                   	pop    %ebx
61e560:	5f                   	pop    %edi
61e561:	5e                   	pop    %esi
61e562:	c2 04 00             	ret    $0x4
61e565:	68 58 20 bd 00       	push   $0xbd2058
61e56a:	e8 a7 b2 e0 ff       	call   0x429816
61e56f:	cc                   	int3
61e570:	cc                   	int3
61e571:	cc                   	int3
61e572:	cc                   	int3
61e573:	cc                   	int3
61e574:	cc                   	int3
61e575:	cc                   	int3
61e576:	cc                   	int3
61e577:	cc                   	int3
61e578:	cc                   	int3
61e579:	cc                   	int3
61e57a:	cc                   	int3
61e57b:	cc                   	int3
61e57c:	cc                   	int3
61e57d:	cc                   	int3
61e57e:	cc                   	int3
61e57f:	cc                   	int3
61e580:	cc                   	int3
61e581:	cc                   	int3
61e582:	cc                   	int3
61e583:	cc                   	int3
61e584:	cc                   	int3
61e585:	cc                   	int3
61e586:	cc                   	int3
61e587:	cc                   	int3
61e588:	cc                   	int3
61e589:	cc                   	int3
61e58a:	cc                   	int3
61e58b:	cc                   	int3
61e58c:	cc                   	int3
61e58d:	cc                   	int3
61e58e:	cc                   	int3
61e58f:	cc                   	int3
61e590:	56                   	push   %esi
61e591:	8b f1                	mov    %ecx,%esi
61e593:	57                   	push   %edi
61e594:	8b 7e 04             	mov    0x4(%esi),%edi
61e597:	85 ff                	test   %edi,%edi
61e599:	74 35                	je     0x61e5d0
61e59b:	53                   	push   %ebx
61e59c:	83 cb ff             	or     $0xffffffff,%ebx
61e59f:	8b c3                	mov    %ebx,%eax
61e5a1:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
61e5a6:	75 15                	jne    0x61e5bd
61e5a8:	8b 07                	mov    (%edi),%eax
61e5aa:	8b cf                	mov    %edi,%ecx
61e5ac:	ff 10                	call   *(%eax)
61e5ae:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
61e5b3:	4b                   	dec    %ebx
61e5b4:	75 07                	jne    0x61e5bd
61e5b6:	8b 07                	mov    (%edi),%eax
61e5b8:	8b cf                	mov    %edi,%ecx
61e5ba:	ff 50 04             	call   *0x4(%eax)
61e5bd:	8b 44 24 14          	mov    0x14(%esp),%eax
61e5c1:	5b                   	pop    %ebx
61e5c2:	89 46 04             	mov    %eax,0x4(%esi)
61e5c5:	8b 44 24 0c          	mov    0xc(%esp),%eax
61e5c9:	5f                   	pop    %edi
61e5ca:	89 06                	mov    %eax,(%esi)
61e5cc:	5e                   	pop    %esi
61e5cd:	c2 08 00             	ret    $0x8
61e5d0:	8b 44 24 10          	mov    0x10(%esp),%eax
61e5d4:	89 46 04             	mov    %eax,0x4(%esi)
61e5d7:	8b 44 24 0c          	mov    0xc(%esp),%eax
61e5db:	5f                   	pop    %edi
61e5dc:	89 06                	mov    %eax,(%esi)
61e5de:	5e                   	pop    %esi
61e5df:	c2 08 00             	ret    $0x8
61e5e2:	cc                   	int3
61e5e3:	cc                   	int3
61e5e4:	cc                   	int3
61e5e5:	cc                   	int3
61e5e6:	cc                   	int3
61e5e7:	cc                   	int3
61e5e8:	cc                   	int3
61e5e9:	cc                   	int3
61e5ea:	cc                   	int3
61e5eb:	cc                   	int3
61e5ec:	cc                   	int3
61e5ed:	cc                   	int3
61e5ee:	cc                   	int3
61e5ef:	cc                   	int3
61e5f0:	cc                   	int3
61e5f1:	cc                   	int3
61e5f2:	cc                   	int3
61e5f3:	cc                   	int3
61e5f4:	cc                   	int3
61e5f5:	cc                   	int3
61e5f6:	cc                   	int3
61e5f7:	cc                   	int3
61e5f8:	cc                   	int3
61e5f9:	cc                   	int3
61e5fa:	cc                   	int3
61e5fb:	cc                   	int3
61e5fc:	cc                   	int3
61e5fd:	cc                   	int3
61e5fe:	cc                   	int3
61e5ff:	cc                   	int3
61e600:	56                   	push   %esi
61e601:	8b f1                	mov    %ecx,%esi
61e603:	57                   	push   %edi
61e604:	8b 7e 04             	mov    0x4(%esi),%edi
61e607:	85 ff                	test   %edi,%edi
61e609:	74 35                	je     0x61e640
61e60b:	53                   	push   %ebx
61e60c:	83 cb ff             	or     $0xffffffff,%ebx
61e60f:	8b c3                	mov    %ebx,%eax
61e611:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
61e616:	75 15                	jne    0x61e62d
61e618:	8b 07                	mov    (%edi),%eax
61e61a:	8b cf                	mov    %edi,%ecx
61e61c:	ff 10                	call   *(%eax)
61e61e:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
61e623:	4b                   	dec    %ebx
61e624:	75 07                	jne    0x61e62d
61e626:	8b 07                	mov    (%edi),%eax
61e628:	8b cf                	mov    %edi,%ecx
61e62a:	ff 50 04             	call   *0x4(%eax)
61e62d:	8b 44 24 14          	mov    0x14(%esp),%eax
61e631:	5b                   	pop    %ebx
61e632:	89 46 04             	mov    %eax,0x4(%esi)
61e635:	8b 44 24 0c          	mov    0xc(%esp),%eax
61e639:	5f                   	pop    %edi
61e63a:	89 06                	mov    %eax,(%esi)
61e63c:	5e                   	pop    %esi
61e63d:	c2 08 00             	ret    $0x8
61e640:	8b 44 24 10          	mov    0x10(%esp),%eax
61e644:	89 46 04             	mov    %eax,0x4(%esi)
61e647:	8b 44 24 0c          	mov    0xc(%esp),%eax
61e64b:	5f                   	pop    %edi
61e64c:	89 06                	mov    %eax,(%esi)
61e64e:	5e                   	pop    %esi
61e64f:	c2 08 00             	ret    $0x8
61e652:	cc                   	int3
61e653:	cc                   	int3
61e654:	cc                   	int3
61e655:	cc                   	int3
61e656:	cc                   	int3
61e657:	cc                   	int3
61e658:	cc                   	int3
61e659:	cc                   	int3
61e65a:	cc                   	int3
61e65b:	cc                   	int3
61e65c:	cc                   	int3
61e65d:	cc                   	int3
61e65e:	cc                   	int3
61e65f:	cc                   	int3
61e660:	cc                   	int3
61e661:	cc                   	int3
61e662:	cc                   	int3
61e663:	cc                   	int3
61e664:	cc                   	int3
61e665:	cc                   	int3
61e666:	cc                   	int3
61e667:	cc                   	int3
61e668:	cc                   	int3
61e669:	cc                   	int3
61e66a:	cc                   	int3
61e66b:	cc                   	int3
61e66c:	cc                   	int3
61e66d:	cc                   	int3
61e66e:	cc                   	int3
61e66f:	cc                   	int3
61e670:	56                   	push   %esi
61e671:	8b f1                	mov    %ecx,%esi
61e673:	57                   	push   %edi
61e674:	8b 7e 04             	mov    0x4(%esi),%edi
61e677:	85 ff                	test   %edi,%edi
61e679:	74 35                	je     0x61e6b0
61e67b:	53                   	push   %ebx
61e67c:	83 cb ff             	or     $0xffffffff,%ebx
61e67f:	8b c3                	mov    %ebx,%eax
61e681:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)
61e686:	75 15                	jne    0x61e69d
61e688:	8b 07                	mov    (%edi),%eax
61e68a:	8b cf                	mov    %edi,%ecx
61e68c:	ff 10                	call   *(%eax)
61e68e:	f0 0f c1 5f 08       	lock xadd %ebx,0x8(%edi)
61e693:	4b                   	dec    %ebx
61e694:	75 07                	jne    0x61e69d
61e696:	8b 07                	mov    (%edi),%eax
61e698:	8b cf                	mov    %edi,%ecx
61e69a:	ff 50 04             	call   *0x4(%eax)
61e69d:	8b 44 24 14          	mov    0x14(%esp),%eax
61e6a1:	5b                   	pop    %ebx
61e6a2:	89 46 04             	mov    %eax,0x4(%esi)
61e6a5:	8b 44 24 0c          	mov    0xc(%esp),%eax
61e6a9:	5f                   	pop    %edi
61e6aa:	89 06                	mov    %eax,(%esi)
61e6ac:	5e                   	pop    %esi
61e6ad:	c2 08 00             	ret    $0x8
61e6b0:	8b 44 24 10          	mov    0x10(%esp),%eax
61e6b4:	89 46 04             	mov    %eax,0x4(%esi)
61e6b7:	8b 44 24 0c          	mov    0xc(%esp),%eax
61e6bb:	5f                   	pop    %edi
61e6bc:	89 06                	mov    %eax,(%esi)
61e6be:	5e                   	pop    %esi
61e6bf:	c2 08 00             	ret    $0x8
61e6c2:	cc                   	int3
61e6c3:	cc                   	int3
61e6c4:	cc                   	int3
61e6c5:	cc                   	int3
61e6c6:	cc                   	int3
61e6c7:	cc                   	int3
61e6c8:	cc                   	int3
61e6c9:	cc                   	int3
61e6ca:	cc                   	int3
61e6cb:	cc                   	int3
61e6cc:	cc                   	int3
61e6cd:	cc                   	int3
61e6ce:	cc                   	int3
61e6cf:	cc                   	int3
61e6d0:	cc                   	int3
61e6d1:	cc                   	int3
61e6d2:	cc                   	int3
61e6d3:	cc                   	int3
61e6d4:	cc                   	int3
61e6d5:	cc                   	int3
61e6d6:	cc                   	int3
61e6d7:	cc                   	int3
61e6d8:	cc                   	int3
61e6d9:	cc                   	int3
61e6da:	cc                   	int3
61e6db:	cc                   	int3
61e6dc:	cc                   	int3
61e6dd:	cc                   	int3
61e6de:	cc                   	int3
61e6df:	cc                   	int3
61e6e0:	56                   	push   %esi
61e6e1:	8b f1                	mov    %ecx,%esi
61e6e3:	57                   	push   %edi
61e6e4:	8b 7e 04             	mov    0x4(%esi),%edi
61e6e7:	85 ff                	test   %edi,%edi
61e6e9:	74 35                	je     0x61e720
61e6eb:	53                   	push   %ebx
61e6ec:	83 cb ff             	or     $0xffffffff,%ebx
61e6ef:	8b c3                	mov    %ebx,%eax
61e6f1:	f0 0f c1 47 04       	lock xadd %eax,0x4(%edi)