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)
5c1933:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5c1936:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5c193d:	6a 20                	push   $0x20
5c193f:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5c1946:	e8 da f8 00 00       	call   0x5d1225
5c194b:	8b 0b                	mov    (%ebx),%ecx
5c194d:	8b f0                	mov    %eax,%esi
5c194f:	83 c4 04             	add    $0x4,%esp
5c1952:	89 75 ec             	mov    %esi,-0x14(%ebp)
5c1955:	89 75 e8             	mov    %esi,-0x18(%ebp)
5c1958:	89 4e 08             	mov    %ecx,0x8(%esi)
5c195b:	8b 4b 04             	mov    0x4(%ebx),%ecx
5c195e:	89 4e 0c             	mov    %ecx,0xc(%esi)
5c1961:	8b 4b 08             	mov    0x8(%ebx),%ecx
5c1964:	89 4e 10             	mov    %ecx,0x10(%esi)
5c1967:	8b 43 0c             	mov    0xc(%ebx),%eax
5c196a:	89 46 14             	mov    %eax,0x14(%esi)
5c196d:	33 c0                	xor    %eax,%eax
5c196f:	89 46 18             	mov    %eax,0x18(%esi)
5c1972:	89 46 1c             	mov    %eax,0x1c(%esi)
5c1975:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
5c197c:	8b 47 08             	mov    0x8(%edi),%eax
5c197f:	d9 07                	flds   (%edi)
5c1981:	83 c0 01             	add    $0x1,%eax
5c1984:	89 45 f0             	mov    %eax,-0x10(%ebp)
5c1987:	db 45 f0             	fildl  -0x10(%ebp)
5c198a:	79 06                	jns    0x5c1992
5c198c:	d8 05 00 5e 60 00    	fadds  0x605e00
5c1992:	d9 5d f0             	fstps  -0x10(%ebp)
5c1995:	d9 45 f0             	flds   -0x10(%ebp)
5c1998:	8b 5f 1c             	mov    0x1c(%edi),%ebx
5c199b:	db 47 1c             	fildl  0x1c(%edi)
5c199e:	85 db                	test   %ebx,%ebx
5c19a0:	79 06                	jns    0x5c19a8
5c19a2:	d8 05 00 5e 60 00    	fadds  0x605e00
5c19a8:	d9 5d f0             	fstps  -0x10(%ebp)
5c19ab:	d9 45 f0             	flds   -0x10(%ebp)
5c19ae:	d8 f9                	fdivr  %st(1),%st
5c19b0:	df f2                	fcomip %st(2),%st
5c19b2:	76 5e                	jbe    0x5c1a12
5c19b4:	de f1                	fdivp  %st,%st(1)
5c19b6:	83 ec 08             	sub    $0x8,%esp
5c19b9:	d9 5d f0             	fstps  -0x10(%ebp)
5c19bc:	d9 45 f0             	flds   -0x10(%ebp)
5c19bf:	dd 1c 24             	fstpl  (%esp)
5c19c2:	e8 09 4b 01 00       	call   0x5d64d0
5c19c7:	d9 5d f0             	fstps  -0x10(%ebp)
5c19ca:	d9 45 f0             	flds   -0x10(%ebp)
5c19cd:	83 c4 08             	add    $0x8,%esp
5c19d0:	e8 4b fc 00 00       	call   0x5d1620
5c19d5:	b9 08 00 00 00       	mov    $0x8,%ecx
5c19da:	3b c1                	cmp    %ecx,%eax
5c19dc:	0f 47 c8             	cmova  %eax,%ecx
5c19df:	3b d9                	cmp    %ecx,%ebx
5c19e1:	73 11                	jae    0x5c19f4
5c19e3:	81 fb 00 02 00 00    	cmp    $0x200,%ebx
5c19e9:	73 07                	jae    0x5c19f2
5c19eb:	c1 e3 03             	shl    $0x3,%ebx
5c19ee:	3b d9                	cmp    %ecx,%ebx
5c19f0:	73 02                	jae    0x5c19f4
5c19f2:	8b d9                	mov    %ecx,%ebx
5c19f4:	53                   	push   %ebx
5c19f5:	8b cf                	mov    %edi,%ecx
5c19f7:	e8 54 4c 00 00       	call   0x5c6650
5c19fc:	ff 75 0c             	push   0xc(%ebp)
5c19ff:	8d 46 08             	lea    0x8(%esi),%eax
5c1a02:	8b cf                	mov    %edi,%ecx
5c1a04:	50                   	push   %eax
5c1a05:	8d 45 dc             	lea    -0x24(%ebp),%eax
5c1a08:	50                   	push   %eax
5c1a09:	e8 82 f1 ff ff       	call   0x5c0b90
5c1a0e:	8b 10                	mov    (%eax),%edx
5c1a10:	eb 07                	jmp    0x5c1a19
5c1a12:	8b 55 dc             	mov    -0x24(%ebp),%edx
5c1a15:	dd d8                	fstp   %st(0)
5c1a17:	dd d8                	fstp   %st(0)
5c1a19:	8b 5a 04             	mov    0x4(%edx),%ebx
5c1a1c:	ff 47 08             	incl   0x8(%edi)
5c1a1f:	89 16                	mov    %edx,(%esi)
5c1a21:	89 5e 04             	mov    %ebx,0x4(%esi)
5c1a24:	89 33                	mov    %esi,(%ebx)
5c1a26:	89 72 04             	mov    %esi,0x4(%edx)
5c1a29:	8b 47 18             	mov    0x18(%edi),%eax
5c1a2c:	23 45 0c             	and    0xc(%ebp),%eax
5c1a2f:	8b 4f 0c             	mov    0xc(%edi),%ecx
5c1a32:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5c1a35:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5c1a3c:	8b 3c c1             	mov    (%ecx,%eax,8),%edi
5c1a3f:	3b 3e                	cmp    (%esi),%edi
5c1a41:	8b 75 ec             	mov    -0x14(%ebp),%esi
5c1a44:	75 05                	jne    0x5c1a4b
5c1a46:	89 34 c1             	mov    %esi,(%ecx,%eax,8)
5c1a49:	eb 0f                	jmp    0x5c1a5a
5c1a4b:	3b fa                	cmp    %edx,%edi
5c1a4d:	75 05                	jne    0x5c1a54
5c1a4f:	89 34 c1             	mov    %esi,(%ecx,%eax,8)
5c1a52:	eb 0a                	jmp    0x5c1a5e
5c1a54:	39 5c c1 04          	cmp    %ebx,0x4(%ecx,%eax,8)
5c1a58:	75 04                	jne    0x5c1a5e
5c1a5a:	89 74 c1 04          	mov    %esi,0x4(%ecx,%eax,8)
5c1a5e:	8b 45 08             	mov    0x8(%ebp),%eax
5c1a61:	89 30                	mov    %esi,(%eax)
5c1a63:	c6 40 04 01          	movb   $0x1,0x4(%eax)
5c1a67:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5c1a6e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c1a71:	5f                   	pop    %edi
5c1a72:	5e                   	pop    %esi
5c1a73:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c1a7a:	5b                   	pop    %ebx
5c1a7b:	8b e5                	mov    %ebp,%esp
5c1a7d:	5d                   	pop    %ebp
5c1a7e:	c2 08 00             	ret    $0x8
5c1a81:	68 20 64 60 00       	push   $0x606420
5c1a86:	e8 4b f1 00 00       	call   0x5d0bd6
5c1a8b:	cc                   	int3
5c1a8c:	cc                   	int3
5c1a8d:	cc                   	int3
5c1a8e:	cc                   	int3
5c1a8f:	cc                   	int3
5c1a90:	55                   	push   %ebp
5c1a91:	8b ec                	mov    %esp,%ebp
5c1a93:	8b 45 08             	mov    0x8(%ebp),%eax
5c1a96:	56                   	push   %esi
5c1a97:	8b 75 0c             	mov    0xc(%ebp),%esi
5c1a9a:	57                   	push   %edi
5c1a9b:	8b 7d 10             	mov    0x10(%ebp),%edi
5c1a9e:	2b f0                	sub    %eax,%esi
5c1aa0:	56                   	push   %esi
5c1aa1:	50                   	push   %eax
5c1aa2:	57                   	push   %edi
5c1aa3:	e8 28 13 01 00       	call   0x5d2dd0
5c1aa8:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c1aad:	83 c4 0c             	add    $0xc,%esp
5c1ab0:	f7 ee                	imul   %esi
5c1ab2:	c1 fa 03             	sar    $0x3,%edx
5c1ab5:	8b c2                	mov    %edx,%eax
5c1ab7:	c1 e8 1f             	shr    $0x1f,%eax
5c1aba:	03 c2                	add    %edx,%eax
5c1abc:	8d 04 80             	lea    (%eax,%eax,4),%eax
5c1abf:	8d 04 87             	lea    (%edi,%eax,4),%eax
5c1ac2:	5f                   	pop    %edi
5c1ac3:	5e                   	pop    %esi
5c1ac4:	5d                   	pop    %ebp
5c1ac5:	c3                   	ret
5c1ac6:	cc                   	int3
5c1ac7:	cc                   	int3
5c1ac8:	cc                   	int3
5c1ac9:	cc                   	int3
5c1aca:	cc                   	int3
5c1acb:	cc                   	int3
5c1acc:	cc                   	int3
5c1acd:	cc                   	int3
5c1ace:	cc                   	int3
5c1acf:	cc                   	int3
5c1ad0:	55                   	push   %ebp
5c1ad1:	8b ec                	mov    %esp,%ebp
5c1ad3:	6a ff                	push   $0xffffffff
5c1ad5:	68 20 03 60 00       	push   $0x600320
5c1ada:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5c1ae0:	50                   	push   %eax
5c1ae1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c1ae8:	51                   	push   %ecx
5c1ae9:	56                   	push   %esi
5c1aea:	8b f1                	mov    %ecx,%esi
5c1aec:	56                   	push   %esi
5c1aed:	89 75 f0             	mov    %esi,-0x10(%ebp)
5c1af0:	e8 db 90 00 00       	call   0x5cabd0
5c1af5:	83 c4 04             	add    $0x4,%esp
5c1af8:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
5c1aff:	8d 4e 18             	lea    0x18(%esi),%ecx
5c1b02:	e8 19 59 00 00       	call   0x5c7420
5c1b07:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5c1b0e:	c7 46 30 00 00 00 00 	movl   $0x0,0x30(%esi)
5c1b15:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
5c1b1c:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)