; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.3077 

	TITLE	Leprechaun.c
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
FLAT	GROUP _DATA, CONST, _BSS
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif

INCLUDELIB LIBC
INCLUDELIB OLDNAMES

_BSS	SEGMENT
$SG1612	DB	01H DUP (?)
$SG1695	DB	01H DUP (?)
$SG1707	DB	01H DUP (?)
_BSS	ENDS
_DATA	SEGMENT
$SG1399	DB	'rb', 00H
	ORG $+1
$SG1400	DB	'Leprechaun: Can''t open file %s ', 0aH, 00H
	ORG $+3
$SG1407	DB	'Allocated memory for words in MB: %lu', 0aH, 00H
	ORG $+1
$SG1409	DB	'Leprechaun: Can''t read file %s ', 0aH, 00H
	ORG $+3
$SG1420	DB	'Leprechaun: Needed memory allocation denied!', 0aH, 00H
	ORG $+2
$SG1422	DB	'Allocated memory for pointers-to-words in MB: %lu', 0aH, 00H
	ORG $+1
$SG1609	DB	'Leprechaun(Fast and Greedy Word_Ripper), revision 12+, w'
	DB	'ritten by Svalqyatchx.', 00H
	ORG $+1
$SG1610	DB	'Leprechaun: ''Oh, well, didn''t you hear? Bigger is good'
	DB	', but jumbo is dear.''', 00H
$SG1613	DB	'''The Little Monster'' short notes:', 00H
	ORG $+2
$SG1614	DB	'Note1: I wish to thank to R.N. Horspool, Ranjan Sinha, D'
	DB	'mitry Shkarin, Michael', 00H
	ORG $+1
$SG1615	DB	'       Abrash, J. Bentley, R. Sedgewick, Igor Pavlov for'
	DB	' sharing their', 00H
	ORG $+1
$SG1616	DB	'       knowledge to public.', 00H
$SG1617	DB	'Note2: Run it without parameters to get usage and short '
	DB	'notes:', 00H
	ORG $+5
$SG1618	DB	'Note3: This simple amateurish(more over I am not versed '
	DB	'well neither in C nor', 00H
	ORG $+2
$SG1619	DB	'       in mathematics nor in english language, but I am '
	DB	'persistent in INDEXING', 00H
	ORG $+1
$SG1620	DB	'       GBs of english TEXTS) tool is written in ANSI C(a'
	DB	't least its source is', 00H
	ORG $+2
$SG1621	DB	'       compileable for CL(Windows) and GCC(Linux)), and '
	DB	'its purpose is to', 00H
	ORG $+6
$SG1622	DB	'       create a WordList for a group of files(given via '
	DB	'filelist).', 00H
	ORG $+5
$SG1623	DB	'       Its name comes(according to Heritage Dictionary) '
	DB	'from ''low corpus'' or', 00H
	ORG $+3
$SG1624	DB	'       ''little body'', in fact from amazing movie saga '
	DB	'''Leprechaun 1-2-3-4-5-6''', 00H
	ORG $+1
$SG1625	DB	'       starring by Warwick Davis.', 00H
	ORG $+2
$SG1626	DB	'Note4: Only words up to 31 chars are proceeded.', 00H
$SG1627	DB	'Note5: Cursor hiding in C - mission impossible for me.', 00H
	ORG $+5
$SG1628	DB	'Note6: By default(third parameter is 1023) allocated mem'
	DB	'ory is 364MB.', 00H
	ORG $+2
$SG1629	DB	'       Due to ''malloc()'' limitation under WINDOWS, max'
	DB	'imum value of third', 00H
	ORG $+2
$SG1630	DB	'       parameter is 5400 which is 1920MB allocated block'
	DB	'.', 00H
	ORG $+2
$SG1631	DB	'Note7: File Leprechaun.LOG is a log, where new statistic'
	DB	's are appended.', 00H
$SG1632	DB	'Note8: Revision 12+ can handle files larger than 4GB.', 00H
	ORG $+2
$SG1633	DB	'Note9: For ''H:\>Leprechaun.exe static.wikipedia.org_dow'
	DB	'nloads_2008-06_en.lst', 00H
	ORG $+3
$SG1634	DB	'       wikipedia-en-html.tar.wrd 5400''', 00H
	ORG $+1
$SG1635	DB	'       where 223,674,511,360 wikipedia-en-html.tar', 00H
	ORG $+1
$SG1636	DB	'       on laptop Toshiba Pentium T3400 2166 MHz with', 00H
	ORG $+7
$SG1637	DB	'       Motherboard Name:                             Tos'
	DB	'hiba Satellite L305', 00H
	ORG $+4
$SG1638	DB	'       CPU Type:         Mobile DualCore Intel Pentium, '
	DB	'2166 MHz (13 x 167)', 00H
	ORG $+4
$SG1639	DB	'       CPU Alias:                                       '
	DB	'           Merom-1M', 00H
	ORG $+4
$SG1640	DB	'       L1 Code Cache:                                   '
	DB	'     32 KB per core', 00H
	ORG $+4
$SG1641	DB	'       L1 Data Cache:                                   '
	DB	'     32 KB per core', 00H
	ORG $+4
$SG1642	DB	'       L2 Cache:                        1 MB (On-Die, EC'
	DB	'C, ASC, Full-Speed)', 00H
	ORG $+4
$SG1643	DB	'       Bus Type:                                        '
	DB	'    Dual DDR2 SDRAM', 00H
	ORG $+4
$SG1644	DB	'       Bus Width:                                       '
	DB	'            128-bit', 00H
	ORG $+4
$SG1645	DB	'       Real Clock:                                      '
	DB	'      333 MHz (DDR)', 00H
	ORG $+4
$SG1646	DB	'       Effective Clock:                                 '
	DB	'            666 MHz', 00H
	ORG $+4
$SG1647	DB	'       EVEREST v5.00.1650 Memory Copy:       3725MB/s wi'
	DB	'th timings 5-5-5-13', 00H
$SG1648	DB	'       result is logged to ''Leprechaun.LOG'':', 00H
	ORG $+3
$SG1649	DB	'  Bytes per second performance: 20,658,955B/s', 00H
	ORG $+2
$SG1650	DB	'  Words per second performance: 2,860,880W/s', 00H
	ORG $+3
$SG1651	DB	'  Input File with a list of TEXTual Files:', 00H
	ORG $+1
$SG1652	DB	'   static.wikipedia.org_downloads_2008-06_en.lst', 00H
	ORG $+3
$SG1653	DB	'  Size of all TEXTual Files: 223,674,511,360', 00H
	ORG $+3
$SG1654	DB	'  Word count: 30,974,750,142 of them 12,561,874 distinct'
	DB	00H
	ORG $+3
$SG1655	DB	'  Number Of Files: 1', 00H
	ORG $+3
$SG1656	DB	'  Number Of Lines: 2088618575', 00H
	ORG $+2
$SG1657	DB	'  Allocated memory in MB: 1920', 00H
	ORG $+1
$SG1658	DB	'  Words with length 01 occupy 0,033KB of 0,349KB given i'
	DB	'.e. 09% utilization', 00H
	ORG $+4
$SG1659	DB	'  Words with length 02 occupy 0,033KB of 0,349KB given i'
	DB	'.e. 09% utilization', 00H
	ORG $+4
$SG1660	DB	'  Words with length 03 occupy 0,037KB of 0,697KB given i'
	DB	'.e. 05% utilization', 00H
	ORG $+4
$SG1661	DB	'  Words with length 04 occupy 0,151KB of 0,871KB given i'
	DB	'.e. 17% utilization', 00H
	ORG $+4
$SG1662	DB	'  Words with length 05 occupy 0,744KB of 1,568KB given i'
	DB	'.e. 47% utilization', 00H
	ORG $+4
$SG1663	DB	'  Words with length 06 occupy 1,470KB of 3,136KB given i'
	DB	'.e. 46% utilization', 00H
	ORG $+4
$SG1664	DB	'  Words with length 07 occupy 2,605KB of 5,923KB given i'
	DB	'.e. 43% utilization', 00H
	ORG $+4
$SG1665	DB	'  Words with length 08 occupy 3,296KB of 6,968KB given i'
	DB	'.e. 47% utilization', 00H
	ORG $+4
$SG1666	DB	'  Words with length 09 occupy 3,714KB of 6,968KB given i'
	DB	'.e. 53% utilization', 00H
	ORG $+4
$SG1667	DB	'  Words with length 10 occupy 3,483KB of 6,968KB given i'
	DB	'.e. 49% utilization', 00H
	ORG $+4
$SG1668	DB	'  Words with length 11 occupy 3,235KB of 5,923KB given i'
	DB	'.e. 54% utilization', 00H
	ORG $+4
$SG1669	DB	'  Words with length 12 occupy 2,691KB of 4,181KB given i'
	DB	'.e. 64% utilization', 00H
	ORG $+4
$SG1670	DB	'  Words with length 13 occupy 2,230KB of 3,484KB given i'
	DB	'.e. 64% utilization', 00H
	ORG $+4
$SG1671	DB	'  Words with length 14 occupy 1,718KB of 3,484KB given i'
	DB	'.e. 49% utilization', 00H
	ORG $+4
$SG1672	DB	'  Words with length 15 occupy 1,357KB of 2,613KB given i'
	DB	'.e. 51% utilization', 00H
	ORG $+4
$SG1673	DB	'  Words with length 16 occupy 1,063KB of 2,613KB given i'
	DB	'.e. 40% utilization', 00H
	ORG $+4
$SG1674	DB	'  Words with length 17 occupy 0,814KB of 1,742KB given i'
	DB	'.e. 46% utilization', 00H
	ORG $+4
$SG1675	DB	'  Words with length 18 occupy 0,617KB of 1,742KB given i'
	DB	'.e. 35% utilization', 00H
	ORG $+4
$SG1676	DB	'  Words with length 19 occupy 0,485KB of 1,742KB given i'
	DB	'.e. 27% utilization', 00H
	ORG $+4
$SG1677	DB	'  Words with length 20 occupy 0,402KB of 1,742KB given i'
	DB	'.e. 23% utilization', 00H
	ORG $+4
$SG1678	DB	'  Words with length 21 occupy 0,327KB of 1,742KB given i'
	DB	'.e. 18% utilization', 00H
	ORG $+4
$SG1679	DB	'  Words with length 22 occupy 0,274KB of 1,742KB given i'
	DB	'.e. 15% utilization', 00H
	ORG $+4
$SG1680	DB	'  Words with length 23 occupy 0,224KB of 1,394KB given i'
	DB	'.e. 16% utilization', 00H
	ORG $+4
$SG1681	DB	'  Words with length 24 occupy 0,190KB of 1,394KB given i'
	DB	'.e. 13% utilization', 00H
	ORG $+4
$SG1682	DB	'  Words with length 25 occupy 0,162KB of 1,394KB given i'
	DB	'.e. 11% utilization', 00H
	ORG $+4
$SG1683	DB	'  Words with length 26 occupy 0,136KB of 1,220KB given i'
	DB	'.e. 11% utilization', 00H
	ORG $+4
$SG1684	DB	'  Words with length 27 occupy 0,119KB of 1,046KB given i'
	DB	'.e. 11% utilization', 00H
	ORG $+4
$SG1685	DB	'  Words with length 28 occupy 0,107KB of 0,871KB given i'
	DB	'.e. 12% utilization', 00H
	ORG $+4
$SG1686	DB	'  Words with length 29 occupy 0,091KB of 0,697KB given i'
	DB	'.e. 13% utilization', 00H
	ORG $+4
$SG1687	DB	'  Words with length 30 occupy 0,080KB of 0,523KB given i'
	DB	'.e. 15% utilization', 00H
	ORG $+4
$SG1688	DB	'  Words with length 31 occupy 0,076KB of 0,523KB given i'
	DB	'.e. 14% utilization', 00H
$SG1689	DB	'  Total pseudo(including hash table) memory utilization:'
	DB	' 42%', 00H
	ORG $+7
$SG1690	DB	'  Total real(wordlist''s words VS allocated block) memor'
	DB	'y utilization: 60/1000', 00H
	ORG $+2
$SG1691	DB	'  Used value for third parameter in KB: 5400', 00H
	ORG $+3
$SG1692	DB	'  Use next time as third parameter: 3475-', 00H
	ORG $+2
$SG1693	DB	'  Time for making unsorted wordlist: 10827 second(s)', 00H
	ORG $+3
$SG1694	DB	'  Time for sorting unsorted wordlist: 10 second(s)', 00H
	ORG $+1
$SG1696	DB	'Usage: Leprechaun InFile OutFile [BufferSize] [SortMetho'
	DB	'd]', 00H
	ORG $+5
$SG1697	DB	'      <InFile>: Input file with files for Leprechauning,'
	DB	' in WINDOWS console', 00H
	ORG $+4
$SG1698	DB	'                you can create it by ''E:\KAZEHOME>dir *'
	DB	'.txt/s/b>Leprechaun.lst''', 00H
$SG1699	DB	'      <OutFile>: Output WORDLIST(sorted since r.9, CRLF)'
	DB	' file', 00H
	ORG $+2
$SG1700	DB	'      <BufferSize>: Optional Dynamic RAM buffer in KB, d'
	DB	'efault(and minimum', 00H
	ORG $+5
$SG1701	DB	'                    in the same time) is 1023, i.e. omit'
	DB	' or specify greater one', 00H
$SG1702	DB	'      <SortMethod>: Optional Sort Method, default is ''D'
	DB	''',', 00H
	ORG $+2
$SG1703	DB	'                    A - InsertionSort', 00H
	ORG $+2
$SG1704	DB	'                    B - InsertionX26Sort', 00H
	ORG $+3
$SG1705	DB	'                    C - MultiKeyQuickSortSort by J. Bent'
	DB	'ley, R. Sedgewick', 00H
	ORG $+6
$SG1706	DB	'                    D - MultiKeyQuickSortX26Sort'' by J.'
	DB	' Bentley, R. Sedgewick', 00H
	ORG $+2
$SG1708	DB	'Have a nice Leprechauning.', 00H
	ORG $+1
$SG1709	DB	'For contacts: sanmayce@hotmail.com', 00H
	ORG $+1
$SG1710	DB	'Sanmayce Svalqyatchx ''Kaze'', 2005 Feb 07(rev.12+: 2010'
	DB	' Feb 21).', 00H
$SG1713	DB	'rb', 00H
	ORG $+1
$SG1714	DB	'Leprechaun: Can''t open file %s ', 0aH, 00H
	ORG $+3
$SG1715	DB	'Size of input file with files for Leprechauning: %lu', 0aH
	DB	00H
	ORG $+2
$SG1718	DB	'a+', 00H
	ORG $+1
$SG1719	DB	'Leprechaun.LOG', 00H
	ORG $+1
$SG1720	DB	'Leprechaun: Can''t open file Leprechaun.LOG.', 0aH, 00H
	ORG $+3
$SG1739	DB	'Leprechaun: Needed memory allocation denied!', 0aH, 00H
	ORG $+2
$SG1740	DB	'Allocated memory in MB: %lu', 0aH, 00H
	ORG $+3
$SG1766	DB	'rb', 00H
	ORG $+1
$SG1767	DB	'Leprechaun: Can''t open file %s ', 0aH, 00H
	ORG $+3
$SG1768	DB	'Size of Input TEXTual file: %s', 0aH, 00H
$SG1781	DB	'|; Word count: %s of them %s distinct; Done: %lu/64', 0dH
	DB	00H
	ORG $+3
$SG1785	DB	'/; Word count: %s of them %s distinct; Done: %lu/64', 0dH
	DB	00H
	ORG $+3
$SG1789	DB	'-; Word count: %s of them %s distinct; Done: %lu/64', 0dH
	DB	00H
	ORG $+3
$SG1793	DB	'\; Word count: %s of them %s distinct; Done: %lu/64', 0dH
	DB	00H
	ORG $+7
$SG1811	DB	0aH, 'Leprechaun: Failure! Increment ''Memory for each Le'
	DB	'tter'' parameter(third one)!', 0aH, 00H
$SG1812	DB	'Input File with a list of TEXTual Files: %s', 0aH, 00H
	ORG $+3
$SG1813	DB	'Size of all TEXTual Files: %s', 0aH, 00H
	ORG $+1
$SG1815	DB	'Word count: %s of them %s distinct', 0aH, 00H
$SG1816	DB	'Number Of Files: %lu', 0aH, 00H
	ORG $+2
$SG1817	DB	'Number Of Lines: %lu', 0aH, 00H
	ORG $+2
$SG1819	DB	'Allocated memory in MB: %lu', 0aH, 00H
	ORG $+3
$SG1826	DB	'%', 00H, 00H
	ORG $+1
$SG1827	DB	'Words with length %s occupy %sKB of %sKB given i.e. %s%s'
	DB	' utilization', 0aH, 00H
	ORG $+2
$SG1829	DB	'Used value for third parameter in KB: %lu', 0aH, 00H
	ORG $+5
$SG1830	DB	'Leprechaun: Failure! Increment ''Memory for each Letter'''
	DB	' parameter(third one)!', 0aH, 0aH, 00H
