6173b2:	8b 55 08             	mov    0x8(%ebp),%edx
6173b5:	8b c2                	mov    %edx,%eax
6173b7:	3b 55 0c             	cmp    0xc(%ebp),%edx
6173ba:	74 11                	je     0x6173cd
6173bc:	eb 07                	jmp    0x6173c5
6173be:	8b 08                	mov    (%eax),%ecx
6173c0:	3b 0a                	cmp    (%edx),%ecx
6173c2:	0f 42 c2             	cmovb  %edx,%eax
6173c5:	83 c2 04             	add    $0x4,%edx
6173c8:	3b 55 0c             	cmp    0xc(%ebp),%edx
6173cb:	75 f1                	jne    0x6173be
6173cd:	5d                   	pop    %ebp
6173ce:	c3                   	ret
6173cf:	55                   	push   %ebp
6173d0:	8b ec                	mov    %esp,%ebp
6173d2:	56                   	push   %esi
6173d3:	8b 75 0c             	mov    0xc(%ebp),%esi
6173d6:	57                   	push   %edi
6173d7:	8b 7d 08             	mov    0x8(%ebp),%edi
6173da:	8b 46 04             	mov    0x4(%esi),%eax
6173dd:	3b 47 04             	cmp    0x4(%edi),%eax
6173e0:	73 13                	jae    0x6173f5
6173e2:	8b 0e                	mov    (%esi),%ecx
6173e4:	8b d0                	mov    %eax,%edx
6173e6:	8b 07                	mov    (%edi),%eax
6173e8:	89 06                	mov    %eax,(%esi)
6173ea:	8b 47 04             	mov    0x4(%edi),%eax
6173ed:	89 46 04             	mov    %eax,0x4(%esi)
6173f0:	89 0f                	mov    %ecx,(%edi)
6173f2:	89 57 04             	mov    %edx,0x4(%edi)
6173f5:	8b 4d 10             	mov    0x10(%ebp),%ecx
6173f8:	8b 41 04             	mov    0x4(%ecx),%eax
6173fb:	3b 46 04             	cmp    0x4(%esi),%eax
6173fe:	73 29                	jae    0x617429
617400:	8b 11                	mov    (%ecx),%edx
617402:	53                   	push   %ebx
617403:	8b d8                	mov    %eax,%ebx
617405:	8b 06                	mov    (%esi),%eax
617407:	89 01                	mov    %eax,(%ecx)
617409:	8b 46 04             	mov    0x4(%esi),%eax
61740c:	89 41 04             	mov    %eax,0x4(%ecx)
61740f:	89 16                	mov    %edx,(%esi)
617411:	89 5e 04             	mov    %ebx,0x4(%esi)
617414:	3b 5f 04             	cmp    0x4(%edi),%ebx
617417:	73 0f                	jae    0x617428
617419:	8b 07                	mov    (%edi),%eax
61741b:	89 06                	mov    %eax,(%esi)
61741d:	8b 47 04             	mov    0x4(%edi),%eax
617420:	89 46 04             	mov    %eax,0x4(%esi)
617423:	89 17                	mov    %edx,(%edi)
617425:	89 5f 04             	mov    %ebx,0x4(%edi)
617428:	5b                   	pop    %ebx
617429:	5f                   	pop    %edi
61742a:	5e                   	pop    %esi
61742b:	5d                   	pop    %ebp
61742c:	c3                   	ret
61742d:	55                   	push   %ebp
61742e:	8b ec                	mov    %esp,%ebp
617430:	8b 4d 10             	mov    0x10(%ebp),%ecx
617433:	83 ec 0c             	sub    $0xc,%esp
617436:	8b c1                	mov    %ecx,%eax
617438:	53                   	push   %ebx
617439:	56                   	push   %esi
61743a:	57                   	push   %edi
61743b:	8b 7d 0c             	mov    0xc(%ebp),%edi
61743e:	2b c7                	sub    %edi,%eax
617440:	ff 75 14             	push   0x14(%ebp)
617443:	c1 f8 03             	sar    $0x3,%eax
617446:	99                   	cltd
617447:	2b c2                	sub    %edx,%eax
617449:	d1 f8                	sar    $1,%eax
61744b:	8d 1c c7             	lea    (%edi,%eax,8),%ebx
61744e:	8d 41 f8             	lea    -0x8(%ecx),%eax
617451:	50                   	push   %eax
617452:	53                   	push   %ebx
617453:	57                   	push   %edi
617454:	e8 f7 fd ff ff       	call   0x617250
617459:	83 c4 10             	add    $0x10,%esp
61745c:	8d 73 08             	lea    0x8(%ebx),%esi
61745f:	eb 10                	jmp    0x617471
617461:	8b 43 04             	mov    0x4(%ebx),%eax
617464:	39 43 fc             	cmp    %eax,-0x4(%ebx)
617467:	72 0c                	jb     0x617475
617469:	3b 43 fc             	cmp    -0x4(%ebx),%eax
61746c:	72 07                	jb     0x617475
61746e:	83 eb 08             	sub    $0x8,%ebx
617471:	3b fb                	cmp    %ebx,%edi
617473:	72 ec                	jb     0x617461
617475:	8b 4d 10             	mov    0x10(%ebp),%ecx
617478:	3b f1                	cmp    %ecx,%esi
61747a:	73 14                	jae    0x617490
61747c:	8b 43 04             	mov    0x4(%ebx),%eax
61747f:	39 46 04             	cmp    %eax,0x4(%esi)
617482:	72 0c                	jb     0x617490
617484:	3b 46 04             	cmp    0x4(%esi),%eax
617487:	72 07                	jb     0x617490
617489:	83 c6 08             	add    $0x8,%esi
61748c:	3b f1                	cmp    %ecx,%esi
61748e:	72 ef                	jb     0x61747f
617490:	8b d6                	mov    %esi,%edx
617492:	8b fb                	mov    %ebx,%edi
617494:	89 55 fc             	mov    %edx,-0x4(%ebp)
617497:	89 7d f8             	mov    %edi,-0x8(%ebp)
61749a:	3b d1                	cmp    %ecx,%edx
61749c:	73 4b                	jae    0x6174e9
61749e:	8d 7e f8             	lea    -0x8(%esi),%edi
6174a1:	8b 42 04             	mov    0x4(%edx),%eax
6174a4:	39 43 04             	cmp    %eax,0x4(%ebx)
6174a7:	72 33                	jb     0x6174dc
6174a9:	3b 43 04             	cmp    0x4(%ebx),%eax
6174ac:	72 38                	jb     0x6174e6
6174ae:	8b c6                	mov    %esi,%eax
6174b0:	83 c7 08             	add    $0x8,%edi
6174b3:	83 c6 08             	add    $0x8,%esi
6174b6:	3b c2                	cmp    %edx,%eax
6174b8:	74 22                	je     0x6174dc
6174ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
6174bd:	8b 0f                	mov    (%edi),%ecx
6174bf:	8b 57 04             	mov    0x4(%edi),%edx
6174c2:	8b 00                	mov    (%eax),%eax
6174c4:	89 07                	mov    %eax,(%edi)
6174c6:	8b 45 fc             	mov    -0x4(%ebp),%eax
6174c9:	8b 40 04             	mov    0x4(%eax),%eax
6174cc:	89 47 04             	mov    %eax,0x4(%edi)
6174cf:	8b 45 fc             	mov    -0x4(%ebp),%eax
6174d2:	89 08                	mov    %ecx,(%eax)
6174d4:	8b 4d 10             	mov    0x10(%ebp),%ecx
6174d7:	89 50 04             	mov    %edx,0x4(%eax)
6174da:	8b d0                	mov    %eax,%edx
6174dc:	83 c2 08             	add    $0x8,%edx
6174df:	89 55 fc             	mov    %edx,-0x4(%ebp)
6174e2:	3b d1                	cmp    %ecx,%edx
6174e4:	72 bb                	jb     0x6174a1
6174e6:	8b 7d f8             	mov    -0x8(%ebp),%edi
6174e9:	8b 45 0c             	mov    0xc(%ebp),%eax
6174ec:	3b f8                	cmp    %eax,%edi
6174ee:	76 42                	jbe    0x617532
6174f0:	8b 4b 04             	mov    0x4(%ebx),%ecx
6174f3:	39 4f fc             	cmp    %ecx,-0x4(%edi)
6174f6:	72 28                	jb     0x617520
6174f8:	3b 4f fc             	cmp    -0x4(%edi),%ecx
6174fb:	72 2a                	jb     0x617527
6174fd:	83 eb 08             	sub    $0x8,%ebx
617500:	8d 4f f8             	lea    -0x8(%edi),%ecx
617503:	3b d9                	cmp    %ecx,%ebx
617505:	74 19                	je     0x617520
617507:	8b 47 f8             	mov    -0x8(%edi),%eax
61750a:	8b 0b                	mov    (%ebx),%ecx
61750c:	8b 53 04             	mov    0x4(%ebx),%edx
61750f:	89 03                	mov    %eax,(%ebx)
617511:	8b 47 fc             	mov    -0x4(%edi),%eax
617514:	89 43 04             	mov    %eax,0x4(%ebx)
617517:	8b 45 0c             	mov    0xc(%ebp),%eax
61751a:	89 4f f8             	mov    %ecx,-0x8(%edi)
61751d:	89 57 fc             	mov    %edx,-0x4(%edi)
617520:	83 ef 08             	sub    $0x8,%edi
617523:	3b c7                	cmp    %edi,%eax
617525:	72 c9                	jb     0x6174f0
617527:	8b 55 fc             	mov    -0x4(%ebp),%edx
61752a:	3b f8                	cmp    %eax,%edi
61752c:	8b 4d 10             	mov    0x10(%ebp),%ecx
61752f:	89 7d f8             	mov    %edi,-0x8(%ebp)
617532:	75 52                	jne    0x617586
617534:	3b d1                	cmp    %ecx,%edx
617536:	0f 84 b9 00 00 00    	je     0x6175f5
61753c:	3b f2                	cmp    %edx,%esi
61753e:	74 17                	je     0x617557
617540:	8b 06                	mov    (%esi),%eax
617542:	8b 0b                	mov    (%ebx),%ecx
617544:	8b 53 04             	mov    0x4(%ebx),%edx
617547:	89 03                	mov    %eax,(%ebx)
617549:	8b 46 04             	mov    0x4(%esi),%eax
61754c:	89 43 04             	mov    %eax,0x4(%ebx)
61754f:	89 56 04             	mov    %edx,0x4(%esi)
617552:	8b 55 fc             	mov    -0x4(%ebp),%edx
617555:	89 0e                	mov    %ecx,(%esi)
617557:	83 c6 08             	add    $0x8,%esi
61755a:	8b fa                	mov    %edx,%edi
61755c:	89 75 f4             	mov    %esi,-0xc(%ebp)
61755f:	8b f3                	mov    %ebx,%esi
617561:	83 c3 08             	add    $0x8,%ebx
617564:	83 c2 08             	add    $0x8,%edx
617567:	89 55 fc             	mov    %edx,-0x4(%ebp)
61756a:	8b 07                	mov    (%edi),%eax
61756c:	8b 0e                	mov    (%esi),%ecx
61756e:	8b 56 04             	mov    0x4(%esi),%edx
617571:	89 06                	mov    %eax,(%esi)
617573:	8b 47 04             	mov    0x4(%edi),%eax
617576:	89 46 04             	mov    %eax,0x4(%esi)
617579:	8b 75 f4             	mov    -0xc(%ebp),%esi
61757c:	89 0f                	mov    %ecx,(%edi)
61757e:	89 57 04             	mov    %edx,0x4(%edi)
617581:	8b 7d f8             	mov    -0x8(%ebp),%edi
617584:	eb 3c                	jmp    0x6175c2
617586:	83 ef 08             	sub    $0x8,%edi
617589:	89 7d f8             	mov    %edi,-0x8(%ebp)
61758c:	3b d1                	cmp    %ecx,%edx
61758e:	75 37                	jne    0x6175c7
617590:	83 eb 08             	sub    $0x8,%ebx
617593:	3b fb                	cmp    %ebx,%edi
617595:	74 14                	je     0x6175ab
617597:	8b 03                	mov    (%ebx),%eax
617599:	8b 0f                	mov    (%edi),%ecx
61759b:	8b 57 04             	mov    0x4(%edi),%edx
61759e:	89 07                	mov    %eax,(%edi)
6175a0:	8b 43 04             	mov    0x4(%ebx),%eax
6175a3:	89 47 04             	mov    %eax,0x4(%edi)
6175a6:	89 0b                	mov    %ecx,(%ebx)
6175a8:	89 53 04             	mov    %edx,0x4(%ebx)
6175ab:	8b 0b                	mov    (%ebx),%ecx
6175ad:	83 ee 08             	sub    $0x8,%esi
6175b0:	8b 53 04             	mov    0x4(%ebx),%edx
6175b3:	8b 06                	mov    (%esi),%eax
6175b5:	89 03                	mov    %eax,(%ebx)
6175b7:	8b 46 04             	mov    0x4(%esi),%eax
6175ba:	89 43 04             	mov    %eax,0x4(%ebx)
6175bd:	89 0e                	mov    %ecx,(%esi)
6175bf:	89 56 04             	mov    %edx,0x4(%esi)
6175c2:	8b 55 fc             	mov    -0x4(%ebp),%edx
6175c5:	eb 26                	jmp    0x6175ed
6175c7:	8b 0a                	mov    (%edx),%ecx
6175c9:	8b 07                	mov    (%edi),%eax
6175cb:	8b 52 04             	mov    0x4(%edx),%edx
6175ce:	89 4d f4             	mov    %ecx,-0xc(%ebp)
6175d1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
6175d4:	89 01                	mov    %eax,(%ecx)
6175d6:	8b 47 04             	mov    0x4(%edi),%eax
6175d9:	89 41 04             	mov    %eax,0x4(%ecx)
6175dc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
6175df:	89 57 04             	mov    %edx,0x4(%edi)
6175e2:	8b 55 fc             	mov    -0x4(%ebp),%edx
6175e5:	83 c2 08             	add    $0x8,%edx
6175e8:	89 0f                	mov    %ecx,(%edi)
6175ea:	89 55 fc             	mov    %edx,-0x4(%ebp)
6175ed:	8b 4d 10             	mov    0x10(%ebp),%ecx
6175f0:	e9 a5 fe ff ff       	jmp    0x61749a
6175f5:	8b 45 08             	mov    0x8(%ebp),%eax
6175f8:	5f                   	pop    %edi
6175f9:	89 70 04             	mov    %esi,0x4(%eax)
6175fc:	5e                   	pop    %esi
6175fd:	89 18                	mov    %ebx,(%eax)
6175ff:	5b                   	pop    %ebx
617600:	8b e5                	mov    %ebp,%esp
617602:	5d                   	pop    %ebp
617603:	c3                   	ret
617604:	55                   	push   %ebp
617605:	8b ec                	mov    %esp,%ebp
617607:	51                   	push   %ecx
617608:	53                   	push   %ebx
617609:	8b 5d 10             	mov    0x10(%ebp),%ebx
61760c:	56                   	push   %esi
61760d:	8b 75 0c             	mov    0xc(%ebp),%esi
617610:	8b ce                	mov    %esi,%ecx
617612:	57                   	push   %edi
617613:	8d 43 ff             	lea    -0x1(%ebx),%eax
617616:	89 75 fc             	mov    %esi,-0x4(%ebp)
617619:	99                   	cltd
61761a:	2b c2                	sub    %edx,%eax
61761c:	8b 55 08             	mov    0x8(%ebp),%edx
61761f:	8b f8                	mov    %eax,%edi
617621:	d1 ff                	sar    $1,%edi
617623:	3b f7                	cmp    %edi,%esi
617625:	7d 36                	jge    0x61765d
617627:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
61762e:	8b 44 ca fc          	mov    -0x4(%edx,%ecx,8),%eax
617632:	8d 59 ff             	lea    -0x1(%ecx),%ebx
617635:	39 44 ca 04          	cmp    %eax,0x4(%edx,%ecx,8)
617639:	8b c3                	mov    %ebx,%eax
61763b:	89 5d 0c             	mov    %ebx,0xc(%ebp)
61763e:	0f 43 c1             	cmovae %ecx,%eax
617641:	8b c8                	mov    %eax,%ecx
617643:	89 45 0c             	mov    %eax,0xc(%ebp)
617646:	8b 04 ca             	mov    (%edx,%ecx,8),%eax
617649:	89 04 f2             	mov    %eax,(%edx,%esi,8)
61764c:	8b 44 ca 04          	mov    0x4(%edx,%ecx,8),%eax
617650:	89 44 f2 04          	mov    %eax,0x4(%edx,%esi,8)
617654:	8b f1                	mov    %ecx,%esi
617656:	3b cf                	cmp    %edi,%ecx
617658:	7c cd                	jl     0x617627
61765a:	8b 5d 10             	mov    0x10(%ebp),%ebx
61765d:	3b cf                	cmp    %edi,%ecx
61765f:	75 17                	jne    0x617678
617661:	f6 c3 01             	test   $0x1,%bl
617664:	75 12                	jne    0x617678
617666:	8b 44 da f8          	mov    -0x8(%edx,%ebx,8),%eax
61766a:	89 04 f2             	mov    %eax,(%edx,%esi,8)
61766d:	8b 44 da fc          	mov    -0x4(%edx,%ebx,8),%eax
617671:	89 44 f2 04          	mov    %eax,0x4(%edx,%esi,8)
617675:	8d 73 ff             	lea    -0x1(%ebx),%esi
617678:	ff 75 18             	push   0x18(%ebp)
61767b:	ff 75 14             	push   0x14(%ebp)
61767e:	ff 75 fc             	push   -0x4(%ebp)
617681:	56                   	push   %esi
617682:	52                   	push   %edx
617683:	e8 74 00 00 00       	call   0x6176fc
617688:	83 c4 14             	add    $0x14,%esp
61768b:	5f                   	pop    %edi
61768c:	5e                   	pop    %esi
61768d:	5b                   	pop    %ebx
61768e:	8b e5                	mov    %ebp,%esp
617690:	5d                   	pop    %ebp
617691:	c3                   	ret
617692:	55                   	push   %ebp
617693:	8b ec                	mov    %esp,%ebp
617695:	8b 55 08             	mov    0x8(%ebp),%edx
617698:	8b 4d 10             	mov    0x10(%ebp),%ecx
61769b:	ff 75 18             	push   0x18(%ebp)
61769e:	8b 02                	mov    (%edx),%eax
6176a0:	ff 75 14             	push   0x14(%ebp)
6176a3:	89 01                	mov    %eax,(%ecx)
6176a5:	8b 42 04             	mov    0x4(%edx),%eax
6176a8:	89 41 04             	mov    %eax,0x4(%ecx)
6176ab:	8b 45 0c             	mov    0xc(%ebp),%eax
6176ae:	2b c2                	sub    %edx,%eax
6176b0:	c1 f8 03             	sar    $0x3,%eax
6176b3:	50                   	push   %eax
6176b4:	6a 00                	push   $0x0
6176b6:	52                   	push   %edx
6176b7:	e8 48 ff ff ff       	call   0x617604
6176bc:	83 c4 14             	add    $0x14,%esp
6176bf:	5d                   	pop    %ebp
6176c0:	c3                   	ret
6176c1:	55                   	push   %ebp
6176c2:	8b ec                	mov    %esp,%ebp
6176c4:	51                   	push   %ecx
6176c5:	51                   	push   %ecx
6176c6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
6176c9:	8b c1                	mov    %ecx,%eax
6176cb:	2b 45 08             	sub    0x8(%ebp),%eax
6176ce:	83 e0 f8             	and    $0xfffffff8,%eax
6176d1:	83 f8 10             	cmp    $0x10,%eax
6176d4:	7c 22                	jl     0x6176f8
6176d6:	ff 75 10             	push   0x10(%ebp)
6176d9:	83 e9 08             	sub    $0x8,%ecx
6176dc:	8b 01                	mov    (%ecx),%eax
6176de:	89 45 f8             	mov    %eax,-0x8(%ebp)
6176e1:	8b 41 04             	mov    0x4(%ecx),%eax
6176e4:	89 45 fc             	mov    %eax,-0x4(%ebp)
6176e7:	8d 45 f8             	lea    -0x8(%ebp),%eax
6176ea:	50                   	push   %eax
6176eb:	51                   	push   %ecx
6176ec:	51                   	push   %ecx
6176ed:	ff 75 08             	push   0x8(%ebp)
6176f0:	e8 9d ff ff ff       	call   0x617692
6176f5:	83 c4 14             	add    $0x14,%esp
6176f8:	8b e5                	mov    %ebp,%esp
6176fa:	5d                   	pop    %ebp
6176fb:	c3                   	ret
6176fc:	55                   	push   %ebp
6176fd:	8b ec                	mov    %esp,%ebp