5c1548:	3b f0                	cmp    %eax,%esi
5c154a:	7c b7                	jl     0x5c1503
5c154c:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c154f:	3b d8                	cmp    %eax,%ebx
5c1551:	75 36                	jne    0x5c1589
5c1553:	8b 45 f4             	mov    -0xc(%ebp),%eax
5c1556:	a8 01                	test   $0x1,%al
5c1558:	75 2f                	jne    0x5c1589
5c155a:	8d 04 80             	lea    (%eax,%eax,4),%eax
5c155d:	8d 14 87             	lea    (%edi,%eax,4),%edx
5c1560:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
5c1563:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5c1566:	8d 0c 87             	lea    (%edi,%eax,4),%ecx
5c1569:	8b 42 ec             	mov    -0x14(%edx),%eax
5c156c:	89 01                	mov    %eax,(%ecx)
5c156e:	8b 42 f0             	mov    -0x10(%edx),%eax
5c1571:	89 41 04             	mov    %eax,0x4(%ecx)
5c1574:	8b 42 f4             	mov    -0xc(%edx),%eax
5c1577:	89 41 08             	mov    %eax,0x8(%ecx)
5c157a:	8b 42 f8             	mov    -0x8(%edx),%eax
5c157d:	89 41 0c             	mov    %eax,0xc(%ecx)
5c1580:	8b 42 fc             	mov    -0x4(%edx),%eax
5c1583:	89 41 10             	mov    %eax,0x10(%ecx)
5c1586:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c1589:	3b cb                	cmp    %ebx,%ecx
5c158b:	7d 41                	jge    0x5c15ce
5c158d:	8d 49 00             	lea    0x0(%ecx),%ecx
5c1590:	8d 53 ff             	lea    -0x1(%ebx),%edx
5c1593:	d1 fa                	sar    $1,%edx
5c1595:	8d 04 92             	lea    (%edx,%edx,4),%eax
5c1598:	8d 34 87             	lea    (%edi,%eax,4),%esi
5c159b:	8b 45 f8             	mov    -0x8(%ebp),%eax
5c159e:	39 46 08             	cmp    %eax,0x8(%esi)
5c15a1:	72 2b                	jb     0x5c15ce
5c15a3:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
5c15a6:	8b da                	mov    %edx,%ebx
5c15a8:	8d 0c 87             	lea    (%edi,%eax,4),%ecx
5c15ab:	8b 06                	mov    (%esi),%eax
5c15ad:	89 01                	mov    %eax,(%ecx)
5c15af:	8b 46 04             	mov    0x4(%esi),%eax
5c15b2:	89 41 04             	mov    %eax,0x4(%ecx)
5c15b5:	8b 46 08             	mov    0x8(%esi),%eax
5c15b8:	89 41 08             	mov    %eax,0x8(%ecx)
5c15bb:	8b 46 0c             	mov    0xc(%esi),%eax
5c15be:	89 41 0c             	mov    %eax,0xc(%ecx)
5c15c1:	8b 46 10             	mov    0x10(%esi),%eax
5c15c4:	89 41 10             	mov    %eax,0x10(%ecx)
5c15c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c15ca:	3b ca                	cmp    %edx,%ecx
5c15cc:	7c c2                	jl     0x5c1590
5c15ce:	8b 55 ec             	mov    -0x14(%ebp),%edx
5c15d1:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
5c15d4:	89 14 87             	mov    %edx,(%edi,%eax,4)
5c15d7:	8b 55 e8             	mov    -0x18(%ebp),%edx
5c15da:	89 54 87 04          	mov    %edx,0x4(%edi,%eax,4)
5c15de:	8b 55 f8             	mov    -0x8(%ebp),%edx
5c15e1:	89 54 87 08          	mov    %edx,0x8(%edi,%eax,4)
5c15e5:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5c15e8:	89 54 87 0c          	mov    %edx,0xc(%edi,%eax,4)
5c15ec:	8b 55 e0             	mov    -0x20(%ebp),%edx
5c15ef:	89 54 87 10          	mov    %edx,0x10(%edi,%eax,4)
5c15f3:	8b 45 dc             	mov    -0x24(%ebp),%eax
5c15f6:	85 c9                	test   %ecx,%ecx
5c15f8:	0f 8f d2 fe ff ff    	jg     0x5c14d0
5c15fe:	8b 75 0c             	mov    0xc(%ebp),%esi
5c1601:	8b 5d d8             	mov    -0x28(%ebp),%ebx
5c1604:	8b 45 f4             	mov    -0xc(%ebp),%eax
5c1607:	83 f8 02             	cmp    $0x2,%eax
5c160a:	0f 8c f5 00 00 00    	jl     0x5c1705
5c1610:	83 c6 ec             	add    $0xffffffec,%esi
5c1613:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c1618:	89 75 0c             	mov    %esi,0xc(%ebp)
5c161b:	f7 eb                	imul   %ebx
5c161d:	c1 fa 03             	sar    $0x3,%edx
5c1620:	8b c2                	mov    %edx,%eax
5c1622:	c1 e8 1f             	shr    $0x1f,%eax
5c1625:	03 c2                	add    %edx,%eax
5c1627:	83 f8 02             	cmp    $0x2,%eax
5c162a:	7c 61                	jl     0x5c168d
5c162c:	8b 06                	mov    (%esi),%eax
5c162e:	8b ce                	mov    %esi,%ecx
5c1630:	ff 75 14             	push   0x14(%ebp)
5c1633:	89 45 c0             	mov    %eax,-0x40(%ebp)
5c1636:	2b cf                	sub    %edi,%ecx
5c1638:	8b 46 04             	mov    0x4(%esi),%eax
5c163b:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5c163e:	8b 46 08             	mov    0x8(%esi),%eax
5c1641:	89 45 c8             	mov    %eax,-0x38(%ebp)
5c1644:	8b 46 0c             	mov    0xc(%esi),%eax
5c1647:	89 45 cc             	mov    %eax,-0x34(%ebp)
5c164a:	8b 46 10             	mov    0x10(%esi),%eax
5c164d:	89 45 d0             	mov    %eax,-0x30(%ebp)
5c1650:	8b 07                	mov    (%edi),%eax
5c1652:	89 06                	mov    %eax,(%esi)
5c1654:	8b 47 04             	mov    0x4(%edi),%eax
5c1657:	89 46 04             	mov    %eax,0x4(%esi)
5c165a:	8b 47 08             	mov    0x8(%edi),%eax
5c165d:	89 46 08             	mov    %eax,0x8(%esi)
5c1660:	8b 47 0c             	mov    0xc(%edi),%eax
5c1663:	89 46 0c             	mov    %eax,0xc(%esi)
5c1666:	8b 47 10             	mov    0x10(%edi),%eax
5c1669:	89 46 10             	mov    %eax,0x10(%esi)
5c166c:	8d 45 c0             	lea    -0x40(%ebp),%eax
5c166f:	50                   	push   %eax
5c1670:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c1675:	f7 e9                	imul   %ecx
5c1677:	c1 fa 03             	sar    $0x3,%edx
5c167a:	8b c2                	mov    %edx,%eax
5c167c:	c1 e8 1f             	shr    $0x1f,%eax
5c167f:	03 c2                	add    %edx,%eax
5c1681:	50                   	push   %eax
5c1682:	6a 00                	push   $0x0
5c1684:	57                   	push   %edi
5c1685:	e8 16 fb ff ff       	call   0x5c11a0
5c168a:	83 c4 14             	add    $0x14,%esp
5c168d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5c1690:	83 ee 14             	sub    $0x14,%esi
5c1693:	2b df                	sub    %edi,%ebx
5c1695:	83 fb 28             	cmp    $0x28,%ebx
5c1698:	0f 8d 75 ff ff ff    	jge    0x5c1613
5c169e:	5f                   	pop    %edi
5c169f:	5e                   	pop    %esi
5c16a0:	5b                   	pop    %ebx
5c16a1:	8b e5                	mov    %ebp,%esp
5c16a3:	5d                   	pop    %ebp
5c16a4:	c3                   	ret
5c16a5:	8d 41 ec             	lea    -0x14(%ecx),%eax
5c16a8:	03 c7                	add    %edi,%eax
5c16aa:	3b 5c 0f f4          	cmp    -0xc(%edi,%ecx,1),%ebx
5c16ae:	72 29                	jb     0x5c16d9
5c16b0:	8b 08                	mov    (%eax),%ecx
5c16b2:	89 0a                	mov    %ecx,(%edx)
5c16b4:	8b 48 04             	mov    0x4(%eax),%ecx
5c16b7:	89 4a 04             	mov    %ecx,0x4(%edx)
5c16ba:	8b 48 08             	mov    0x8(%eax),%ecx
5c16bd:	89 4a 08             	mov    %ecx,0x8(%edx)
5c16c0:	8b 48 0c             	mov    0xc(%eax),%ecx
5c16c3:	89 4a 0c             	mov    %ecx,0xc(%edx)
5c16c6:	8b 48 10             	mov    0x10(%eax),%ecx
5c16c9:	89 4a 10             	mov    %ecx,0x10(%edx)
5c16cc:	8b d0                	mov    %eax,%edx
5c16ce:	83 e8 14             	sub    $0x14,%eax
5c16d1:	3b 58 08             	cmp    0x8(%eax),%ebx
5c16d4:	73 da                	jae    0x5c16b0
5c16d6:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c16d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
5c16dc:	89 02                	mov    %eax,(%edx)
5c16de:	8b 45 f8             	mov    -0x8(%ebp),%eax
5c16e1:	89 42 04             	mov    %eax,0x4(%edx)
5c16e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5c16e7:	89 5a 08             	mov    %ebx,0x8(%edx)
5c16ea:	89 42 0c             	mov    %eax,0xc(%edx)
5c16ed:	8b 45 f0             	mov    -0x10(%ebp),%eax
5c16f0:	89 42 10             	mov    %eax,0x10(%edx)
5c16f3:	83 c6 14             	add    $0x14,%esi
5c16f6:	83 c1 14             	add    $0x14,%ecx
5c16f9:	89 4d 08             	mov    %ecx,0x8(%ebp)
5c16fc:	3b 75 0c             	cmp    0xc(%ebp),%esi
5c16ff:	0f 85 3b fd ff ff    	jne    0x5c1440
5c1705:	5f                   	pop    %edi
5c1706:	5e                   	pop    %esi
5c1707:	5b                   	pop    %ebx
5c1708:	8b e5                	mov    %ebp,%esp
5c170a:	5d                   	pop    %ebp
5c170b:	c3                   	ret
5c170c:	cc                   	int3
5c170d:	cc                   	int3
5c170e:	cc                   	int3
5c170f:	cc                   	int3
5c1710:	55                   	push   %ebp
5c1711:	8b ec                	mov    %esp,%ebp
5c1713:	6a ff                	push   $0xffffffff
5c1715:	68 cd 02 60 00       	push   $0x6002cd
5c171a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5c1720:	50                   	push   %eax
5c1721:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c1728:	83 ec 18             	sub    $0x18,%esp
5c172b:	53                   	push   %ebx
5c172c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5c172f:	56                   	push   %esi
5c1730:	57                   	push   %edi
5c1731:	8b f9                	mov    %ecx,%edi
5c1733:	0f b6 03             	movzbl (%ebx),%eax
5c1736:	35 c5 9d 1c 81       	xor    $0x811c9dc5,%eax
5c173b:	69 d0 93 01 00 01    	imul   $0x1000193,%eax,%edx
5c1741:	0f b6 43 01          	movzbl 0x1(%ebx),%eax
5c1745:	33 d0                	xor    %eax,%edx
5c1747:	0f b6 43 02          	movzbl 0x2(%ebx),%eax
5c174b:	69 d2 93 01 00 01    	imul   $0x1000193,%edx,%edx
5c1751:	33 d0                	xor    %eax,%edx
5c1753:	0f b6 43 03          	movzbl 0x3(%ebx),%eax
5c1757:	69 ca 93 01 00 01    	imul   $0x1000193,%edx,%ecx
5c175d:	33 c8                	xor    %eax,%ecx
5c175f:	69 c1 93 01 00 01    	imul   $0x1000193,%ecx,%eax
5c1765:	8b cf                	mov    %edi,%ecx
5c1767:	50                   	push   %eax
5c1768:	89 45 0c             	mov    %eax,0xc(%ebp)
5c176b:	8d 45 dc             	lea    -0x24(%ebp),%eax
5c176e:	53                   	push   %ebx
5c176f:	50                   	push   %eax
5c1770:	e8 ab f3 ff ff       	call   0x5c0b20
5c1775:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5c1778:	85 c9                	test   %ecx,%ecx
5c177a:	74 1c                	je     0x5c1798
5c177c:	8b 45 08             	mov    0x8(%ebp),%eax
5c177f:	89 08                	mov    %ecx,(%eax)
5c1781:	c6 40 04 00          	movb   $0x0,0x4(%eax)
5c1785:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c1788:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c178f:	5f                   	pop    %edi
5c1790:	5e                   	pop    %esi
5c1791:	5b                   	pop    %ebx
5c1792:	8b e5                	mov    %ebp,%esp
5c1794:	5d                   	pop    %ebp
5c1795:	c2 08 00             	ret    $0x8
5c1798:	81 7f 08 49 92 24 09 	cmpl   $0x9249249,0x8(%edi)
5c179f:	0f 84 10 01 00 00    	je     0x5c18b5
5c17a5:	8d 47 04             	lea    0x4(%edi),%eax
5c17a8:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5c17af:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5c17b2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5c17b9:	6a 1c                	push   $0x1c
5c17bb:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5c17c2:	e8 5e fa 00 00       	call   0x5d1225
5c17c7:	8b 0b                	mov    (%ebx),%ecx
5c17c9:	8b f0                	mov    %eax,%esi
5c17cb:	83 c4 04             	add    $0x4,%esp
5c17ce:	89 75 ec             	mov    %esi,-0x14(%ebp)
5c17d1:	89 75 e8             	mov    %esi,-0x18(%ebp)
5c17d4:	89 4e 08             	mov    %ecx,0x8(%esi)
5c17d7:	33 c9                	xor    %ecx,%ecx
5c17d9:	89 4e 0c             	mov    %ecx,0xc(%esi)
5c17dc:	89 4e 10             	mov    %ecx,0x10(%esi)
5c17df:	89 4e 14             	mov    %ecx,0x14(%esi)
5c17e2:	89 4e 18             	mov    %ecx,0x18(%esi)
5c17e5:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
5c17ec:	8b 4f 08             	mov    0x8(%edi),%ecx
5c17ef:	d9 07                	flds   (%edi)
5c17f1:	83 c1 01             	add    $0x1,%ecx
5c17f4:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5c17f7:	db 45 f0             	fildl  -0x10(%ebp)
5c17fa:	79 06                	jns    0x5c1802
5c17fc:	d8 05 00 5e 60 00    	fadds  0x605e00
5c1802:	d9 5d f0             	fstps  -0x10(%ebp)
5c1805:	d9 45 f0             	flds   -0x10(%ebp)
5c1808:	8b 47 1c             	mov    0x1c(%edi),%eax
5c180b:	db 47 1c             	fildl  0x1c(%edi)
5c180e:	85 c0                	test   %eax,%eax
5c1810:	79 06                	jns    0x5c1818
5c1812:	d8 05 00 5e 60 00    	fadds  0x605e00
5c1818:	d9 5d f0             	fstps  -0x10(%ebp)
5c181b:	d8 75 f0             	fdivs  -0x10(%ebp)
5c181e:	df f1                	fcomip %st(1),%st
5c1820:	dd d8                	fstp   %st(0)
5c1822:	76 26                	jbe    0x5c184a
5c1824:	51                   	push   %ecx
5c1825:	8b cf                	mov    %edi,%ecx
5c1827:	e8 14 4c 00 00       	call   0x5c6440
5c182c:	50                   	push   %eax
5c182d:	8b cf                	mov    %edi,%ecx
5c182f:	e8 7c 4c 00 00       	call   0x5c64b0
5c1834:	ff 75 0c             	push   0xc(%ebp)
5c1837:	8d 46 08             	lea    0x8(%esi),%eax
5c183a:	8b cf                	mov    %edi,%ecx
5c183c:	50                   	push   %eax
5c183d:	8d 45 dc             	lea    -0x24(%ebp),%eax
5c1840:	50                   	push   %eax
5c1841:	e8 da f2 ff ff       	call   0x5c0b20
5c1846:	8b 10                	mov    (%eax),%edx
5c1848:	eb 03                	jmp    0x5c184d
5c184a:	8b 55 dc             	mov    -0x24(%ebp),%edx
5c184d:	8b 5a 04             	mov    0x4(%edx),%ebx
5c1850:	ff 47 08             	incl   0x8(%edi)
5c1853:	89 16                	mov    %edx,(%esi)
5c1855:	89 5e 04             	mov    %ebx,0x4(%esi)
5c1858:	89 33                	mov    %esi,(%ebx)
5c185a:	89 72 04             	mov    %esi,0x4(%edx)
5c185d:	8b 47 18             	mov    0x18(%edi),%eax
5c1860:	23 45 0c             	and    0xc(%ebp),%eax
5c1863:	8b 4f 0c             	mov    0xc(%edi),%ecx
5c1866:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5c1869:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5c1870:	8b 3c c1             	mov    (%ecx,%eax,8),%edi
5c1873:	3b 3e                	cmp    (%esi),%edi
5c1875:	8b 75 ec             	mov    -0x14(%ebp),%esi
5c1878:	75 05                	jne    0x5c187f
5c187a:	89 34 c1             	mov    %esi,(%ecx,%eax,8)
5c187d:	eb 0f                	jmp    0x5c188e
5c187f:	3b fa                	cmp    %edx,%edi
5c1881:	75 05                	jne    0x5c1888
5c1883:	89 34 c1             	mov    %esi,(%ecx,%eax,8)
5c1886:	eb 0a                	jmp    0x5c1892
5c1888:	39 5c c1 04          	cmp    %ebx,0x4(%ecx,%eax,8)
5c188c:	75 04                	jne    0x5c1892
5c188e:	89 74 c1 04          	mov    %esi,0x4(%ecx,%eax,8)
5c1892:	8b 45 08             	mov    0x8(%ebp),%eax
5c1895:	89 30                	mov    %esi,(%eax)
5c1897:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5c189b:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5c18a2:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c18a5:	5f                   	pop    %edi
5c18a6:	5e                   	pop    %esi
5c18a7:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c18ae:	5b                   	pop    %ebx
5c18af:	8b e5                	mov    %ebp,%esp
5c18b1:	5d                   	pop    %ebp
5c18b2:	c2 08 00             	ret    $0x8
5c18b5:	68 20 64 60 00       	push   $0x606420
5c18ba:	e8 17 f3 00 00       	call   0x5d0bd6
5c18bf:	cc                   	int3
5c18c0:	55                   	push   %ebp
5c18c1:	8b ec                	mov    %esp,%ebp
5c18c3:	6a ff                	push   $0xffffffff
5c18c5:	68 fd 02 60 00       	push   $0x6002fd
5c18ca:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5c18d0:	50                   	push   %eax
5c18d1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c18d8:	83 ec 18             	sub    $0x18,%esp
5c18db:	53                   	push   %ebx
5c18dc:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5c18df:	56                   	push   %esi
5c18e0:	57                   	push   %edi
5c18e1:	53                   	push   %ebx
5c18e2:	8b f9                	mov    %ecx,%edi
5c18e4:	e8 87 ed ff ff       	call   0x5c0670
5c18e9:	50                   	push   %eax
5c18ea:	89 45 0c             	mov    %eax,0xc(%ebp)
5c18ed:	8b cf                	mov    %edi,%ecx
5c18ef:	53                   	push   %ebx
5c18f0:	8d 45 dc             	lea    -0x24(%ebp),%eax
5c18f3:	50                   	push   %eax
5c18f4:	e8 97 f2 ff ff       	call   0x5c0b90
5c18f9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
5c18fc:	85 c9                	test   %ecx,%ecx
5c18fe:	74 1c                	je     0x5c191c
5c1900:	8b 45 08             	mov    0x8(%ebp),%eax
5c1903:	89 08                	mov    %ecx,(%eax)
5c1905:	c6 40 04 00          	movb   $0x0,0x4(%eax)
5c1909:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c190c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c1913:	5f                   	pop    %edi
5c1914:	5e                   	pop    %esi
5c1915:	5b                   	pop    %ebx
5c1916:	8b e5                	mov    %ebp,%esp
5c1918:	5d                   	pop    %ebp
5c1919:	c2 08 00             	ret    $0x8
5c191c:	81 7f 08 ff ff ff 07 	cmpl   $0x7ffffff,0x8(%edi)
5c1923:	0f 84 58 01 00 00    	je     0x5c1a81
5c1929:	8d 47 04             	lea    0x4(%edi),%eax
5c192c:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)