$SG1833	DB	'|; Word count: %s of them %s distinct; Done: %lu/64', 0aH
	DB	00H
	ORG $+3
$SG1836	DB	'/; Word count: %s of them %s distinct; Done: %lu/64', 0aH
	DB	00H
	ORG $+3
$SG1839	DB	'-; Word count: %s of them %s distinct; Done: %lu/64', 0aH
	DB	00H
	ORG $+3
$SG1842	DB	'\; Word count: %s of them %s distinct; Done: %lu/64', 0aH
	DB	00H
	ORG $+3
$SG1843	DB	'Flushing unsorted words ...', 0aH, 00H
	ORG $+3
$SG1846	DB	'wb+', 00H
$SG1847	DB	'Leprechaun: Can''t create file %s ', 0aH, 00H
	ORG $+1
$SG1866	DB	'Time for making unsorted wordlist: %d second(s)', 0aH, 00H
	ORG $+3
$SG1868	DB	'Bytes per second performance: %sB/s', 0aH, 00H
	ORG $+3
$SG1870	DB	'Words per second performance: %sW/s', 0aH, 00H
	ORG $+3
$SG1871	DB	'Input File with a list of TEXTual Files: %s', 0aH, 00H
	ORG $+3
$SG1872	DB	'Size of all TEXTual Files: %s', 0aH, 00H
	ORG $+1
$SG1874	DB	'Word count: %s of them %s distinct', 0aH, 00H
$SG1875	DB	'Number Of Files: %lu', 0aH, 00H
	ORG $+2
$SG1876	DB	'Number Of Lines: %lu', 0aH, 00H
	ORG $+2
$SG1878	DB	'Allocated memory in MB: %lu', 0aH, 00H
	ORG $+3
$SG1885	DB	'%', 00H, 00H
	ORG $+5
$SG1886	DB	'Words with length %s occupy %sKB of %sKB given i.e. %s%s'
	DB	' utilization', 0aH, 00H
	ORG $+2
$SG1891	DB	'%', 00H, 00H
	ORG $+1
$SG1892	DB	'Total pseudo(including hash table) memory utilization: %'
	DB	's%s', 0aH, 00H
	ORG $+7
$SG1894	DB	'Total real(wordlist''s words VS allocated block) memory '
	DB	'utilization: %s/1000', 0aH, 00H
	ORG $+3
$SG1896	DB	'Used value for third parameter in KB: %lu', 0aH, 00H
	ORG $+1
$SG1897	DB	'Use next time as third parameter: %lu-', 0aH, 00H
$SG1899	DB	'Time for making unsorted wordlist: %d second(s)', 0aH, 00H
	ORG $+3
$SG1900	DB	'Deallocated memory in MB: %lu', 0aH, 00H
	ORG $+1
$SG1904	DB	'Sorting(with ''MultiKeyQuickSortX26Sort'' by J. Bentley '
	DB	'and R. Sedgewick) ...', 0aH, 00H
	ORG $+3
$SG1908	DB	'Sort pass %s/26 ...', 0dH, 00H
	ORG $+3
$SG1916	DB	'Sorting(with ''InsertionSort'') ...', 00H
	ORG $+2
$SG1919	DB	'Sorting(with ''InsertionX26Sort'') ...', 0aH, 00H
	ORG $+2
$SG1923	DB	'Sort pass %s/26 ...', 0dH, 00H
	ORG $+7
$SG1930	DB	'Sorting(with ''MultiKeyQuickSortSort'' by J. Bentley and'
	DB	' R. Sedgewick) ...', 00H
	ORG $+7
$SG1933	DB	'Sorting(with ''MultiKeyQuickSortX26Sort'' by J. Bentley '
	DB	'and R. Sedgewick) ...', 0aH, 00H
	ORG $+3
$SG1937	DB	'Sort pass %s/26 ...', 0dH, 00H
	ORG $+3
$SG1942	DB	0aH, 'Flushing sorted words ...', 0aH, 00H
$SG1945	DB	'wb+', 00H
$SG1946	DB	'Leprechaun: Can''t create file %s ', 0aH, 00H
	ORG $+1
$SG1950	DB	'%s', 00H
	ORG $+1
$SG1954	DB	'Time for sorting unsorted wordlist: %d second(s)', 0aH, 00H
	ORG $+2
$SG1957	DB	'a+', 00H
	ORG $+1
$SG1958	DB	'Leprechaun.LOG', 00H
	ORG $+1
$SG1959	DB	'Leprechaun: Can''t open file Leprechaun.LOG.', 0aH, 00H
	ORG $+3
$SG1961	DB	'Time for sorting unsorted wordlist: %d second(s)', 0aH, 0aH
	DB	00H
	ORG $+1
$SG1962	DB	'Leprechaun: Done.', 0aH, 00H
	ORG $+1
$SG1964	DB	'Leprechaun: Input file too large, wordlist remains unsor'
	DB	'ted!', 0aH, 00H
; Function compile flags: /Ogty
_DATA	ENDS
_TEXT	SEGMENT
_pi$ = -8						; size = 4
tv198 = -4						; size = 4
_a$ = 8							; size = 4
_d$ = 12						; size = 4
_InsertSortKAZE PROC NEAR
; _n$ = eax
; File d:\leprechaun12+\leprechaun.c
; Line 84
	sub	esp, 8
; Line 85
	mov	ecx, DWORD PTR _a$[esp+4]
	add	ecx, 4
	dec	eax
	test	eax, eax
	push	ebp
	mov	ebp, DWORD PTR _d$[esp+8]
	mov	DWORD PTR _pi$[esp+12], ecx
	jle	SHORT $L1285
	push	ebx
	push	esi
	mov	DWORD PTR tv198[esp+20], eax
	push	edi
	npad	1
$L1981:
; Line 86
	cmp	ecx, DWORD PTR _a$[esp+20]
	jbe	SHORT $L1284
$L1286:
; Line 88
	mov	edi, DWORD PTR [ecx-4]
	mov	ebx, DWORD PTR [ecx]
	mov	al, BYTE PTR [edi+ebp]
	cmp	al, BYTE PTR [ebx+ebp]
	lea	edx, DWORD PTR [edi+ebp]
	lea	esi, DWORD PTR [ebx+ebp]
	jne	SHORT $L1291
	npad	7
$L1289:
	test	al, al
	je	SHORT $L1291
	mov	al, BYTE PTR [edx+1]
	inc	edx
	inc	esi
	cmp	al, BYTE PTR [esi]
	je	SHORT $L1289
$L1291:
; Line 90
	mov	al, BYTE PTR [edx]
	cmp	al, BYTE PTR [esi]
	jbe	SHORT $L1980
	mov	eax, DWORD PTR _a$[esp+20]
; Line 92
	mov	DWORD PTR [ecx], edi
	mov	DWORD PTR [ecx-4], ebx
	add	ecx, -4					; fffffffcH
	cmp	ecx, eax
	ja	SHORT $L1286
$L1980:
; Line 86
	mov	ecx, DWORD PTR _pi$[esp+24]
$L1284:
; Line 85
	mov	eax, DWORD PTR tv198[esp+24]
	add	ecx, 4
	dec	eax
	mov	DWORD PTR _pi$[esp+24], ecx
	mov	DWORD PTR tv198[esp+24], eax
	jne	SHORT $L1981
	pop	edi
	pop	esi
	pop	ebx
$L1285:
	pop	ebp
; Line 94
	add	esp, 8
	ret	0
_InsertSortKAZE ENDP
_TEXT	ENDS
PUBLIC	_vecswap2
; Function compile flags: /Ogty
_TEXT	SEGMENT
_a$ = 8							; size = 4
_b$ = 12						; size = 4
_n$ = 16						; size = 4
_vecswap2 PROC NEAR
; Line 158
	push	esi
	mov	esi, DWORD PTR _n$[esp]
	test	esi, esi
	jle	SHORT $L1984
	mov	ecx, DWORD PTR _b$[esp]
	mov	eax, DWORD PTR _a$[esp]
	push	edi
$L1302:
; Line 160
	mov	edi, DWORD PTR [ecx]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [eax], edi
; Line 161
	mov	DWORD PTR [ecx], edx
	add	eax, 4
	add	ecx, 4
	dec	esi
	jne	SHORT $L1302
	pop	edi
$L1984:
	pop	esi
; Line 163
	ret	0
_vecswap2 ENDP
_TEXT	ENDS
PUBLIC	_med3func
; Function compile flags: /Ogty
_TEXT	SEGMENT
_a$ = 8							; size = 4
_b$ = 12						; size = 4
_c$ = 16						; size = 4
_depth$ = 20						; size = 4
_med3func PROC NEAR
; Line 170
	mov	eax, DWORD PTR _a$[esp-4]
	mov	ecx, DWORD PTR _depth$[esp-4]
	mov	edx, DWORD PTR [eax]
	movzx	edx, BYTE PTR [edx+ecx]
	push	ebx
	mov	ebx, DWORD PTR _b$[esp]
	push	esi
	mov	esi, DWORD PTR [ebx]
	movzx	esi, BYTE PTR [esi+ecx]
	cmp	edx, esi
; Line 171
	je	SHORT $L1314
	push	ebp
	push	edi
; Line 172
	mov	edi, DWORD PTR _c$[esp+12]
	mov	ebp, DWORD PTR [edi]
	movzx	ecx, BYTE PTR [ecx+ebp]
	cmp	ecx, edx
	je	SHORT $L1320
	cmp	ecx, esi
	je	SHORT $L1320
; Line 176
	cmp	edx, esi
	jge	SHORT $L1995
	cmp	esi, ecx
	jl	SHORT $L1998
	cmp	edx, ecx
	jl	SHORT $L1320
	pop	edi
	pop	ebp
	pop	esi
	pop	ebx
; Line 177
	ret	0
$L1995:
; Line 176
	cmp	esi, ecx
	jle	SHORT $L1993
$L1998:
	pop	edi
	pop	ebp
	pop	esi
	mov	eax, ebx
	pop	ebx
; Line 177
	ret	0
$L1993:
; Line 176
	cmp	edx, ecx
	jl	SHORT $L1997
$L1320:
; Line 173
	mov	eax, edi
$L1997:
	pop	edi
	pop	ebp
$L1314:
	pop	esi
	pop	ebx
; Line 177
	ret	0
_med3func ENDP
_TEXT	ENDS
PUBLIC	_inssort
; Function compile flags: /Ogty
_TEXT	SEGMENT
_pi$ = -4						; size = 4
_a$ = 8							; size = 4
tv198 = 12						; size = 4
_n$ = 12						; size = 4
_d$ = 16						; size = 4
_inssort PROC NEAR
; Line 181
	push	ecx
; Line 182
	mov	ecx, DWORD PTR _a$[esp]
	mov	eax, DWORD PTR _n$[esp]
	add	ecx, 4
	dec	eax
	test	eax, eax
	mov	DWORD PTR _pi$[esp+4], ecx
	jle	SHORT $L1335
	push	ebx
	push	ebp
	mov	ebp, DWORD PTR _d$[esp+8]
	push	esi
	push	edi
	mov	DWORD PTR tv198[esp+16], eax
$L2008:
; Line 183
	cmp	ecx, DWORD PTR _a$[esp+16]
	jbe	SHORT $L1334
$L1336:
; Line 185
	mov	edi, DWORD PTR [ecx-4]
	mov	ebx, DWORD PTR [ecx]
	mov	al, BYTE PTR [edi+ebp]
	cmp	al, BYTE PTR [ebx+ebp]
	lea	edx, DWORD PTR [edi+ebp]
	lea	esi, DWORD PTR [ebx+ebp]
	jne	SHORT $L1341
	npad	7
$L1339:
	test	al, al
	je	SHORT $L1341
	mov	al, BYTE PTR [edx+1]
	inc	edx
	inc	esi
	cmp	al, BYTE PTR [esi]
	je	SHORT $L1339
$L1341:
; Line 187
	mov	al, BYTE PTR [edx]
	cmp	al, BYTE PTR [esi]
	jbe	SHORT $L2007
	mov	eax, DWORD PTR _a$[esp+16]
; Line 189
	mov	DWORD PTR [ecx], edi
	mov	DWORD PTR [ecx-4], ebx
	add	ecx, -4					; fffffffcH
	cmp	ecx, eax
	ja	SHORT $L1336
$L2007:
; Line 183
	mov	ecx, DWORD PTR _pi$[esp+20]
$L1334:
; Line 182
	mov	eax, DWORD PTR tv198[esp+16]
	add	ecx, 4
	dec	eax
	mov	DWORD PTR _pi$[esp+20], ecx
	mov	DWORD PTR tv198[esp+16], eax
	jne	SHORT $L2008
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
$L1335:
; Line 191
	pop	ecx
	ret	0
_inssort ENDP
_TEXT	ENDS
PUBLIC	_mkqsort
; Function compile flags: /Ogty
_TEXT	SEGMENT
_pd$ = -16						; size = 4
_pl$ = -16						; size = 4
tv329 = -12						; size = 4
tv157 = -12						; size = 4
tv71 = -12						; size = 4
_partval$ = -12						; size = 4
tv373 = -8						; size = 4
tv326 = -8						; size = 4
tv375 = -4						; size = 4
_a$ = 8							; size = 4
_n$ = 12						; size = 4
_depth$ = 16						; size = 4
_mkqsort PROC NEAR
; Line 194
	sub	esp, 16					; 00000010H
	push	ebx
	push	ebp
; Line 196
	mov	ebp, DWORD PTR _a$[esp+20]
	push	esi
	push	edi
	mov	edi, DWORD PTR _n$[esp+28]
	cmp	edi, 20					; 00000014H
	jl	$L2042
$L2032:
; Line 201
	mov	eax, edi
	cdq
	sub	eax, edx
	sar	eax, 1
; Line 202
	lea	ebx, DWORD PTR [ebp+edi*4]
	lea	esi, DWORD PTR [ebp+eax*4]
; Line 203
	mov	eax, DWORD PTR _n$[esp+28]
	add	ebx, -4					; fffffffcH
	cmp	eax, 30					; 0000001eH
	mov	ecx, ebp
	mov	DWORD PTR tv326[esp+32], ebx
	mov	edi, ebx
	jle	SHORT $L1363
; Line 204
	cdq
	and	edx, 7
	add	eax, edx
	sar	eax, 3
; Line 205
	lea	ecx, DWORD PTR [eax*8]
	lea	ebx, DWORD PTR [eax*4]
	mov	eax, DWORD PTR _depth$[esp+28]
	mov	DWORD PTR tv329[esp+32], ecx
	push	eax
	add	ecx, ebp
	push	ecx
	lea	ecx, DWORD PTR [ebx+ebp]
	push	ecx
	push	ebp
	call	_med3func
; Line 206
	mov	edx, DWORD PTR _depth$[esp+44]
	push	edx
	mov	DWORD PTR _pl$[esp+52], eax
	lea	eax, DWORD PTR [ebx+esi]
	push	eax
	push	esi
	sub	esi, ebx
	push	esi
	call	_med3func
