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
6176ff:	8b 4d 0c             	mov    0xc(%ebp),%ecx
617702:	56                   	push   %esi
617703:	8b 75 08             	mov    0x8(%ebp),%esi
617706:	57                   	push   %edi
617707:	8b 7d 14             	mov    0x14(%ebp),%edi
61770a:	8d 41 ff             	lea    -0x1(%ecx),%eax
61770d:	eb 1c                	jmp    0x61772b
61770f:	8b 44 d6 04          	mov    0x4(%esi,%edx,8),%eax
617713:	3b 47 04             	cmp    0x4(%edi),%eax
617716:	73 1f                	jae    0x617737
617718:	8b 04 d6             	mov    (%esi,%edx,8),%eax
61771b:	89 04 ce             	mov    %eax,(%esi,%ecx,8)
61771e:	8b 44 d6 04          	mov    0x4(%esi,%edx,8),%eax
617722:	89 44 ce 04          	mov    %eax,0x4(%esi,%ecx,8)
617726:	8b ca                	mov    %edx,%ecx
617728:	8d 42 ff             	lea    -0x1(%edx),%eax
61772b:	99                   	cltd
61772c:	2b c2                	sub    %edx,%eax
61772e:	8b d0                	mov    %eax,%edx
617730:	d1 fa                	sar    $1,%edx
617732:	39 4d 10             	cmp    %ecx,0x10(%ebp)
617735:	7c d8                	jl     0x61770f
617737:	8b 07                	mov    (%edi),%eax
617739:	89 04 ce             	mov    %eax,(%esi,%ecx,8)
61773c:	8b 47 04             	mov    0x4(%edi),%eax
61773f:	5f                   	pop    %edi
617740:	89 44 ce 04          	mov    %eax,0x4(%esi,%ecx,8)
617744:	5e                   	pop    %esi
617745:	5d                   	pop    %ebp
617746:	c3                   	ret
617747:	55                   	push   %ebp
617748:	8b ec                	mov    %esp,%ebp
61774a:	56                   	push   %esi
61774b:	57                   	push   %edi
61774c:	8b 7d 0c             	mov    0xc(%ebp),%edi
61774f:	8b f7                	mov    %edi,%esi
617751:	2b 75 08             	sub    0x8(%ebp),%esi
617754:	eb 15                	jmp    0x61776b
617756:	ff 75 10             	push   0x10(%ebp)
617759:	57                   	push   %edi
61775a:	ff 75 08             	push   0x8(%ebp)
61775d:	e8 5f ff ff ff       	call   0x6176c1
617762:	83 c4 0c             	add    $0xc,%esp
617765:	83 ef 08             	sub    $0x8,%edi
617768:	83 ee 08             	sub    $0x8,%esi
61776b:	8b c6                	mov    %esi,%eax
61776d:	83 e0 f8             	and    $0xfffffff8,%eax
617770:	83 f8 10             	cmp    $0x10,%eax
617773:	7d e1                	jge    0x617756
617775:	5f                   	pop    %edi
617776:	5e                   	pop    %esi
617777:	5d                   	pop    %ebp
617778:	c3                   	ret
617779:	55                   	push   %ebp
61777a:	8b ec                	mov    %esp,%ebp
61777c:	51                   	push   %ecx
61777d:	51                   	push   %ecx
61777e:	53                   	push   %ebx
61777f:	8b 5d 14             	mov    0x14(%ebp),%ebx
617782:	56                   	push   %esi
617783:	8b 75 0c             	mov    0xc(%ebp),%esi
617786:	8b ce                	mov    %esi,%ecx
617788:	57                   	push   %edi
617789:	8b 7d 08             	mov    0x8(%ebp),%edi
61778c:	2b cf                	sub    %edi,%ecx
61778e:	c1 f9 03             	sar    $0x3,%ecx
617791:	83 f9 20             	cmp    $0x20,%ecx
617794:	0f 8e 86 00 00 00    	jle    0x617820
61779a:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
61779e:	7e 66                	jle    0x617806
6177a0:	53                   	push   %ebx
6177a1:	56                   	push   %esi
6177a2:	8d 45 f8             	lea    -0x8(%ebp),%eax
6177a5:	57                   	push   %edi
6177a6:	50                   	push   %eax
6177a7:	e8 81 fc ff ff       	call   0x61742d
6177ac:	8b 45 10             	mov    0x10(%ebp),%eax
6177af:	83 c4 10             	add    $0x10,%esp
6177b2:	99                   	cltd
6177b3:	2b c2                	sub    %edx,%eax
6177b5:	8b c8                	mov    %eax,%ecx
6177b7:	d1 f9                	sar    $1,%ecx
6177b9:	8b c1                	mov    %ecx,%eax
6177bb:	99                   	cltd
6177bc:	2b c2                	sub    %edx,%eax
6177be:	d1 f8                	sar    $1,%eax
6177c0:	03 c8                	add    %eax,%ecx
6177c2:	8b 45 f8             	mov    -0x8(%ebp),%eax
6177c5:	89 4d 10             	mov    %ecx,0x10(%ebp)
6177c8:	2b c7                	sub    %edi,%eax
6177ca:	8b ce                	mov    %esi,%ecx
6177cc:	83 e0 f8             	and    $0xfffffff8,%eax
6177cf:	2b 4d fc             	sub    -0x4(%ebp),%ecx
6177d2:	83 e1 f8             	and    $0xfffffff8,%ecx
6177d5:	53                   	push   %ebx
6177d6:	ff 75 10             	push   0x10(%ebp)
6177d9:	3b c1                	cmp    %ecx,%eax
6177db:	7d 0e                	jge    0x6177eb
6177dd:	ff 75 f8             	push   -0x8(%ebp)
6177e0:	57                   	push   %edi
6177e1:	e8 93 ff ff ff       	call   0x617779
6177e6:	8b 7d fc             	mov    -0x4(%ebp),%edi
6177e9:	eb 0c                	jmp    0x6177f7
6177eb:	56                   	push   %esi
6177ec:	ff 75 fc             	push   -0x4(%ebp)
6177ef:	e8 85 ff ff ff       	call   0x617779
6177f4:	8b 75 f8             	mov    -0x8(%ebp),%esi
6177f7:	8b ce                	mov    %esi,%ecx
6177f9:	83 c4 10             	add    $0x10,%esp
6177fc:	2b cf                	sub    %edi,%ecx
6177fe:	c1 f9 03             	sar    $0x3,%ecx
617801:	83 f9 20             	cmp    $0x20,%ecx
617804:	7f 94                	jg     0x61779a
617806:	83 f9 20             	cmp    $0x20,%ecx
617809:	7e 15                	jle    0x617820
61780b:	53                   	push   %ebx
61780c:	56                   	push   %esi
61780d:	57                   	push   %edi
61780e:	e8 42 fb ff ff       	call   0x617355
617813:	53                   	push   %ebx
617814:	56                   	push   %esi
617815:	57                   	push   %edi
617816:	e8 2c ff ff ff       	call   0x617747
61781b:	83 c4 18             	add    $0x18,%esp
61781e:	eb 10                	jmp    0x617830
617820:	83 f9 02             	cmp    $0x2,%ecx
617823:	7c 0b                	jl     0x617830
617825:	53                   	push   %ebx
617826:	56                   	push   %esi
617827:	57                   	push   %edi
617828:	e8 ba fa ff ff       	call   0x6172e7
61782d:	83 c4 0c             	add    $0xc,%esp
617830:	5f                   	pop    %edi
617831:	5e                   	pop    %esi
617832:	5b                   	pop    %ebx
617833:	8b e5                	mov    %ebp,%esp
617835:	5d                   	pop    %ebp
617836:	c3                   	ret
617837:	55                   	push   %ebp
617838:	8b ec                	mov    %esp,%ebp
61783a:	8b 45 0c             	mov    0xc(%ebp),%eax
61783d:	ff 75 10             	push   0x10(%ebp)
617840:	2b 45 08             	sub    0x8(%ebp),%eax
617843:	c1 f8 03             	sar    $0x3,%eax
617846:	50                   	push   %eax
617847:	ff 75 0c             	push   0xc(%ebp)
61784a:	ff 75 08             	push   0x8(%ebp)
61784d:	e8 27 ff ff ff       	call   0x617779
617852:	83 c4 10             	add    $0x10,%esp
617855:	5d                   	pop    %ebp
617856:	c3                   	ret
617857:	55                   	push   %ebp
617858:	8b ec                	mov    %esp,%ebp
61785a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
61785d:	56                   	push   %esi
61785e:	8b 75 08             	mov    0x8(%ebp),%esi
617861:	2b ce                	sub    %esi,%ecx
617863:	c1 f9 03             	sar    $0x3,%ecx
617866:	85 c9                	test   %ecx,%ecx
617868:	7e 2a                	jle    0x617894
61786a:	8b 45 10             	mov    0x10(%ebp),%eax
61786d:	57                   	push   %edi
61786e:	8b 38                	mov    (%eax),%edi
617870:	8b c1                	mov    %ecx,%eax
617872:	99                   	cltd
617873:	2b c2                	sub    %edx,%eax
617875:	8b d0                	mov    %eax,%edx
617877:	d1 fa                	sar    $1,%edx
617879:	8d 04 d6             	lea    (%esi,%edx,8),%eax
61787c:	3b 78 04             	cmp    0x4(%eax),%edi
61787f:	72 0c                	jb     0x61788d
617881:	8d 70 08             	lea    0x8(%eax),%esi
617884:	83 c8 ff             	or     $0xffffffff,%eax
617887:	2b c2                	sub    %edx,%eax
617889:	03 c8                	add    %eax,%ecx