; Line 207
	mov	ecx, DWORD PTR _depth$[esp+60]
	push	ecx
	mov	edx, edi
	sub	edx, ebx
	mov	ebx, DWORD PTR tv329[esp+68]
	push	edi
	push	edx
	sub	edi, ebx
	push	edi
	mov	esi, eax
	call	_med3func
	mov	ecx, DWORD PTR _pl$[esp+80]
	mov	ebx, DWORD PTR tv326[esp+80]
	add	esp, 48					; 00000030H
	mov	edi, eax
$L1363:
; Line 209
	mov	eax, DWORD PTR _depth$[esp+28]
	push	eax
	push	edi
	push	esi
	push	ecx
	call	_med3func
; Line 210
	mov	edx, DWORD PTR [eax]
	mov	ecx, DWORD PTR [ebp]
	mov	DWORD PTR [ebp], edx
	mov	DWORD PTR [eax], ecx
; Line 211
	mov	eax, DWORD PTR [ebp]
	mov	ecx, DWORD PTR _depth$[esp+44]
	movzx	edx, BYTE PTR [eax+ecx]
	mov	DWORD PTR _partval$[esp+48], edx
; Line 212
	lea	eax, DWORD PTR [ebp+4]
; Line 213
	mov	edx, ebx
	add	esp, 16					; 00000010H
	mov	edi, eax
	mov	DWORD PTR _pd$[esp+32], edx
$L1365:
; Line 215
	cmp	eax, edx
	ja	SHORT $L2052
	npad	4
$L1368:
	mov	esi, DWORD PTR [eax]
	mov	ecx, DWORD PTR _depth$[esp+28]
	movzx	ecx, BYTE PTR [esi+ecx]
	sub	ecx, DWORD PTR _partval$[esp+32]
	test	ecx, ecx
	jg	$L2037
; Line 216
	jne	SHORT $L2054
	mov	ecx, DWORD PTR [edi]
	mov	DWORD PTR [edi], esi
	mov	DWORD PTR [eax], ecx
	add	edi, 4
$L2054:
; Line 217
	add	eax, 4
	cmp	eax, edx
	jbe	SHORT $L1368
$L2052:
; Line 229
	mov	ebx, eax
	sub	ebx, edi
	sub	edi, ebp
	sar	ebx, 2
	sar	edi, 2
	cmp	edi, ebx
	mov	DWORD PTR tv373[esp+32], ebx
	mov	DWORD PTR tv375[esp+32], edi
	jle	SHORT $L2011
	mov	edi, ebx
$L2011:
	lea	esi, DWORD PTR [edi*4]
	mov	ecx, eax
	sub	ecx, esi
	test	edi, edi
	jle	SHORT $L2045
	mov	esi, ebp
	sub	esi, ecx
	mov	DWORD PTR tv157[esp+32], edi
	npad	7
$L2016:
	mov	edi, DWORD PTR [esi+ecx]
	mov	ebx, DWORD PTR [ecx]
	mov	DWORD PTR [esi+ecx], ebx
	mov	DWORD PTR [ecx], edi
	mov	edi, DWORD PTR tv157[esp+32]
	add	ecx, 4
	dec	edi
	mov	DWORD PTR tv157[esp+32], edi
	jne	SHORT $L2016
	mov	ebx, DWORD PTR tv373[esp+32]
$L2045:
; Line 230
	mov	ecx, DWORD PTR _n$[esp+28]
	mov	edi, DWORD PTR _pd$[esp+32]
	lea	ecx, DWORD PTR [ebp+ecx*4]
	mov	esi, ecx
	sub	esi, edi
	sar	esi, 2
	lea	edi, DWORD PTR [esi-1]
	mov	esi, DWORD PTR _pd$[esp+32]
	sub	esi, edx
	sar	esi, 2
	cmp	esi, edi
	mov	edx, esi
	jle	SHORT $L2013
	mov	edx, edi
$L2013:
	lea	edi, DWORD PTR [edx*4]
	sub	ecx, edi
	test	edx, edx
	jle	SHORT $L2047
	sub	eax, ecx
	mov	DWORD PTR tv71[esp+32], edx
$L2025:
	mov	edx, DWORD PTR [eax+ecx]
	mov	edi, DWORD PTR [ecx]
	mov	DWORD PTR [eax+ecx], edi
	mov	DWORD PTR [ecx], edx
	mov	edx, DWORD PTR tv71[esp+32]
	add	ecx, 4
	dec	edx
	mov	DWORD PTR tv71[esp+32], edx
	jne	SHORT $L2025
$L2047:
; Line 231
	cmp	ebx, 1
; Line 232
	mov	edi, DWORD PTR _depth$[esp+28]
	jle	SHORT $L1376
	push	edi
	push	ebx
	push	ebp
	call	_mkqsort
	add	esp, 12					; 0000000cH
$L1376:
; Line 233
	mov	edx, DWORD PTR [ebp+ebx*4]
	cmp	BYTE PTR [edi+edx], 0
	lea	eax, DWORD PTR [ebp+ebx*4]
	je	SHORT $L2062
; Line 234
	mov	ecx, DWORD PTR tv375[esp+32]
	mov	ebx, DWORD PTR _pd$[esp+32]
	lea	edx, DWORD PTR [ecx*4]
	mov	ecx, DWORD PTR _n$[esp+28]
	sub	edx, ebx
	lea	ecx, DWORD PTR [ebp+ecx*4]
	add	edx, ecx
	inc	edi
	sar	edx, 2
	push	edi
	dec	edx
	push	edx
	push	eax
	call	_mkqsort
	add	esp, 12					; 0000000cH
$L2062:
; Line 235
	cmp	esi, 1
	jle	SHORT $L1378
; Line 236
	mov	edx, DWORD PTR _n$[esp+28]
	sub	edx, esi
	cmp	esi, 20					; 00000014H
	lea	ebp, DWORD PTR [ebp+edx*4]
	mov	DWORD PTR _n$[esp+28], esi
	mov	edi, esi
	jge	$L2032
$L2042:
; Line 197
	mov	eax, DWORD PTR _depth$[esp+28]
	push	eax
	push	edi
	push	ebp
	call	_inssort
	add	esp, 12					; 0000000cH
$L1378:
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
; Line 237
	add	esp, 16					; 00000010H
	ret	0
$L2037:
; Line 219
	cmp	eax, edx
	ja	$L2052
	npad	8
$L1372:
	mov	esi, DWORD PTR [edx]
	mov	ecx, DWORD PTR _depth$[esp+28]
	movzx	ecx, BYTE PTR [esi+ecx]
	sub	ecx, DWORD PTR _partval$[esp+32]
	js	SHORT $L1373
; Line 220
	test	ecx, ecx
	jne	SHORT $L2055
	mov	ecx, DWORD PTR _pd$[esp+32]
	mov	ebx, DWORD PTR [ecx]
	mov	DWORD PTR [edx], ebx
	mov	DWORD PTR [ecx], esi
	sub	ecx, 4
	mov	DWORD PTR _pd$[esp+32], ecx
$L2055:
; Line 221
	sub	edx, 4
	cmp	eax, edx
	jbe	SHORT $L1372
; Line 219
	jmp	$L2052
$L1373:
; Line 223
	cmp	eax, edx
	ja	$L2052
; Line 224
	mov	esi, DWORD PTR [edx]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR [eax], esi
	mov	DWORD PTR [edx], ecx
; Line 225
	add	eax, 4
; Line 226
	sub	edx, 4
; Line 227
	jmp	$L1365
_mkqsort ENDP
_TEXT	ENDS
PUBLIC	_mkqsort_main
; Function compile flags: /Ogty
_TEXT	SEGMENT
_a$ = 8							; size = 4
_n$ = 12						; size = 4
_mkqsort_main PROC NEAR
; Line 239
	mov	eax, DWORD PTR _n$[esp-4]
	mov	ecx, DWORD PTR _a$[esp-4]
	push	0
	push	eax
	push	ecx
	call	_mkqsort
	add	esp, 12					; 0000000cH
	ret	0
_mkqsort_main ENDP
_TEXT	ENDS
EXTRN	_exit:NEAR
EXTRN	_malloc:NEAR
EXTRN	_fclose:NEAR
EXTRN	_fopen:NEAR
EXTRN	_fread:NEAR
EXTRN	_fseek:NEAR
EXTRN	_ftell:NEAR
EXTRN	_printf:NEAR
EXTRN	_puts:NEAR
; Function compile flags: /Ogty
_TEXT	SEGMENT
_nlines$ = -4						; size = 4
_file_name$ = 8						; size = 4
_lines$ = 12						; size = 4
_readlines PROC NEAR
; Line 244
	push	ecx
	push	ebx
	push	ebp
	mov	ebp, DWORD PTR _file_name$[esp+8]
	push	esi
	push	edi
; Line 251
	push	OFFSET FLAT:$SG1399
	push	ebp
	mov	DWORD PTR _nlines$[esp+28], 0
	call	_fopen
	mov	esi, eax
	add	esp, 8
	test	esi, esi
	jne	SHORT $L1398
; Line 252
	push	ebp
	push	OFFSET FLAT:$SG1400
	call	_printf
; Line 253
	push	-1
	call	_exit
	add	esp, 12					; 0000000cH
$L1398:
; Line 255
	push	2
	push	0
	push	esi
	call	_fseek
; Line 256
	push	esi
	call	_ftell
; Line 257
	push	0
	push	0
	push	esi
	mov	edi, eax
	call	_fseek
; Line 258
	push	edi
	call	_malloc
	mov	ebx, eax
	add	esp, 32					; 00000020H
	test	ebx, ebx
	jne	SHORT $L1405
	pop	edi
	pop	esi
	pop	ebp
	or	eax, -1
	pop	ebx
; Line 298
	pop	ecx
	ret	0
$L1405:
; Line 259
	mov	eax, edi
	shr	eax, 20					; 00000014H
	inc	eax
	push	eax
	push	OFFSET FLAT:$SG1407
	call	_printf
; Line 260
	push	esi
	push	edi
	push	1
	push	ebx
	call	_fread
	add	esp, 24					; 00000018H
	cmp	eax, edi
	jae	SHORT $L1408
; Line 261
	push	ebp
	push	OFFSET FLAT:$SG1409
	call	_printf
; Line 262
	push	-1
	call	_exit
	add	esp, 12					; 0000000cH
$L1408:
; Line 264
	push	esi
	call	_fclose
; Line 268
	lea	esi, DWORD PTR [ebx+edi]
	add	esp, 4
	cmp	ebx, esi
	mov	eax, ebx
	jae	SHORT $L1412
; Line 270
	cmp	eax, esi
	jae	SHORT $L1415
	npad	5
$L1414:
	cmp	BYTE PTR [eax], 10			; 0000000aH
	je	SHORT $L1415
	inc	eax
	cmp	eax, esi
	jb	SHORT $L1414
$L1415:
; Line 274
	mov	edx, DWORD PTR _nlines$[esp+20]
	dec	eax
	mov	BYTE PTR [eax], 0
	add	eax, 2
	inc	edx
	cmp	eax, esi
	mov	DWORD PTR _nlines$[esp+20], edx
	jb	SHORT $L1414
$L1412:
; Line 278
	mov	edi, DWORD PTR _nlines$[esp+20]
	shl	edi, 2
	push	edi
	call	_malloc
	mov	ebp, eax
	add	esp, 4
; Line 279
	test	ebp, ebp
	jne	SHORT $L1419
; Line 280
	push	OFFSET FLAT:$SG1420
	call	_puts
	add	esp, 4
	pop	edi
	pop	esi
	pop	ebp
	mov	eax, 1
	pop	ebx
; Line 298
	pop	ecx
	ret	0
$L1419:
; Line 281
	shr	edi, 20					; 00000014H
	inc	edi
	push	edi
	push	OFFSET FLAT:$SG1422
	call	_printf
; Line 282
	mov	ecx, DWORD PTR _lines$[esp+24]
	add	esp, 8
; Line 286
	xor	eax, eax
; Line 288
	cmp	ebx, esi
	mov	DWORD PTR [ecx], ebp
	mov	edx, ebx
	jae	SHORT $L1390
	npad	4
$L1424:
; Line 290
	cmp	edx, esi
	mov	ecx, edx
	jae	SHORT $L1428
$L1427:
	cmp	BYTE PTR [ecx], 10			; 0000000aH
	je	SHORT $L1428
	inc	ecx
	cmp	ecx, esi
	jb	SHORT $L1427
$L1428:
; Line 291
	dec	ecx
	mov	BYTE PTR [ecx], 0
; Line 293
	mov	DWORD PTR [ebp+eax*4], edx
; Line 294
	lea	edx, DWORD PTR [ecx+2]
; Line 295
	inc	eax
	cmp	edx, esi
	jb	SHORT $L1424
$L1390:
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
; Line 298
	pop	ecx
	ret	0
_readlines ENDP
_TEXT	ENDS
PUBLIC	_x64toaKAZE
EXTRN	__aulldvrm:NEAR
; Function compile flags: /Ogty
_TEXT	SEGMENT
tv65 = -8						; size = 8
tv164 = 8						; size = 8
_val$ = 8						; size = 8
_firstdig$ = 16						; size = 4
_buf$ = 16						; size = 4
_radix$ = 20						; size = 4
_is_neg$ = 24						; size = 4
_x64toaKAZE PROC NEAR
; Line 314
	mov	eax, DWORD PTR _is_neg$[esp-4]
	sub	esp, 8
	push	esi
	mov	esi, DWORD PTR _buf$[esp+8]
	push	edi
; Line 317
	mov	edi, DWORD PTR _val$[esp+12]
	test	eax, eax
	mov	eax, DWORD PTR _val$[esp+16]
	je	SHORT $L1443
	mov	BYTE PTR [esi], 45			; 0000002dH
	inc	esi
	neg	edi
	adc	eax, 0
	neg	eax
$L1443:
	push	ebx
	push	ebp
; Line 331
	mov	ebp, DWORD PTR _radix$[esp+20]
	mov	DWORD PTR _firstdig$[esp+20], esi
	mov	DWORD PTR tv164[esp+24], 0
$L1446:
	mov	ecx, DWORD PTR tv164[esp+24]
	push	ecx
	push	ebp
	push	eax
	push	edi
	call	__aulldvrm
	cmp	ecx, 9
	mov	edi, eax
	mov	DWORD PTR tv65[esp+28], ebx
	mov	eax, edx
	jbe	SHORT $L1450
; Line 328
	add	cl, 87					; 00000057H
; Line 329
	jmp	SHORT $L2085
$L1450:
; Line 330
	add	cl, 48					; 00000030H
$L2085:
	mov	BYTE PTR [esi], cl
	inc	esi
; Line 331
	test	eax, eax
	ja	SHORT $L1446
	jb	SHORT $L2082
	test	edi, edi
	ja	SHORT $L1446
$L2082:
	pop	ebp
; Line 336
	mov	BYTE PTR [esi], 0
	dec	esi
	pop	ebx
	npad	5
$L1454:
; Line 340
	mov	ecx, DWORD PTR _firstdig$[esp+12]
	mov	dl, BYTE PTR [ecx]
	mov	al, BYTE PTR [esi]
	mov	BYTE PTR [esi], dl
; Line 342
	dec	esi
	mov	BYTE PTR [ecx], al
; Line 343
	inc	ecx
; Line 344
	cmp	ecx, esi
	mov	DWORD PTR _firstdig$[esp+12], ecx
	jb	SHORT $L1454
	pop	edi
	pop	esi
; Line 345
	add	esp, 8
	ret	0
_x64toaKAZE ENDP
_TEXT	ENDS
PUBLIC	__i64toaKAZE
; Function compile flags: /Ogty
_TEXT	SEGMENT
_val$ = 8						; size = 8
_buf$ = 16						; size = 4
_radix$ = 20						; size = 4
__i64toaKAZE PROC NEAR
; Line 356
	mov	ecx, DWORD PTR _radix$[esp-4]
	cmp	ecx, 10					; 0000000aH
	mov	edx, DWORD PTR _val$[esp]
	push	esi
	push	edi
	mov	edi, DWORD PTR _val$[esp+4]
	jne	SHORT $L2087
	test	edx, edx
	jg	SHORT $L2087
	jl	SHORT $L2089
	test	edi, edi
	jae	SHORT $L2087
$L2089:
	mov	eax, 1
	jmp	SHORT $L2088
$L2087:
	xor	eax, eax
$L2088:
	mov	esi, DWORD PTR _buf$[esp+4]
	push	eax
	push	ecx
	push	esi
	push	edx
	push	edi
	call	_x64toaKAZE
	add	esp, 20					; 00000014H
	pop	edi
; Line 357
	mov	eax, esi
	pop	esi
; Line 358
	ret	0
__i64toaKAZE ENDP
_TEXT	ENDS
PUBLIC	__ui64toaKAZE
; Function compile flags: /Ogty
_TEXT	SEGMENT
_val$ = 8						; size = 8
_buf$ = 16						; size = 4
_radix$ = 20						; size = 4
__ui64toaKAZE PROC NEAR
; Line 366
	mov	eax, DWORD PTR _radix$[esp-4]
	mov	ecx, DWORD PTR _val$[esp]
	mov	edx, DWORD PTR _val$[esp-4]
	push	esi
	mov	esi, DWORD PTR _buf$[esp]
	push	0
	push	eax
	push	esi
	push	ecx
	push	edx
	call	_x64toaKAZE
	add	esp, 20					; 00000014H
; Line 367
	mov	eax, esi
	pop	esi
; Line 368
	ret	0
__ui64toaKAZE ENDP
_TEXT	ENDS
PUBLIC	__ui64toaKAZEzerocomma
; Function compile flags: /Ogty
_TEXT	SEGMENT
_val$ = 8						; size = 8
_buf$ = 16						; size = 4
_radix$ = 20						; size = 4
__ui64toaKAZEzerocomma PROC NEAR
; Line 380
	mov	eax, DWORD PTR _radix$[esp-4]
	mov	ecx, DWORD PTR _val$[esp]
	mov	edx, DWORD PTR _val$[esp-4]
	push	ebx
	push	ebp
	mov	ebp, DWORD PTR _buf$[esp+4]
	push	esi
	push	edi
	push	0
	push	eax
	push	ebp
	push	ecx
	push	edx
	call	_x64toaKAZE
	add	esp, 20					; 00000014H
; Line 381
	mov	edi, ebp
$L1486:
; Line 383
	mov	al, BYTE PTR [edi+1]
	inc	edi
	test	al, al
	jne	SHORT $L1486
; Line 384
	dec	edi
; Line 386
	mov	BYTE PTR [ebp+26], 0
; Line 387
	mov	ebx, 1
; Line 388
	xor	esi, esi
	lea	ecx, DWORD PTR [ebp+25]
	jmp	SHORT $L1489
$L2094:
; Line 384
	mov	ebp, DWORD PTR _buf$[esp+12]
$L1489:
; Line 392
	inc	esi
	cmp	ebp, edi
; Line 394
	mov	ebp, 3
	ja	SHORT $L1492
	mov	al, BYTE PTR [edi]
	mov	BYTE PTR [ecx], al
	dec	edi
; Line 399
	jmp	SHORT $L2096
$L1492:
; Line 400
	mov	BYTE PTR [ecx], 48			; 00000030H
$L2096:
; Line 401
	mov	eax, esi
	cdq
	idiv	ebp
	test	edx, edx
	jne	SHORT $L1497
; Line 402
	inc	ebx
	dec	ecx
; Line 403
	mov	BYTE PTR [ecx], 44			; 0000002cH
$L1497:
; Line 406
	inc	ebx
	dec	ecx
; Line 407
	cmp	ebx, 26					; 0000001aH
	jle	SHORT $L2094
; Line 408
	mov	eax, DWORD PTR _buf$[esp+12]
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx
; Line 409
	ret	0
__ui64toaKAZEzerocomma ENDP
_TEXT	ENDS
PUBLIC	__ui64toaKAZEcomma
; Function compile flags: /Ogty
_TEXT	SEGMENT
_val$ = 8						; size = 8
_pxnman$ = 16						; size = 4
_buf$ = 16						; size = 4
_radix$ = 20						; size = 4
__ui64toaKAZEcomma PROC NEAR
; Line 421
	mov	eax, DWORD PTR _radix$[esp-4]
	mov	ecx, DWORD PTR _val$[esp]
	mov	edx, DWORD PTR _val$[esp-4]
	push	ebx
	push	ebp
	push	edi
	mov	edi, DWORD PTR _buf$[esp+8]
	push	0
	push	eax
	push	edi
	push	ecx
	push	edx
	call	_x64toaKAZE
	add	esp, 20					; 00000014H
; Line 422
	mov	ecx, edi
$L1511:
; Line 424
	mov	al, BYTE PTR [ecx+1]
	inc	ecx
	test	al, al
	jne	SHORT $L1511
; Line 425
	dec	ecx
; Line 429
	xor	ebp, ebp
; Line 430
	cmp	edi, ecx
	mov	BYTE PTR [edi+26], 0
	mov	ebx, 1
	ja	SHORT $L1516
	push	esi
	lea	esi, DWORD PTR [edi+25]
	jmp	SHORT $L1515
$L2101:
; Line 425
	mov	ebp, DWORD PTR _pxnman$[esp+12]
$L1515:
; Line 432
	mov	al, BYTE PTR [ecx]
	inc	ebp
	mov	BYTE PTR [esi], al
; Line 434
	mov	eax, ebp
	mov	DWORD PTR _pxnman$[esp+12], ebp
	cdq
	mov	ebp, 3
	idiv	ebp
	dec	ecx
	test	edx, edx
	jne	SHORT $L1517
	cmp	edi, ecx
	ja	SHORT $L1517
; Line 435
	inc	ebx
	dec	esi
; Line 436
	mov	BYTE PTR [esi], 44			; 0000002cH
$L1517:
; Line 438
	inc	ebx
	dec	esi
	cmp	ecx, edi
	jae	SHORT $L2101
	pop	esi
$L1516:
; Line 440
	mov	eax, edi
	pop	edi
	sub	eax, ebx
	pop	ebp
	add	eax, 27					; 0000001bH
	pop	ebx
; Line 441
	ret	0
__ui64toaKAZEcomma ENDP
_TEXT	ENDS
PUBLIC	_KuxHash
; Function compile flags: /Ogty
_TEXT	SEGMENT
_str$ = 8						; size = 4
_KuxHash PROC NEAR
; Line 447
	mov	edx, DWORD PTR _str$[esp-4]
	mov	cl, BYTE PTR [edx]
	xor	al, al
	test	cl, cl
	je	SHORT $L1527
	npad	4
$L1526:
; Line 448
	xor	al, cl
	mov	cl, BYTE PTR [edx+1]
	inc	edx
	test	cl, cl
	jne	SHORT $L1526
$L1527:
; Line 452
	ret	0
_KuxHash ENDP
_TEXT	ENDS
PUBLIC	_KuxHash2
; Function compile flags: /Ogty
_TEXT	SEGMENT
_str$ = 8						; size = 4
_KuxHash2 PROC NEAR
; Line 455
	push	esi
; Line 458
	mov	esi, DWORD PTR _str$[esp]
	mov	cl, BYTE PTR [esi]
	push	edi
	xor	edi, edi
	xor	eax, eax
	xor	edx, edx
	test	cl, cl
	je	SHORT $L1537
$L1536:
; Line 459
	movsx	ecx, BYTE PTR [edx+esi]
	xor	edi, ecx
; Line 461
	imul	ecx, edx
	add	eax, ecx
	mov	cl, BYTE PTR [edx+esi+1]
	inc	edx
	test	cl, cl
	jne	SHORT $L1536
$L1537:
; Line 465
	xor	edx, edx
	mov	ecx, 15					; 0000000fH
	div	ecx
	shl	edi, 4
	mov	eax, edx
	or	eax, edi
	pop	edi
	pop	esi
; Line 467
	ret	0
_KuxHash2 ENDP
_TEXT	ENDS
PUBLIC	_KuxHash3
; Function compile flags: /Ogty
_TEXT	SEGMENT
_str$ = 8						; size = 4
_KuxHash3 PROC NEAR
; Line 473
	mov	ecx, DWORD PTR _str$[esp-4]
	mov	dl, BYTE PTR [ecx]
	push	esi
	xor	esi, esi
	xor	eax, eax
	test	dl, dl
	je	SHORT $L1547
	push	ebx
	push	edi
	mov	edi, 1
	sub	edi, ecx
	npad	8
$L1546:
; Line 474
	movsx	edx, BYTE PTR [ecx]
; Line 476
	lea	ebx, DWORD PTR [edi+ecx]
	imul	ebx, edx
	xor	esi, edx
	mov	dl, BYTE PTR [ecx+1]
	add	eax, ebx
	inc	ecx
	test	dl, dl
	jne	SHORT $L1546
	pop	edi
	pop	ebx
$L1547:
; Line 486
	xor	edx, edx
	mov	ecx, 63					; 0000003fH
	div	ecx
	shl	esi, 6
	mov	eax, edx
	or	eax, esi
	pop	esi
; Line 489
	ret	0
_KuxHash3 ENDP
_TEXT	ENDS
PUBLIC	_main
EXTRN	__aulldiv:NEAR
EXTRN	__lseeki64:NEAR
EXTRN	__telli64:NEAR
EXTRN	__chkstk:NEAR
EXTRN	_fprintf:NEAR
EXTRN	_fwrite:NEAR
EXTRN	_atoi:NEAR
EXTRN	_fileno:NEAR
EXTRN	__pctype:DWORD
EXTRN	__isctype:NEAR
EXTRN	_free:NEAR
EXTRN	_tolower:NEAR
EXTRN	___mb_cur_max:DWORD
EXTRN	_time:NEAR
; Function compile flags: /Ogty
_TEXT	SEGMENT
_workbyte$ = -4285					; size = 1
_WORDcountDistinct$ = -4284				; size = 4
_i$ = -4280						; size = 8
tv1965 = -4272						; size = 4
_WHOLEletter_BufferSize$ = -4272			; size = 4
_ZEROS$ = -4268						; size = 4
_Melnitchka$ = -4268					; size = 4
tv1317 = -4264						; size = 4
tv868 = -4264						; size = 4
_NumberOfFiles$ = -4264					; size = 4
_wrdlen$ = -4260					; size = 4
_CRdLFa$ = -4256					; size = 2
_pointerflush$ = -4252					; size = 4
_j$ = -4252						; size = 4
_WORDcount$ = -4248					; size = 8
_t2$ = -4240						; size = 4
_fp_out$ = -4236					; size = 4
_size_in$ = -4236					; size = 4
tv1580 = -4232						; size = 8
tv1579 = -4232						; size = 8
_size_inLINESIXFOUR$ = -4232				; size = 8
_FilesLEN$ = -4224					; size = 8
tv1940 = -4216						; size = 4
_k$ = -4216						; size = 4
tv2043 = -4212						; size = 4
_FoundInLinkedList$ = -4212				; size = 4
_NumberOfLines$ = -4208					; size = 8
_t1$ = -4200						; size = 4
_Utiliza2$ = -4196					; size = 4
_Thunderwith$ = -4192					; size = 4
_t3$ = -4188						; size = 4
_TAILOffetFromStartBUKVA$ = -4184			; size = 4
_backup$ = -4180					; size = 4
_MAXusedBufferABS$ = -4176				; size = 4
_fp_outLOG$ = -4172					; size = 4
_TotalWLchars$ = -4168					; size = 4
_Utiliza1$ = -4164					; size = 4
tv1934 = -4160						; size = 4
_llTOaDigits$ = -4156					; size = 27
_LetterBuffer$ = -4128					; size = 4
_fp_in$ = -4124						; size = 4
_fp_inLINE$ = -4120					; size = 4
_PseudoLinkedPointerNEW$ = -4116			; size = 4
_memory_size$ = -4112					; size = 4
_llTOaDigits2$ = -4108					; size = 27
_GRMBLhill$ = -4080					; size = 128
_wrd$ = -3952						; size = 32
_llTOaDigits3$ = -3920					; size = 27
_llTOaDigits4$ = -3892					; size = 27
_OffsetsInBuffer$ = -3864				; size = 124
_MAXusedBuffer$ = -3740					; size = 128
_LINE10$ = -3612					; size = 257
_GRMBLFoolAgain$ = -3352				; size = 128
_bufend$ = -3224					; size = 3224
_argc$ = 8						; size = 4
_argv$ = 12						; size = 4
_main	PROC NEAR
; Line 493
	mov	eax, 4288				; 000010c0H
	call	__chkstk
	push	ebp
	push	esi
; Line 495
	xor	esi, esi
; Line 562
	push	OFFSET FLAT:$SG1609
	mov	DWORD PTR _backup$[esp+4300], esi
	mov	DWORD PTR _MAXusedBufferABS$[esp+4300], esi
	mov	DWORD PTR _Utiliza1$[esp+4300], esi
	mov	DWORD PTR _Utiliza2$[esp+4300], esi
	mov	DWORD PTR _TotalWLchars$[esp+4300], esi
	mov	DWORD PTR _TAILOffetFromStartBUKVA$[esp+4300], esi
	call	_puts
; Line 563
	push	OFFSET FLAT:$SG1610
	call	_puts
; Line 566
	mov	eax, DWORD PTR _argc$[esp+4300]
	mov	ebp, 3
	add	esp, 8
	cmp	eax, ebp
	je	$L1611
	cmp	eax, 4
	je	$L1611
	cmp	eax, 5
	je	$L1611
; Line 568
	push	OFFSET FLAT:$SG1612
	call	_puts
; Line 569
	push	OFFSET FLAT:$SG1613
	call	_puts
; Line 570
	push	OFFSET FLAT:$SG1614
	call	_puts
; Line 571
	push	OFFSET FLAT:$SG1615
	call	_puts
; Line 572
	push	OFFSET FLAT:$SG1616
	call	_puts
; Line 573
	push	OFFSET FLAT:$SG1617
	call	_puts
; Line 574
	push	OFFSET FLAT:$SG1618
	call	_puts
; Line 575
	push	OFFSET FLAT:$SG1619
	call	_puts
; Line 576
	push	OFFSET FLAT:$SG1620
	call	_puts
; Line 577
	push	OFFSET FLAT:$SG1621
	call	_puts
; Line 578
	push	OFFSET FLAT:$SG1622
	call	_puts
; Line 579
	push	OFFSET FLAT:$SG1623
	call	_puts
; Line 580
	push	OFFSET FLAT:$SG1624
	call	_puts
; Line 581
	push	OFFSET FLAT:$SG1625
	call	_puts
; Line 582
	push	OFFSET FLAT:$SG1626
	call	_puts
; Line 583
	push	OFFSET FLAT:$SG1627
	call	_puts
	add	esp, 64					; 00000040H
; Line 584
	push	OFFSET FLAT:$SG1628
	call	_puts
; Line 585
	push	OFFSET FLAT:$SG1629
	call	_puts
; Line 586
	push	OFFSET FLAT:$SG1630
	call	_puts
; Line 587
	push	OFFSET FLAT:$SG1631
	call	_puts
; Line 588
	push	OFFSET FLAT:$SG1632
	call	_puts
; Line 589
	push	OFFSET FLAT:$SG1633
	call	_puts
; Line 590
	push	OFFSET FLAT:$SG1634
	call	_puts
; Line 591
	push	OFFSET FLAT:$SG1635
	call	_puts
; Line 592
	push	OFFSET FLAT:$SG1636
	call	_puts
; Line 593
	push	OFFSET FLAT:$SG1637
	call	_puts
; Line 594
	push	OFFSET FLAT:$SG1638
	call	_puts
; Line 595
	push	OFFSET FLAT:$SG1639
	call	_puts
; Line 596
	push	OFFSET FLAT:$SG1640
	call	_puts
; Line 597
	push	OFFSET FLAT:$SG1641
	call	_puts
; Line 598
	push	OFFSET FLAT:$SG1642
	call	_puts
; Line 599
	push	OFFSET FLAT:$SG1643
	call	_puts
	add	esp, 64					; 00000040H
; Line 600
	push	OFFSET FLAT:$SG1644
	call	_puts
; Line 601
	push	OFFSET FLAT:$SG1645
	call	_puts
; Line 602
	push	OFFSET FLAT:$SG1646
	call	_puts
; Line 603
	push	OFFSET FLAT:$SG1647
	call	_puts
; Line 604
	push	OFFSET FLAT:$SG1648
	call	_puts
; Line 606
	push	OFFSET FLAT:$SG1649
	call	_puts
; Line 607
	push	OFFSET FLAT:$SG1650
	call	_puts
; Line 608
	push	OFFSET FLAT:$SG1651
	call	_puts
; Line 609
	push	OFFSET FLAT:$SG1652
	call	_puts
; Line 610
	push	OFFSET FLAT:$SG1653
	call	_puts
; Line 611
	push	OFFSET FLAT:$SG1654
	call	_puts
; Line 612
	push	OFFSET FLAT:$SG1655
	call	_puts
; Line 613
	push	OFFSET FLAT:$SG1656
	call	_puts
; Line 614
	push	OFFSET FLAT:$SG1657
	call	_puts
; Line 615
	push	OFFSET FLAT:$SG1658
	call	_puts
; Line 616
	push	OFFSET FLAT:$SG1659
	call	_puts
	add	esp, 64					; 00000040H
; Line 617
	push	OFFSET FLAT:$SG1660
	call	_puts
; Line 618
	push	OFFSET FLAT:$SG1661
	call	_puts
; Line 619
	push	OFFSET FLAT:$SG1662
	call	_puts
; Line 620
	push	OFFSET FLAT:$SG1663
	call	_puts
; Line 621
	push	OFFSET FLAT:$SG1664
	call	_puts
; Line 622
	push	OFFSET FLAT:$SG1665
	call	_puts
; Line 623
	push	OFFSET FLAT:$SG1666
	call	_puts
; Line 624
	push	OFFSET FLAT:$SG1667
	call	_puts
; Line 625
	push	OFFSET FLAT:$SG1668
	call	_puts
; Line 626
	push	OFFSET FLAT:$SG1669
	call	_puts
; Line 627
	push	OFFSET FLAT:$SG1670
	call	_puts
; Line 628
	push	OFFSET FLAT:$SG1671
	call	_puts
; Line 629
	push	OFFSET FLAT:$SG1672
	call	_puts
; Line 630
	push	OFFSET FLAT:$SG1673
	call	_puts
; Line 631
	push	OFFSET FLAT:$SG1674
	call	_puts
; Line 632
	push	OFFSET FLAT:$SG1675
	call	_puts
	add	esp, 64					; 00000040H
; Line 633
	push	OFFSET FLAT:$SG1676
	call	_puts
; Line 634
	push	OFFSET FLAT:$SG1677
	call	_puts
; Line 635
	push	OFFSET FLAT:$SG1678
	call	_puts
; Line 636
	push	OFFSET FLAT:$SG1679
	call	_puts
; Line 637
	push	OFFSET FLAT:$SG1680
	call	_puts
; Line 638
	push	OFFSET FLAT:$SG1681
	call	_puts
; Line 639
	push	OFFSET FLAT:$SG1682
	call	_puts
; Line 640
	push	OFFSET FLAT:$SG1683
	call	_puts
; Line 641
	push	OFFSET FLAT:$SG1684
	call	_puts
; Line 642
	push	OFFSET FLAT:$SG1685
	call	_puts
; Line 643
	push	OFFSET FLAT:$SG1686
	call	_puts
; Line 644
	push	OFFSET FLAT:$SG1687
	call	_puts
; Line 645
	push	OFFSET FLAT:$SG1688
	call	_puts
; Line 646
	push	OFFSET FLAT:$SG1689
	call	_puts
; Line 647
	push	OFFSET FLAT:$SG1690
	call	_puts
; Line 648
	push	OFFSET FLAT:$SG1691
	call	_puts
	add	esp, 64					; 00000040H
; Line 649
	push	OFFSET FLAT:$SG1692
	call	_puts
; Line 650
	push	OFFSET FLAT:$SG1693
	call	_puts
; Line 651
	push	OFFSET FLAT:$SG1694
	call	_puts
; Line 653
	push	OFFSET FLAT:$SG1695
	call	_puts
; Line 654
	push	OFFSET FLAT:$SG1696
	call	_puts
; Line 655
	push	OFFSET FLAT:$SG1697
	call	_puts
; Line 656
	push	OFFSET FLAT:$SG1698
	call	_puts
; Line 657
	push	OFFSET FLAT:$SG1699
	call	_puts
; Line 658
	push	OFFSET FLAT:$SG1700
	call	_puts
; Line 659
	push	OFFSET FLAT:$SG1701
	call	_puts
; Line 660
	push	OFFSET FLAT:$SG1702
	call	_puts
; Line 661
	push	OFFSET FLAT:$SG1703
	call	_puts
; Line 662
	push	OFFSET FLAT:$SG1704
	call	_puts
; Line 663
	push	OFFSET FLAT:$SG1705
	call	_puts
; Line 664
	push	OFFSET FLAT:$SG1706
	call	_puts
; Line 665
	push	OFFSET FLAT:$SG1707
	call	_puts
	add	esp, 64					; 00000040H
; Line 666
	push	OFFSET FLAT:$SG1708
	call	_puts
; Line 667
	push	OFFSET FLAT:$SG1709
	call	_puts
; Line 668
	push	OFFSET FLAT:$SG1710
	call	_puts
	add	esp, 12					; 0000000cH
	pop	esi
; Line 669
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1611:
; Line 680
	mov	eax, 40					; 00000028H
	mov	DWORD PTR _GRMBLhill$[esp+4328], eax
; Line 681
	mov	DWORD PTR _GRMBLhill$[esp+4332], eax
; Line 682
	mov	DWORD PTR _GRMBLhill$[esp+4336], eax
; Line 685
	mov	eax, 20					; 00000014H
	mov	DWORD PTR _GRMBLhill$[esp+4348], eax
; Line 686
	mov	DWORD PTR _GRMBLhill$[esp+4352], eax
; Line 687
	mov	eax, 15					; 0000000fH
	mov	DWORD PTR _GRMBLhill$[esp+4356], eax
; Line 688
	mov	DWORD PTR _GRMBLhill$[esp+4360], eax
; Line 689
	mov	eax, 10					; 0000000aH
	push	ebx
	mov	DWORD PTR _GRMBLhill$[esp+4368], eax
; Line 690
	mov	DWORD PTR _GRMBLhill$[esp+4372], eax
; Line 691
	mov	DWORD PTR _GRMBLhill$[esp+4376], eax
; Line 692
	mov	DWORD PTR _GRMBLhill$[esp+4380], eax
; Line 693
	mov	DWORD PTR _GRMBLhill$[esp+4384], eax
; Line 694
	mov	DWORD PTR _GRMBLhill$[esp+4388], eax
; Line 695
	mov	eax, 8
	push	edi
; Line 702
	mov	DWORD PTR _GRMBLhill$[esp+4424], ebp
; Line 703
	mov	DWORD PTR _GRMBLhill$[esp+4428], ebp
; Line 705
	mov	ebp, DWORD PTR _argv$[esp+4300]
	mov	DWORD PTR _GRMBLhill$[esp+4396], eax
	mov	DWORD PTR _GRMBLhill$[esp+4400], eax
	mov	DWORD PTR _GRMBLhill$[esp+4404], eax
	mov	eax, DWORD PTR [ebp+4]
	mov	edx, 5
	mov	ecx, 34					; 00000022H
	mov	ebx, 2
	mov	edi, 4
	push	OFFSET FLAT:$SG1713
	push	eax
	mov	DWORD PTR _GRMBLhill$[esp+4312], esi
	mov	DWORD PTR _GRMBLhill$[esp+4316], ebx
	mov	DWORD PTR _GRMBLhill$[esp+4320], ebx
	mov	DWORD PTR _GRMBLhill$[esp+4324], edi
	mov	DWORD PTR _GRMBLhill$[esp+4328], edx
	mov	DWORD PTR _GRMBLhill$[esp+4332], 9
	mov	DWORD PTR _GRMBLhill$[esp+4336], 18	; 00000012H
	mov	DWORD PTR _GRMBLhill$[esp+4340], ecx
	mov	DWORD PTR _GRMBLhill$[esp+4356], ecx
	mov	DWORD PTR _GRMBLhill$[esp+4360], 24	; 00000018H
	mov	DWORD PTR _GRMBLhill$[esp+4416], 7
	mov	DWORD PTR _GRMBLhill$[esp+4420], 6
	mov	DWORD PTR _GRMBLhill$[esp+4424], edx
	mov	DWORD PTR _GRMBLhill$[esp+4428], edi
	call	_fopen
	mov	edi, eax
	add	esp, 8
	cmp	edi, esi
	mov	DWORD PTR _fp_in$[esp+4304], edi
	jne	SHORT $L1712
; Line 706
	mov	ecx, DWORD PTR [ebp+4]
	push	ecx
	push	OFFSET FLAT:$SG1714
	call	_printf
	add	esp, 8
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1712:
; Line 708
	push	ebx
	push	esi
	push	edi
	call	_fseek
; Line 709
	push	edi
	call	_ftell
; Line 710
	push	esi
	mov	ebx, eax
	push	esi
	push	edi
	mov	DWORD PTR _size_in$[esp+4332], ebx
	call	_fseek
; Line 711
	push	ebx
	push	OFFSET FLAT:$SG1715
	call	_printf
; Line 713
	push	OFFSET FLAT:$SG1718
	push	OFFSET FLAT:$SG1719
	call	_fopen
	add	esp, 44					; 0000002cH
	cmp	eax, esi
	mov	DWORD PTR _fp_outLOG$[esp+4304], eax
	jne	SHORT $L1717
; Line 714
	push	OFFSET FLAT:$SG1720
	jmp	$L2241
$L1717:
; Line 716
	mov	eax, DWORD PTR _argc$[esp+4300]
	cmp	eax, 4
	je	SHORT $L1722
	cmp	eax, 5
; Line 717
	jne	SHORT $L2180
$L1722:
; Line 716
	mov	edx, DWORD PTR [ebp+12]
	push	edx
	call	_atoi
	add	esp, 4
; Line 719
	cmp	eax, 1023				; 000003ffH
	mov	DWORD PTR _Thunderwith$[esp+4304], eax
	jge	SHORT $L1725
$L2180:
	mov	eax, 1023				; 000003ffH
	mov	DWORD PTR _Thunderwith$[esp+4304], eax
$L1725:
; Line 720
	mov	ebp, eax
	shl	ebp, 10					; 0000000aH
	mov	DWORD PTR _LetterBuffer$[esp+4304], ebp
; Line 721
	mov	DWORD PTR _WHOLEletter_BufferSize$[esp+4304], esi
; Line 722
	mov	ebx, 1
	xor	edi, edi
	npad	7
$L2215:
; Line 724
	cmp	edi, esi
	mov	DWORD PTR _OffsetsInBuffer$[esp+ebx*4+4300], esi
	mov	DWORD PTR _j$[esp+4304], 1
	jb	SHORT $L1731
	ja	SHORT $L2181
	cmp	ebx, 1
	jb	SHORT $L1731
$L2181:
	mov	eax, DWORD PTR _OffsetsInBuffer$[esp+ebx*4+4300]
	mov	DWORD PTR tv1317[esp+4304], eax
	lea	esi, DWORD PTR _GRMBLhill$[esp+4304]
	npad	4
$L1729:
; Line 725
	mov	ecx, DWORD PTR [esi]
	imul	ecx, ebp
	mov	eax, 138547333				; 08421085H
	mul	ecx
	mov	eax, DWORD PTR _j$[esp+4304]
	sub	ecx, edx
	shr	ecx, 1
	add	ecx, edx
	mov	edx, DWORD PTR tv1317[esp+4304]
	shr	ecx, 4
	add	edx, ecx
	inc	eax
	mov	DWORD PTR _j$[esp+4304], eax
	xor	eax, eax
	add	esi, 4
	cmp	eax, edi
	mov	DWORD PTR tv1317[esp+4304], edx
	jb	SHORT $L1729
; Line 724
	ja	SHORT $L2182
	cmp	DWORD PTR _j$[esp+4304], ebx
	jbe	SHORT $L1729
$L2182:
	mov	ecx, DWORD PTR tv1317[esp+4304]
	mov	DWORD PTR _OffsetsInBuffer$[esp+ebx*4+4300], ecx
	xor	esi, esi
$L1731:
; Line 727
	mov	ecx, DWORD PTR _GRMBLhill$[esp+ebx*4+4304]
	imul	ecx, ebp
	mov	eax, 138547333				; 08421085H
	mul	ecx
	sub	ecx, edx
	shr	ecx, 1
	add	ecx, edx
	mov	edx, DWORD PTR _WHOLEletter_BufferSize$[esp+4304]
	shr	ecx, 4
	add	edx, ecx
; Line 728
	mov	DWORD PTR _GRMBLFoolAgain$[esp+ebx*4+4304], ecx
	add	ebx, 1
	adc	edi, esi
	mov	DWORD PTR _WHOLEletter_BufferSize$[esp+4304], edx
	jne	SHORT $L2183
; Line 722
	cmp	ebx, 31					; 0000001fH
	jbe	$L2215
$L2183:
; Line 730
	mov	edi, DWORD PTR _WHOLEletter_BufferSize$[esp+4304]
	imul	edi, 26					; 0000001aH
	inc	edi
; Line 731
	push	edi
	mov	DWORD PTR _memory_size$[esp+4308], edi
	call	_malloc
	add	esp, 4
; Line 732
	cmp	eax, esi
	mov	DWORD PTR _pointerflush$[esp+4304], eax
	jne	SHORT $L1738
; Line 733
	push	OFFSET FLAT:$SG1739
	call	_puts
; Line 1047
	add	esp, 4
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1738:
; Line 735
	shr	edi, 20					; 00000014H
	lea	eax, DWORD PTR [edi+1]
	push	eax
	push	OFFSET FLAT:$SG1740
	mov	DWORD PTR tv1934[esp+4312], eax
	call	_printf
	add	esp, 8
; Line 737
	xor	esi, esi
	mov	DWORD PTR _i$[esp+4308], esi
	npad	1
$L1741:
	mov	eax, esi
	imul	eax, DWORD PTR _WHOLEletter_BufferSize$[esp+4304]
; Line 738
	mov	edx, esi
	imul	edx, 124				; 0000007cH
	mov	DWORD PTR tv1940[esp+4304], eax
	lea	edx, DWORD PTR _bufend$[esp+edx+4304]
	xor	ebx, ebx
	mov	DWORD PTR tv868[esp+4304], 31		; 0000001fH
$L1744:
; Line 739
	mov	eax, DWORD PTR _OffsetsInBuffer$[esp+ebx+4304]
	mov	edi, DWORD PTR tv1940[esp+4304]
	mov	ecx, DWORD PTR _pointerflush$[esp+4304]
	add	eax, edi
	add	eax, ecx
; Line 740
	cmp	esi, 25					; 00000019H
	mov	DWORD PTR [edx], eax
	jne	SHORT $L1747
	mov	ecx, DWORD PTR _i$[esp+4308]
	test	ecx, ecx
	jne	SHORT $L1747
	mov	DWORD PTR _MAXusedBuffer$[esp+ebx+4308], eax
$L1747:
; Line 741
	mov	ebp, DWORD PTR [edx]
; Line 742
	mov	edi, ebp
	xor	eax, eax
	add	ebp, 32772				; 00008004H
; Line 745
	cmp	esi, 25					; 00000019H
	mov	ecx, 8193				; 00002001H
	rep stosd
	mov	DWORD PTR [edx], ebp
	jne	SHORT $L1745
	mov	eax, DWORD PTR _i$[esp+4308]
	test	eax, eax
	jne	SHORT $L1745
	mov	ecx, DWORD PTR _MAXusedBuffer$[esp+ebx+4308]
	mov	eax, DWORD PTR _bufend$[esp+ebx+7404]
	sub	eax, ecx
	mov	DWORD PTR _MAXusedBuffer$[esp+ebx+4308], eax
$L1745:
	mov	eax, DWORD PTR tv868[esp+4304]
	add	edx, 4
	add	ebx, 4
	dec	eax
	mov	DWORD PTR tv868[esp+4304], eax
	jne	SHORT $L1744
	mov	eax, DWORD PTR _i$[esp+4308]
	add	esi, 1
	adc	eax, 0
	mov	DWORD PTR _i$[esp+4308], eax
	jne	SHORT $L2216
; Line 737
	cmp	esi, 26					; 0000001aH
	jb	$L1741
$L2216:
; Line 750
	lea	ecx, DWORD PTR _t1$[esp+4304]
	push	ecx
	xor	edi, edi
	call	_time
; Line 759
	mov	eax, DWORD PTR _size_in$[esp+4308]
	add	esp, 4
	xor	esi, esi
	cmp	eax, edi
	mov	DWORD PTR _Melnitchka$[esp+4304], edi
	mov	DWORD PTR _WORDcount$[esp+4304], edi
	mov	DWORD PTR _WORDcount$[esp+4308], edi
	mov	DWORD PTR _WORDcountDistinct$[esp+4304], edi
	mov	DWORD PTR _NumberOfFiles$[esp+4304], edi
	mov	DWORD PTR _NumberOfLines$[esp+4304], edi
	mov	DWORD PTR _NumberOfLines$[esp+4308], edi
	mov	DWORD PTR _FilesLEN$[esp+4304], edi
	mov	DWORD PTR _FilesLEN$[esp+4308], edi
	mov	DWORD PTR _k$[esp+4304], edi
	jbe	$L2213
$L2220:
; Line 761
	mov	edx, DWORD PTR _fp_in$[esp+4304]
	push	edx
	push	1
	lea	eax, DWORD PTR _workbyte$[esp+4312]
	push	1
	push	eax
	call	_fread
; Line 762
	mov	al, BYTE PTR _workbyte$[esp+4320]
	add	esp, 16					; 00000010H
	cmp	al, 10					; 0000000aH
	je	SHORT $L1758
; Line 763
	cmp	al, 13					; 0000000dH
	je	$L1756
; Line 764
	cmp	esi, 255				; 000000ffH
	jae	SHORT $L1760
	mov	BYTE PTR _LINE10$[esp+esi+4304], al
$L1760:
; Line 765
	inc	esi
; Line 771
	jmp	$L1756
$L1758:
; Line 772
	cmp	esi, 1
	jb	$L1756
	cmp	esi, 255				; 000000ffH
	ja	$L1756
; Line 774
	lea	ecx, DWORD PTR _LINE10$[esp+4304]
	push	OFFSET FLAT:$SG1766
	push	ecx
	mov	BYTE PTR _LINE10$[esp+esi+4312], 0
	call	_fopen
	mov	ebx, eax
	add	esp, 8
	cmp	ebx, edi
	mov	DWORD PTR _fp_inLINE$[esp+4304], ebx
	je	$L2157
; Line 783
	push	2
	push	0
	push	0
	push	ebx
	call	_fileno
	add	esp, 4
	push	eax
	call	__lseeki64
; Line 784
	push	ebx
	call	_fileno
	push	eax
	call	__telli64
	add	esp, 24					; 00000018H
; Line 785
	push	0
	push	0
	mov	esi, eax
	mov	edi, edx
	push	0
	push	ebx
	mov	DWORD PTR _size_inLINESIXFOUR$[esp+4320], esi
	mov	DWORD PTR _size_inLINESIXFOUR$[esp+4324], edi
	call	_fileno
	add	esp, 4
	push	eax
	call	__lseeki64
; Line 793
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits$[esp+4324]
	push	edx
	push	edi
	push	esi
	call	__ui64toaKAZEcomma
	push	eax
	push	OFFSET FLAT:$SG1768
	call	_printf
; Line 794
	mov	eax, DWORD PTR _FilesLEN$[esp+4344]
	mov	ebp, DWORD PTR _FilesLEN$[esp+4348]
; Line 795
	mov	edx, DWORD PTR _NumberOfFiles$[esp+4344]
	add	esp, 40					; 00000028H
	add	eax, esi
	adc	ebp, edi
	mov	DWORD PTR _FilesLEN$[esp+4304], eax
; Line 799
	xor	eax, eax
	mov	DWORD PTR _FilesLEN$[esp+4308], ebp
	inc	edx
	xor	ebp, ebp
	cmp	edi, eax
	mov	DWORD PTR _NumberOfFiles$[esp+4304], edx
	mov	DWORD PTR _wrdlen$[esp+4304], ebp
	mov	DWORD PTR _i$[esp+4304], eax
	mov	DWORD PTR _i$[esp+4308], eax
	jb	$L2188
	ja	SHORT $L2191
	test	esi, esi
	jbe	$L2188
$L2191:
; Line 801
	push	ebx
	push	1
	lea	eax, DWORD PTR _workbyte$[esp+4312]
	push	1
	push	eax
	call	_fread
; Line 802
	mov	cl, BYTE PTR _workbyte$[esp+4320]
	add	esp, 16					; 00000010H
	cmp	cl, 10					; 0000000aH
	jne	SHORT $L2217
	mov	edx, DWORD PTR _NumberOfLines$[esp+4304]
	mov	eax, DWORD PTR _NumberOfLines$[esp+4308]
	add	edx, 1
	adc	eax, 0
	mov	DWORD PTR _NumberOfLines$[esp+4304], edx
	mov	DWORD PTR _NumberOfLines$[esp+4308], eax
$L2217:
; Line 803
	cmp	DWORD PTR ___mb_cur_max, 1
	jle	SHORT $L2113
	movsx	ecx, cl
	push	259					; 00000103H
	push	ecx
	call	__isctype
	mov	cl, BYTE PTR _workbyte$[esp+4312]
	add	esp, 8
	jmp	SHORT $L2114
$L2113:
	mov	eax, DWORD PTR __pctype
	movsx	edx, cl
	movzx	eax, WORD PTR [eax+edx*2]
	and	eax, 259				; 00000103H
$L2114:
	test	eax, eax
	je	SHORT $L1773
; Line 805
	cmp	ebp, 31					; 0000001fH
	jae	SHORT $L1774
; Line 806
	movsx	ecx, cl
	push	ecx
	call	_tolower
	add	esp, 4
	mov	BYTE PTR _wrd$[esp+ebp+4304], al
$L1774:
; Line 807
	inc	ebp
	mov	DWORD PTR _wrdlen$[esp+4304], ebp
; Line 809
	jmp	$L1770
$L1773:
; Line 811
	cmp	ebp, 1
	jb	$L1808
	mov	eax, DWORD PTR _wrdlen$[esp+4304]
	cmp	eax, 31					; 0000001fH
	ja	$L1808
; Line 816
	mov	esi, DWORD PTR _WORDcount$[esp+4304]
	mov	ebx, DWORD PTR _WORDcount$[esp+4308]
	add	esi, 1
	mov	edx, eax
	adc	ebx, 0
	mov	eax, esi
	and	eax, 262143				; 0003ffffH
	xor	ecx, ecx
	or	eax, ecx
	mov	BYTE PTR _wrd$[esp+edx+4304], 0
	mov	DWORD PTR _WORDcount$[esp+4304], esi
	mov	DWORD PTR _WORDcount$[esp+4308], ebx
	jne	$L2210
; Line 819
	mov	eax, DWORD PTR _Melnitchka$[esp+4304]
	inc	eax
; Line 820
	and	eax, -2147483645			; 80000003H
	jns	SHORT $L2238
	dec	eax
	or	eax, -4					; fffffffcH
	inc	eax
$L2238:
; Line 821
	mov	ebp, DWORD PTR _i$[esp+4304]
	mov	DWORD PTR _Melnitchka$[esp+4304], eax
	jne	SHORT $L1778
	mov	edx, DWORD PTR _i$[esp+4308]
	mov	eax, DWORD PTR _size_inLINESIXFOUR$[esp+4304]
	mov	ecx, ebp
	shld	edx, ecx, 6
	push	edi
	push	eax
	shl	ecx, 6
	push	edx
	push	ecx
	call	__aulldiv
	push	edx
	mov	edx, DWORD PTR _WORDcountDistinct$[esp+4308]
	push	eax
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits2$[esp+4316]
	push	ecx
	push	0
	push	edx
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4320]
	push	eax
	push	ebx
	push	esi
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1781
	call	_printf
	mov	eax, DWORD PTR _Melnitchka$[esp+4324]
	add	esp, 20					; 00000014H
$L1778:
; Line 822
	cmp	eax, 1
	jne	SHORT $L1782
	mov	ecx, DWORD PTR _i$[esp+4308]
	mov	edx, DWORD PTR _size_inLINESIXFOUR$[esp+4304]
	shld	ecx, ebp, 6
	push	edi
	push	edx
	push	ecx
	shl	ebp, 6
	push	ebp
	call	__aulldiv
	mov	ecx, DWORD PTR _WORDcountDistinct$[esp+4304]
	push	edx
	push	eax
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits2$[esp+4316]
	push	eax
	push	0
	push	ecx
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits$[esp+4320]
	push	edx
	push	ebx
	push	esi
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1785
; Line 823
	jmp	$L2243
$L1782:
	cmp	eax, 2
	jne	SHORT $L1786
	mov	eax, DWORD PTR _i$[esp+4308]
	mov	ecx, DWORD PTR _size_inLINESIXFOUR$[esp+4304]
	shld	eax, ebp, 6
	push	edi
	push	ecx
	push	eax
	shl	ebp, 6
	push	ebp
	call	__aulldiv
	push	edx
	push	eax
	mov	eax, DWORD PTR _WORDcountDistinct$[esp+4312]
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits2$[esp+4316]
	push	edx
	push	0
	push	eax
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4320]
	push	ecx
	push	ebx
	push	esi
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1789
; Line 824
	jmp	SHORT $L2243
$L1786:
	cmp	eax, 3
	jne	SHORT $L2210
	mov	edx, DWORD PTR _i$[esp+4308]
	mov	eax, DWORD PTR _size_inLINESIXFOUR$[esp+4304]
	shld	edx, ebp, 6
	push	edi
	push	eax
	push	edx
	shl	ebp, 6
	push	ebp
	call	__aulldiv
	push	edx
	mov	edx, DWORD PTR _WORDcountDistinct$[esp+4308]
	push	eax
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits2$[esp+4316]
	push	ecx
	push	0
	push	edx
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4320]
	push	eax
	push	ebx
	push	esi
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1793
$L2243:
	call	_printf
	add	esp, 20					; 00000014H
$L2210:
; Line 826
	movsx	ecx, BYTE PTR _wrd$[esp+4304]
	mov	eax, DWORD PTR _wrdlen$[esp+4304]
; Line 829
	mov	ebp, DWORD PTR _OffsetsInBuffer$[esp+eax*4+4300]
	mov	esi, DWORD PTR _pointerflush$[esp+4304]
	mov	edx, ecx
	add	ecx, -97				; ffffff9fH
	imul	edx, 31					; 0000001fH
	imul	ecx, DWORD PTR _WHOLEletter_BufferSize$[esp+4304]
	add	ebp, ecx
	lea	edx, DWORD PTR [edx+eax-3008]
	add	ebp, esi
; Line 834
	mov	esi, DWORD PTR _bufend$[esp+edx*4+4304]
	lea	ebx, DWORD PTR _bufend$[esp+edx*4+4304]
	mov	ecx, esi
	sub	ecx, ebp
	lea	edx, DWORD PTR [ecx+eax+4]
	cmp	edx, DWORD PTR _GRMBLFoolAgain$[esp+eax*4+4304]
	jae	$L1798
; Line 835
	lea	eax, DWORD PTR _wrd$[esp+4304]
	push	eax
	call	_KuxHash3
	shl	eax, 2
; Line 836
	mov	edx, DWORD PTR [eax+ebp]
	add	esp, 4
; Line 837
	test	edx, edx
	jne	SHORT $L1799
; Line 838
	mov	DWORD PTR [eax+ebp], esi
; Line 839
	mov	ecx, DWORD PTR [ebp+32768]
; Line 841
	mov	eax, DWORD PTR _wrdlen$[esp+4304]
	mov	DWORD PTR [esi], ecx
	lea	edi, DWORD PTR [esi+4]
	mov	ecx, eax
	mov	edx, ecx
	shr	ecx, 2
	mov	DWORD PTR tv2043[esp+4304], edi
	mov	DWORD PTR [ebx], edi
	lea	esi, DWORD PTR _wrd$[esp+4304]
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb
	inc	DWORD PTR _WORDcountDistinct$[esp+4304]
; Line 842
	mov	ecx, DWORD PTR tv2043[esp+4304]
	add	ecx, eax
	mov	DWORD PTR [ebx], ecx
; Line 844
	jmp	$L2244
$L1799:
; Line 845
	mov	DWORD PTR _FoundInLinkedList$[esp+4304], 0
	jmp	SHORT $L1802
$L2207:
	mov	edi, DWORD PTR _size_inLINESIXFOUR$[esp+4308]
	npad	2
$L1802:
; Line 846
	mov	eax, DWORD PTR _FoundInLinkedList$[esp+4304]
	test	eax, eax
	jne	$L2212
; Line 847
	mov	ecx, DWORD PTR _wrdlen$[esp+4304]
	lea	edi, DWORD PTR _wrd$[esp+4304]
	lea	esi, DWORD PTR [edx+4]
	xor	eax, eax
	repe cmpsb
	jne	SHORT $L1804
; Line 848
	mov	DWORD PTR _FoundInLinkedList$[esp+4304], 1
; Line 850
	jmp	SHORT $L1805
$L1804:
; Line 851
	mov	eax, DWORD PTR [edx]
; Line 852
	test	eax, eax
	mov	DWORD PTR _PseudoLinkedPointerNEW$[esp+4304], eax
	jne	SHORT $L2211
; Line 853
	mov	eax, DWORD PTR [ebx]
	mov	DWORD PTR [edx], eax
; Line 854
	mov	ecx, DWORD PTR [ebp+32768]
	mov	DWORD PTR [eax], ecx
; Line 856
	mov	ecx, DWORD PTR _wrdlen$[esp+4304]
	mov	edx, ecx
	shr	ecx, 2
	add	eax, 4
	mov	edi, eax
	lea	esi, DWORD PTR _wrd$[esp+4304]
	rep movsd
	mov	ecx, edx
	and	ecx, 3
	rep movsb
	mov	ecx, DWORD PTR _WORDcountDistinct$[esp+4304]
	inc	ecx
	mov	DWORD PTR [ebx], eax
	mov	DWORD PTR _WORDcountDistinct$[esp+4304], ecx
; Line 857
	mov	ecx, edx
	add	eax, ecx
	mov	DWORD PTR [ebx], eax
	mov	eax, DWORD PTR _PseudoLinkedPointerNEW$[esp+4304]
$L2211:
; Line 859
	mov	edx, eax
$L1805:
; Line 846
	test	edx, edx
	jne	$L2207
$L2244:
	mov	edi, DWORD PTR _size_inLINESIXFOUR$[esp+4308]
$L2212:
; Line 863
	mov	eax, DWORD PTR _wrdlen$[esp+4304]
	mov	ebx, DWORD PTR [ebx]
	mov	ecx, DWORD PTR _MAXusedBuffer$[esp+eax*4+4304]
	lea	eax, DWORD PTR _MAXusedBuffer$[esp+eax*4+4304]
	sub	ebx, ebp
	cmp	ecx, ebx
	jae	SHORT $L1808
	mov	DWORD PTR [eax], ebx
$L1808:
; Line 881
	mov	esi, DWORD PTR _size_inLINESIXFOUR$[esp+4304]
	mov	ebx, DWORD PTR _fp_inLINE$[esp+4304]
	mov	DWORD PTR _wrdlen$[esp+4304], 0
	mov	ebp, DWORD PTR _wrdlen$[esp+4304]
$L1770:
	add	DWORD PTR _i$[esp+4304], 1
	mov	eax, DWORD PTR _i$[esp+4308]
	adc	eax, 0
	cmp	eax, edi
	mov	DWORD PTR _i$[esp+4308], eax
	jb	$L2191
; Line 799
	ja	SHORT $L2188
	cmp	DWORD PTR _i$[esp+4304], esi
	jb	$L2191
$L2188:
; Line 885
	mov	edx, DWORD PTR _Melnitchka$[esp+4304]
	inc	edx
; Line 886
	mov	eax, edx
	and	eax, -2147483645			; 80000003H
	jns	SHORT $L2239
	dec	eax
	or	eax, -4					; fffffffcH
	inc	eax
$L2239:
	mov	DWORD PTR _Melnitchka$[esp+4304], eax
; Line 887
	jne	SHORT $L1831
	mov	ecx, DWORD PTR _WORDcountDistinct$[esp+4304]
	push	64					; 00000040H
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits2$[esp+4312]
	push	eax
	push	0
	push	ecx
	call	__ui64toaKAZEcomma
	mov	ecx, DWORD PTR _WORDcount$[esp+4324]
	add	esp, 16					; 00000010H
	push	eax
	mov	eax, DWORD PTR _WORDcount$[esp+4316]
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits$[esp+4316]
	push	edx
	push	eax
	push	ecx
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1833
	call	_printf
	mov	eax, DWORD PTR _Melnitchka$[esp+4320]
	add	esp, 16					; 00000010H
$L1831:
; Line 888
	cmp	eax, 1
	jne	SHORT $L1834
	mov	eax, DWORD PTR _WORDcountDistinct$[esp+4304]
	push	64					; 00000040H
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits2$[esp+4312]
	push	edx
	push	0
	push	eax
	call	__ui64toaKAZEcomma
	mov	edx, DWORD PTR _WORDcount$[esp+4328]
	add	esp, 16					; 00000010H
	push	eax
	mov	eax, DWORD PTR _WORDcount$[esp+4312]
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4316]
	push	ecx
	push	edx
	push	eax
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1836
; Line 889
	jmp	$L2245
$L1834:
	cmp	eax, 2
	jne	SHORT $L1837
	mov	edx, DWORD PTR _WORDcountDistinct$[esp+4304]
	push	64					; 00000040H
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits2$[esp+4312]
	push	ecx
	push	0
	push	edx
	call	__ui64toaKAZEcomma
	mov	ecx, DWORD PTR _WORDcount$[esp+4328]
	mov	edx, DWORD PTR _WORDcount$[esp+4324]
	add	esp, 16					; 00000010H
	push	eax
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4316]
	push	eax
	push	ecx
	push	edx
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1839
; Line 890
	jmp	SHORT $L2245
$L1837:
	cmp	eax, 3
	jne	SHORT $L2218
	mov	ecx, DWORD PTR _WORDcountDistinct$[esp+4304]
	push	64					; 00000040H
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits2$[esp+4312]
	push	eax
	push	0
	push	ecx
	call	__ui64toaKAZEcomma
	mov	ecx, DWORD PTR _WORDcount$[esp+4324]
	add	esp, 16					; 00000010H
	push	eax
	mov	eax, DWORD PTR _WORDcount$[esp+4316]
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits$[esp+4316]
	push	edx
	push	eax
	push	ecx
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1842
$L2245:
	call	_printf
	add	esp, 16					; 00000010H
$L2218:
; Line 894
	push	ebx
	xor	esi, esi
	mov	BYTE PTR _LINE10$[esp+4308], 0
	call	_fclose
	add	esp, 4
	xor	edi, edi
$L1756:
	mov	eax, DWORD PTR _k$[esp+4304]
	mov	ecx, DWORD PTR _size_in$[esp+4304]
	inc	eax
	cmp	eax, ecx
	mov	DWORD PTR _k$[esp+4304], eax
	jb	$L2220
$L2213:
; Line 900
	push	OFFSET FLAT:$SG1843
	call	_printf
; Line 901
	mov	esi, DWORD PTR _argv$[esp+4304]
	mov	edx, DWORD PTR [esi+8]
	push	OFFSET FLAT:$SG1846
	push	edx
	call	_fopen
	add	esp, 12					; 0000000cH
	cmp	eax, edi
	mov	DWORD PTR _fp_out$[esp+4304], eax
	jne	$L1845
; Line 902
	mov	eax, DWORD PTR [esi+8]
	push	eax
	push	OFFSET FLAT:$SG1847
	call	_printf
	add	esp, 8
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L2157:
; Line 775
	lea	edx, DWORD PTR _LINE10$[esp+4304]
	push	edx
	push	OFFSET FLAT:$SG1767
	call	_printf
	add	esp, 8
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1798:
; Line 866
	push	OFFSET FLAT:$SG1811
	call	_printf
; Line 867
	mov	eax, DWORD PTR _argv$[esp+4304]
	mov	ecx, DWORD PTR [eax+4]
	mov	esi, DWORD PTR _fp_outLOG$[esp+4308]
	push	ecx
	push	OFFSET FLAT:$SG1812
	push	esi
	call	_fprintf
; Line 868
	mov	eax, DWORD PTR _FilesLEN$[esp+4324]
	mov	ecx, DWORD PTR _FilesLEN$[esp+4320]
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits$[esp+4324]
	push	edx
	push	eax
	push	ecx
	call	__ui64toaKAZEcomma
	push	eax
	push	OFFSET FLAT:$SG1813
	push	esi
	call	_fprintf
; Line 869
	mov	eax, DWORD PTR _WORDcountDistinct$[esp+4348]
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits2$[esp+4352]
	push	edx
	push	0
	push	eax
	call	__ui64toaKAZEcomma
	mov	edx, DWORD PTR _WORDcount$[esp+4368]
	add	esp, 60					; 0000003cH
	push	eax
	mov	eax, DWORD PTR _WORDcount$[esp+4308]
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4312]
	push	ecx
	push	edx
	push	eax
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1815
	push	esi
	call	_fprintf
; Line 870
	mov	ecx, DWORD PTR _NumberOfFiles$[esp+4320]
	push	ecx
	push	OFFSET FLAT:$SG1816
	push	esi
	call	_fprintf
; Line 871
	mov	edx, DWORD PTR _NumberOfLines$[esp+4336]
	mov	eax, DWORD PTR _NumberOfLines$[esp+4332]
	push	edx
	push	eax
	push	OFFSET FLAT:$SG1817
	push	esi
	call	_fprintf
; Line 872
	mov	ecx, DWORD PTR tv1934[esp+4348]
	push	ecx
	push	OFFSET FLAT:$SG1819
	push	esi
	call	_fprintf
	add	esp, 56					; 00000038H
; Line 873
	mov	ebx, 1
	mov	ebp, esi
	npad	6
$L1820:
; Line 874
	mov	ecx, DWORD PTR _GRMBLhill$[esp+ebx*4+4304]
	imul	ecx, DWORD PTR _LetterBuffer$[esp+4304]
	mov	edi, DWORD PTR _MAXusedBuffer$[esp+ebx*4+4304]
	mov	eax, 138547333				; 08421085H
	mul	ecx
	sub	ecx, edx
	push	OFFSET FLAT:$SG1826
	shr	ecx, 1
	push	10					; 0000000aH
	add	ecx, edx
	mov	eax, edi
	imul	eax, 100				; 00000064H
	lea	edx, DWORD PTR _llTOaDigits4$[esp+4312]
	push	edx
	shr	ecx, 4
	push	0
	mov	esi, ecx
	push	esi
	push	0
	push	eax
	call	__aulldiv
	push	edx
	push	eax
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 24					; 00000018H
	push	eax
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits3$[esp+4316]
	push	ecx
	shr	esi, 10					; 0000000aH
	inc	esi
	push	0
	push	esi
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 21					; 00000015H
	push	eax
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits2$[esp+4320]
	push	edx
	shr	edi, 10					; 0000000aH
	inc	edi
	push	0
	push	edi
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 21					; 00000015H
	push	eax
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4324]
	push	eax
	push	0
	push	ebx
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 24					; 00000018H
	push	eax
	push	OFFSET FLAT:$SG1827
	push	ebp
	call	_fprintf
	add	esp, 28					; 0000001cH
	inc	ebx
	cmp	ebx, 32					; 00000020H
	jb	$L1820
; Line 876
	mov	ecx, DWORD PTR _Thunderwith$[esp+4304]
	push	ecx
	push	OFFSET FLAT:$SG1829
	push	ebp
	call	_fprintf
; Line 877
	push	OFFSET FLAT:$SG1830
	push	ebp
	call	_fprintf
	add	esp, 20					; 00000014H
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1845:
; Line 906
	mov	ebp, DWORD PTR _fp_out$[esp+4304]
	mov	BYTE PTR _ZEROS$[esp+4304], 0
	mov	BYTE PTR _ZEROS$[esp+4305], 0
	mov	BYTE PTR _ZEROS$[esp+4306], 0
	mov	BYTE PTR _ZEROS$[esp+4307], 0
	mov	BYTE PTR _CRdLFa$[esp+4304], 13		; 0000000dH
	mov	BYTE PTR _CRdLFa$[esp+4305], 10		; 0000000aH
	mov	DWORD PTR _i$[esp+4304], edi
	mov	DWORD PTR _i$[esp+4308], edi
	npad	8
$L2206:
; Line 908
	mov	ecx, DWORD PTR _i$[esp+4308]
	mov	edx, DWORD PTR _i$[esp+4304]
	push	0
	push	31					; 0000001fH
	push	ecx
	push	edx
	call	__aulldvrm
	imul	eax, DWORD PTR _WHOLEletter_BufferSize$[esp+4304]
; Line 909
	mov	edi, DWORD PTR _ZEROS$[esp+4304]
	mov	DWORD PTR tv1579[esp+4308], ebx
	mov	DWORD PTR tv1580[esp+4308], edx
	mov	edx, DWORD PTR _OffsetsInBuffer$[esp+ecx*4+4304]
	add	edx, eax
	add	edx, DWORD PTR _pointerflush$[esp+4304]
	xor	esi, esi
$L1851:
; Line 912
	mov	eax, DWORD PTR [edx+esi*4]
; Line 913
	test	eax, eax
	je	SHORT $L1852
	npad	6
$L1855:
; Line 914
	mov	ecx, DWORD PTR [eax]
	test	ecx, ecx
; Line 915
	mov	DWORD PTR [eax], edi
; Line 916
	mov	eax, ecx
	jne	SHORT $L1855
$L1852:
; Line 909
	inc	esi
	cmp	esi, 8192				; 00002000H
	jb	SHORT $L1851
; Line 924
	mov	eax, DWORD PTR _i$[esp+4304]
	mov	edi, DWORD PTR _bufend$[esp+eax*4+4304]
	lea	esi, DWORD PTR [edx+32776]
	cmp	esi, edi
	jae	SHORT $L1849
	mov	ebx, DWORD PTR _TotalWLchars$[esp+4304]
	npad	1
$L1858:
; Line 925
	cmp	BYTE PTR [esi], 0
	je	SHORT $L1860
	push	ebp
	push	1
	push	1
	push	esi
	call	_fwrite
	add	esp, 16					; 00000010H
	inc	ebx
$L1860:
; Line 927
	mov	al, BYTE PTR [esi-1]
	test	al, al
	je	SHORT $L1861
	cmp	BYTE PTR [esi], 0
	jne	SHORT $L1861
	push	ebp
	push	1
	lea	ecx, DWORD PTR _CRdLFa$[esp+4312]
	push	2
	push	ecx
	call	_fwrite
	add	esp, 16					; 00000010H
$L1861:
; Line 929
	lea	eax, DWORD PTR [edi-1]
	cmp	esi, eax
	jne	SHORT $L1862
	push	ebp
	push	1
	lea	edx, DWORD PTR _CRdLFa$[esp+4312]
	push	2
	push	edx
	call	_fwrite
	add	esp, 16					; 00000010H
$L1862:
; Line 930
	inc	esi
	cmp	esi, edi
	jb	SHORT $L1858
; Line 925
	mov	DWORD PTR _TotalWLchars$[esp+4304], ebx
$L1849:
; Line 906
	mov	ecx, DWORD PTR _i$[esp+4304]
	mov	eax, DWORD PTR _i$[esp+4308]
	add	ecx, 1
	adc	eax, 0
	mov	DWORD PTR _i$[esp+4304], ecx
	mov	DWORD PTR _i$[esp+4308], eax
	jne	SHORT $L2189
	mov	eax, ecx
	cmp	eax, 806				; 00000326H
	jb	$L2206
$L2189:
; Line 934
	lea	eax, DWORD PTR _t2$[esp+4304]
	push	eax
	call	_time
; Line 935
	mov	eax, DWORD PTR _t2$[esp+4308]
	mov	ecx, DWORD PTR _t1$[esp+4308]
	add	esp, 4
	cmp	eax, ecx
	jg	SHORT $L1864
	lea	eax, DWORD PTR [ecx+1]
	mov	DWORD PTR _t2$[esp+4304], eax
$L1864:
; Line 936
	sub	eax, ecx
	push	eax
	push	OFFSET FLAT:$SG1866
	call	_printf
; Line 937
	mov	ebp, DWORD PTR _t1$[esp+4312]
	mov	eax, DWORD PTR _t2$[esp+4312]
	add	esp, 8
	push	10					; 0000000aH
	sub	eax, ebp
	mov	ebp, DWORD PTR _FilesLEN$[esp+4308]
	cdq
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4308]
	push	ecx
	push	edx
	mov	edx, DWORD PTR _FilesLEN$[esp+4320]
	push	eax
	push	edx
	push	ebp
	call	__aulldiv
	push	edx
	push	eax
	call	__ui64toaKAZEcomma
	mov	esi, DWORD PTR _fp_outLOG$[esp+4320]
	push	eax
	push	OFFSET FLAT:$SG1868
	push	esi
	call	_fprintf
; Line 938
	mov	edx, DWORD PTR _t1$[esp+4332]
	mov	ebx, DWORD PTR _WORDcount$[esp+4336]
	mov	edi, DWORD PTR _WORDcount$[esp+4332]
	add	esp, 28					; 0000001cH
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4308]
	push	eax
	mov	eax, DWORD PTR _t2$[esp+4312]
	sub	eax, edx
	cdq
	push	edx
	push	eax
	push	ebx
	push	edi
	call	__aulldiv
	push	edx
	push	eax
	call	__ui64toaKAZEcomma
	push	eax
	push	OFFSET FLAT:$SG1870
	push	esi
	call	_fprintf
; Line 939
	mov	ecx, DWORD PTR _argv$[esp+4328]
	mov	edx, DWORD PTR [ecx+4]
	push	edx
	push	OFFSET FLAT:$SG1871
	push	esi
	call	_fprintf
; Line 940
	mov	ecx, DWORD PTR _FilesLEN$[esp+4348]
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4348]
	push	eax
	push	ecx
	push	ebp
	call	__ui64toaKAZEcomma
	push	eax
	push	OFFSET FLAT:$SG1872
	push	esi
	call	_fprintf
; Line 941
	mov	eax, DWORD PTR _WORDcountDistinct$[esp+4372]
	add	esp, 68					; 00000044H
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits2$[esp+4308]
	push	edx
	push	0
	push	eax
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4312]
	push	ecx
	push	ebx
	push	edi
	call	__ui64toaKAZEcomma
	add	esp, 16					; 00000010H
	push	eax
	push	OFFSET FLAT:$SG1874
	push	esi
	call	_fprintf
; Line 942
	mov	edx, DWORD PTR _NumberOfFiles$[esp+4320]
	push	edx
	push	OFFSET FLAT:$SG1875
	push	esi
	call	_fprintf
; Line 943
	mov	eax, DWORD PTR _NumberOfLines$[esp+4336]
	mov	ecx, DWORD PTR _NumberOfLines$[esp+4332]
	push	eax
	push	ecx
	push	OFFSET FLAT:$SG1876
	push	esi
	call	_fprintf
; Line 944
	mov	edx, DWORD PTR tv1934[esp+4348]
	push	edx
	push	OFFSET FLAT:$SG1878
	push	esi
	call	_fprintf
	add	esp, 56					; 00000038H
; Line 946
	mov	ebx, 1
	npad	14
$L1879:
; Line 947
	mov	ecx, DWORD PTR _GRMBLhill$[esp+ebx*4+4304]
	imul	ecx, DWORD PTR _LetterBuffer$[esp+4304]
	mov	eax, 138547333				; 08421085H
	mul	ecx
	mov	eax, DWORD PTR _MAXusedBuffer$[esp+ebx*4+4304]
	sub	ecx, edx
	push	OFFSET FLAT:$SG1885
	shr	ecx, 1
	push	10					; 0000000aH
	mov	edi, eax
	imul	eax, 100				; 00000064H
	add	ecx, edx
	lea	edx, DWORD PTR _llTOaDigits4$[esp+4312]
	push	edx
	push	0
	shr	ecx, 4
	push	ecx
	push	0
	mov	ebp, ecx
	push	eax
	shr	ebp, 10					; 0000000aH
	shr	edi, 10					; 0000000aH
	call	__aulldiv
	push	edx
	push	eax
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 24					; 00000018H
	push	eax
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits3$[esp+4316]
	push	eax
	lea	ecx, DWORD PTR [ebp+1]
	push	0
	push	ecx
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 21					; 00000015H
	push	eax
	push	10					; 0000000aH
	lea	edx, DWORD PTR _llTOaDigits2$[esp+4320]
	push	edx
	lea	eax, DWORD PTR [edi+1]
	push	0
	push	eax
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 21					; 00000015H
	push	eax
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4324]
	push	ecx
	push	0
	push	ebx
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 24					; 00000018H
	push	eax
	push	OFFSET FLAT:$SG1886
	push	esi
	call	_fprintf
; Line 948
	lea	eax, DWORD PTR [edi+1]
	imul	eax, 31					; 0000001fH
	xor	edx, edx
	div	DWORD PTR _GRMBLhill$[esp+ebx*4+4332]
	mov	ecx, DWORD PTR _MAXusedBufferABS$[esp+4332]
	add	esp, 28					; 0000001cH
	cmp	ecx, eax
	jae	SHORT $L1888
	mov	DWORD PTR _MAXusedBufferABS$[esp+4304], eax
$L1888:
; Line 949
	mov	edx, DWORD PTR _Utiliza1$[esp+4304]
; Line 950
	mov	ecx, DWORD PTR _Utiliza2$[esp+4304]
	lea	eax, DWORD PTR [edx+edi+1]
	inc	ebx
	cmp	ebx, 32					; 00000020H
	lea	edx, DWORD PTR [ecx+ebp+1]
	mov	DWORD PTR _Utiliza1$[esp+4304], eax
	mov	DWORD PTR _Utiliza2$[esp+4304], edx
	jb	$L1879
; Line 952
	push	OFFSET FLAT:$SG1891
	push	10					; 0000000aH
	lea	eax, DWORD PTR _llTOaDigits$[esp+4312]
	push	eax
	mov	eax, DWORD PTR _Utiliza1$[esp+4316]
	imul	eax, 100				; 00000064H
	xor	edx, edx
	div	DWORD PTR _Utiliza2$[esp+4316]
	push	0
	push	eax
	call	__ui64toaKAZEzerocomma
	add	esp, 16					; 00000010H
	add	eax, 24					; 00000018H
	push	eax
	push	OFFSET FLAT:$SG1892
	push	esi
	call	_fprintf
; Line 953
	mov	eax, DWORD PTR _TotalWLchars$[esp+4320]
	mov	ecx, 1000				; 000003e8H
	mul	ecx
	mov	ecx, DWORD PTR _memory_size$[esp+4320]
	add	esp, 16					; 00000010H
	push	0
	push	ecx
	push	edx
	push	eax
	call	__aulldiv
	test	edx, edx
	jg	SHORT $L2119
	jl	SHORT $L2190
	test	eax, eax
	jae	SHORT $L2119
$L2190:
	mov	ecx, 1
	jmp	SHORT $L2120
$L2119:
	xor	ecx, ecx
$L2120:
	push	ecx
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4312]
	push	ecx
	push	edx
	push	eax
	call	_x64toaKAZE
	lea	edx, DWORD PTR _llTOaDigits$[esp+4324]
	push	edx
	push	OFFSET FLAT:$SG1894
	push	esi
	call	_fprintf
; Line 954
	mov	eax, DWORD PTR _Thunderwith$[esp+4336]
	push	eax
	push	OFFSET FLAT:$SG1896
	push	esi
	call	_fprintf
; Line 955
	mov	ecx, DWORD PTR _MAXusedBufferABS$[esp+4348]
	push	ecx
	push	OFFSET FLAT:$SG1897
	push	esi
	call	_fprintf
; Line 956
	mov	edx, DWORD PTR _t2$[esp+4360]
	sub	edx, DWORD PTR _t1$[esp+4360]
	push	edx
	push	OFFSET FLAT:$SG1899
	push	esi
	call	_fprintf
; Line 959
	mov	eax, DWORD PTR tv1934[esp+4372]
	add	esp, 68					; 00000044H
	push	eax
	push	OFFSET FLAT:$SG1900
	call	_printf
; Line 960
	mov	ecx, DWORD PTR _pointerflush$[esp+4312]
	push	ecx
	call	_free
; Line 961
	mov	edx, DWORD PTR _fp_out$[esp+4316]
	push	edx
	call	_fclose
; Line 962
	push	esi
	call	_fclose
; Line 965
	mov	ecx, DWORD PTR _argv$[esp+4320]
	mov	edx, DWORD PTR [ecx+8]
	lea	eax, DWORD PTR _backup$[esp+4324]
	push	eax
	push	edx
	call	_readlines
	mov	edi, eax
	add	esp, 28					; 0000001cH
	test	edi, edi
	jl	$L1902
; Line 975
	cmp	DWORD PTR _argc$[esp+4300], 5
	je	$L1903
; Line 976
	push	OFFSET FLAT:$SG1904
	call	_printf
; Line 978
	mov	ebp, DWORD PTR _backup$[esp+4308]
	mov	esi, DWORD PTR _TAILOffetFromStartBUKVA$[esp+4308]
	add	esp, 4
	xor	ebx, ebx
	npad	1
$L1905:
; Line 979
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4308]
	push	ecx
	lea	eax, DWORD PTR [ebx+1]
	push	0
	push	eax
	mov	DWORD PTR tv1965[esp+4320], eax
	call	__ui64toaKAZEzerocomma
	add	eax, 24					; 00000018H
	push	eax
	push	OFFSET FLAT:$SG1908
	call	_printf
	add	esp, 24					; 00000018H
; Line 981
	cmp	esi, edi
	mov	eax, esi
	jae	SHORT $L1906
$L1910:
	mov	edx, DWORD PTR [ebp+esi*4]
	movzx	ecx, BYTE PTR [edx]
	sub	ecx, 97					; 00000061H
	cmp	ecx, ebx
	jne	SHORT $L1911
; Line 982
	inc	esi
	cmp	esi, edi
	jb	SHORT $L1910
$L1911:
; Line 984
	cmp	eax, esi
	je	SHORT $L1906
; Line 985
	mov	edx, esi
	sub	edx, eax
	push	0
	push	edx
	lea	eax, DWORD PTR [ebp+eax*4]
	push	eax
	call	_mkqsort
	add	esp, 12					; 0000000cH
$L1906:
	mov	ebx, DWORD PTR tv1965[esp+4304]
	cmp	ebx, 26					; 0000001aH
	jb	SHORT $L1905
; Line 989
	jmp	$L1936
$L1903:
; Line 991
	mov	esi, DWORD PTR _argv$[esp+4300]
	mov	ecx, DWORD PTR [esi+16]
	mov	al, BYTE PTR [ecx]
	cmp	al, 65					; 00000041H
	mov	ebp, DWORD PTR _backup$[esp+4304]
	je	SHORT $L1915
	cmp	al, 97					; 00000061H
	jne	SHORT $L2214
$L1915:
; Line 992
	push	OFFSET FLAT:$SG1916
	call	_printf
; Line 993
	push	0
	push	ebp
	mov	eax, edi
	call	_InsertSortKAZE
	add	esp, 12					; 0000000cH
$L2214:
; Line 995
	mov	edx, DWORD PTR [esi+16]
	mov	al, BYTE PTR [edx]
	cmp	al, 66					; 00000042H
	je	SHORT $L1918
	cmp	al, 98					; 00000062H
	jne	$L2208
$L1918:
; Line 996
	push	OFFSET FLAT:$SG1919
	call	_printf
; Line 998
	mov	esi, DWORD PTR _TAILOffetFromStartBUKVA$[esp+4308]
	add	esp, 4
	xor	ebx, ebx
	npad	4
$L1920:
; Line 999
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4308]
	push	ecx
	lea	eax, DWORD PTR [ebx+1]
	push	0
	push	eax
	mov	DWORD PTR tv1965[esp+4320], eax
	call	__ui64toaKAZEzerocomma
	add	eax, 24					; 00000018H
	push	eax
	push	OFFSET FLAT:$SG1923
	call	_printf
	add	esp, 24					; 00000018H
; Line 1001
	cmp	esi, edi
	mov	ecx, esi
	jae	SHORT $L1921
$L1925:
	mov	edx, DWORD PTR [ebp+esi*4]
	movzx	eax, BYTE PTR [edx]
	sub	eax, 97					; 00000061H
	cmp	eax, ebx
	jne	SHORT $L1926
; Line 1002
	inc	esi
	cmp	esi, edi
	jb	SHORT $L1925
$L1926:
; Line 1004
	cmp	ecx, esi
	je	SHORT $L1921
; Line 1005
	mov	eax, esi
	sub	eax, ecx
	lea	ecx, DWORD PTR [ebp+ecx*4]
	push	0
	push	ecx
	call	_InsertSortKAZE
	add	esp, 8
$L1921:
	mov	ebx, DWORD PTR tv1965[esp+4304]
	cmp	ebx, 26					; 0000001aH
	jb	SHORT $L1920
; Line 998
	jmp	SHORT $L1922
$L2208:
	mov	esi, DWORD PTR _TAILOffetFromStartBUKVA$[esp+4304]
$L1922:
; Line 1009
	mov	ebx, DWORD PTR _argv$[esp+4300]
	mov	edx, DWORD PTR [ebx+16]
	mov	al, BYTE PTR [edx]
	cmp	al, 67					; 00000043H
	je	SHORT $L1929
	cmp	al, 99					; 00000063H
	jne	SHORT $L2130
$L1929:
; Line 1010
	push	OFFSET FLAT:$SG1930
	call	_printf
; Line 1011
	push	0
	push	edi
	push	ebp
	call	_mkqsort
	add	esp, 16					; 00000010H
$L2130:
; Line 1013
	mov	eax, DWORD PTR [ebx+16]
	mov	al, BYTE PTR [eax]
	cmp	al, 68					; 00000044H
	je	SHORT $L1932
	cmp	al, 100					; 00000064H
	jne	SHORT $L1936
$L1932:
; Line 1014
	push	OFFSET FLAT:$SG1933
	call	_printf
	add	esp, 4
; Line 1016
	xor	ebx, ebx
	npad	1
$L1934:
; Line 1017
	push	10					; 0000000aH
	lea	ecx, DWORD PTR _llTOaDigits$[esp+4308]
	push	ecx
	lea	eax, DWORD PTR [ebx+1]
	push	0
	push	eax
	mov	DWORD PTR tv1965[esp+4320], eax
	call	__ui64toaKAZEzerocomma
	add	eax, 24					; 00000018H
	push	eax
	push	OFFSET FLAT:$SG1937
	call	_printf
	add	esp, 24					; 00000018H
; Line 1019
	cmp	esi, edi
	mov	eax, esi
	jae	SHORT $L1935
$L1939:
	mov	edx, DWORD PTR [ebp+esi*4]
	movzx	ecx, BYTE PTR [edx]
	sub	ecx, 97					; 00000061H
	cmp	ecx, ebx
	jne	SHORT $L1940
; Line 1020
	inc	esi
	cmp	esi, edi
	jb	SHORT $L1939
$L1940:
; Line 1022
	cmp	eax, esi
	je	SHORT $L1935
; Line 1023
	mov	edx, esi
	sub	edx, eax
	push	0
	push	edx
	lea	eax, DWORD PTR [ebp+eax*4]
	push	eax
	call	_mkqsort
	add	esp, 12					; 0000000cH
$L1935:
	mov	ebx, DWORD PTR tv1965[esp+4304]
	cmp	ebx, 26					; 0000001aH
	jb	SHORT $L1934
$L1936:
; Line 1030
	push	OFFSET FLAT:$SG1942
	call	_printf
; Line 1031
	mov	esi, DWORD PTR _argv$[esp+4304]
	mov	ecx, DWORD PTR [esi+8]
	push	OFFSET FLAT:$SG1945
	push	ecx
	call	_fopen
	mov	ebx, eax
	add	esp, 12					; 0000000cH
	test	ebx, ebx
	jne	SHORT $L1944
; Line 1032
	mov	edx, DWORD PTR [esi+8]
	push	edx
	push	OFFSET FLAT:$SG1946
	call	_printf
	add	esp, 8
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1944:
; Line 1033
	xor	esi, esi
	test	edi, edi
	jbe	SHORT $L1949
$L1947:
; Line 1034
	mov	eax, DWORD PTR [ebp+esi*4]
	push	eax
	push	OFFSET FLAT:$SG1950
	push	ebx
	call	_fprintf
; Line 1035
	push	ebx
	push	1
	lea	ecx, DWORD PTR _CRdLFa$[esp+4324]
	push	2
	push	ecx
	call	_fwrite
	add	esp, 28					; 0000001cH
	inc	esi
	cmp	esi, edi
	jb	SHORT $L1947
$L1949:
; Line 1037
	lea	edx, DWORD PTR _t3$[esp+4304]
	push	edx
	call	_time
; Line 1038
	mov	eax, DWORD PTR _t3$[esp+4308]
	mov	ecx, DWORD PTR _t2$[esp+4308]
	add	esp, 4
	cmp	eax, ecx
	jg	SHORT $L1952
	lea	eax, DWORD PTR [ecx+1]
	mov	DWORD PTR _t3$[esp+4304], eax
$L1952:
; Line 1039
	sub	eax, ecx
	push	eax
	push	OFFSET FLAT:$SG1954
	call	_printf
; Line 1040
	push	OFFSET FLAT:$SG1957
	push	OFFSET FLAT:$SG1958
	call	_fopen
	add	esp, 16					; 00000010H
	test	eax, eax
	jne	SHORT $L1956
; Line 1041
	push	OFFSET FLAT:$SG1959
	jmp	SHORT $L2241
$L1956:
; Line 1042
	mov	ecx, DWORD PTR _t3$[esp+4304]
	sub	ecx, DWORD PTR _t2$[esp+4304]
	push	ecx
	push	OFFSET FLAT:$SG1961
	push	eax
	call	_fprintf
; Line 1043
	push	OFFSET FLAT:$SG1962
	call	_printf
	add	esp, 16					; 00000010H
	pop	edi
	pop	ebx
	pop	esi
; Line 1044
	xor	eax, eax
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
$L1902:
; Line 1047
	push	OFFSET FLAT:$SG1964
$L2241:
	call	_printf
	add	esp, 4
	pop	edi
	pop	ebx
	pop	esi
; Line 1048
	mov	eax, 1
	pop	ebp
; Line 1051
	add	esp, 4288				; 000010c0H
	ret	0
_main	ENDP
_TEXT	ENDS
END
