	.file	"19700.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 16
	.type	VERSION, @object
	.size	VERSION, 26
VERSION:
	.string	"$VER: unlzx 1.1 (03.4.01)"
	.globl	mode
	.bss
	.align 4
	.type	mode, @object
	.size	mode, 4
mode:
	.zero	4
	.globl	info_header
	.align 8
	.type	info_header, @object
	.size	info_header, 10
info_header:
	.zero	10
	.globl	archive_header
	.align 16
	.type	archive_header, @object
	.size	archive_header, 31
archive_header:
	.zero	31
	.globl	header_filename
	.align 32
	.type	header_filename, @object
	.size	header_filename, 256
header_filename:
	.zero	256
	.globl	header_comment
	.align 32
	.type	header_comment, @object
	.size	header_comment, 256
header_comment:
	.zero	256
	.globl	pack_size
	.align 4
	.type	pack_size, @object
	.size	pack_size, 4
pack_size:
	.zero	4
	.globl	unpack_size
	.align 4
	.type	unpack_size, @object
	.size	unpack_size, 4
unpack_size:
	.zero	4
	.globl	crc
	.align 4
	.type	crc, @object
	.size	crc, 4
crc:
	.zero	4
	.globl	year
	.align 4
	.type	year, @object
	.size	year, 4
year:
	.zero	4
	.globl	month
	.align 4
	.type	month, @object
	.size	month, 4
month:
	.zero	4
	.globl	day
	.align 4
	.type	day, @object
	.size	day, 4
day:
	.zero	4
	.globl	hour
	.align 4
	.type	hour, @object
	.size	hour, 4
hour:
	.zero	4
	.globl	minute
	.align 4
	.type	minute, @object
	.size	minute, 4
minute:
	.zero	4
	.globl	second
	.align 4
	.type	second, @object
	.size	second, 4
second:
	.zero	4
	.globl	attributes
	.type	attributes, @object
	.size	attributes, 1
attributes:
	.zero	1
	.globl	pack_mode
	.type	pack_mode, @object
	.size	pack_mode, 1
pack_mode:
	.zero	1
	.globl	filename_list
	.align 8
	.type	filename_list, @object
	.size	filename_list, 8
filename_list:
	.zero	8
	.globl	read_buffer
	.align 32
	.type	read_buffer, @object
	.size	read_buffer, 16384
read_buffer:
	.zero	16384
	.globl	decrunch_buffer
	.align 32
	.type	decrunch_buffer, @object
	.size	decrunch_buffer, 66052
decrunch_buffer:
	.zero	66052
	.globl	source
	.align 8
	.type	source, @object
	.size	source, 8
source:
	.zero	8
	.globl	destination
	.align 8
	.type	destination, @object
	.size	destination, 8
destination:
	.zero	8
	.globl	source_end
	.align 8
	.type	source_end, @object
	.size	source_end, 8
source_end:
	.zero	8
	.globl	destination_end
	.align 8
	.type	destination_end, @object
	.size	destination_end, 8
destination_end:
	.zero	8
	.globl	decrunch_method
	.align 4
	.type	decrunch_method, @object
	.size	decrunch_method, 4
decrunch_method:
	.zero	4
	.globl	decrunch_length
	.align 4
	.type	decrunch_length, @object
	.size	decrunch_length, 4
decrunch_length:
	.zero	4
	.globl	last_offset
	.align 4
	.type	last_offset, @object
	.size	last_offset, 4
last_offset:
	.zero	4
	.globl	global_control
	.align 4
	.type	global_control, @object
	.size	global_control, 4
global_control:
	.zero	4
	.globl	global_shift
	.align 4
	.type	global_shift, @object
	.size	global_shift, 4
global_shift:
	.zero	4
	.globl	offset_len
	.align 8
	.type	offset_len, @object
	.size	offset_len, 8
offset_len:
	.zero	8
	.globl	offset_table
	.align 32
	.type	offset_table, @object
	.size	offset_table, 256
offset_table:
	.zero	256
	.globl	huffman20_len
	.align 16
	.type	huffman20_len, @object
	.size	huffman20_len, 20
huffman20_len:
	.zero	20
	.globl	huffman20_table
	.align 32
	.type	huffman20_table, @object
	.size	huffman20_table, 192
huffman20_table:
	.zero	192
	.globl	literal_len
	.align 32
	.type	literal_len, @object
	.size	literal_len, 768
literal_len:
	.zero	768
	.globl	literal_table
	.align 32
	.type	literal_table, @object
	.size	literal_table, 10240
literal_table:
	.zero	10240
	.section	.rodata
.LC0:
	.string	"jan"
.LC1:
	.string	"feb"
.LC2:
	.string	"mar"
.LC3:
	.string	"apr"
.LC4:
	.string	"may"
.LC5:
	.string	"jun"
.LC6:
	.string	"jul"
.LC7:
	.string	"aug"
.LC8:
	.string	"sep"
.LC9:
	.string	"oct"
.LC10:
	.string	"nov"
.LC11:
	.string	"dec"
.LC12:
	.string	"?13"
.LC13:
	.string	"?14"
.LC14:
	.string	"?15"
.LC15:
	.string	"?16"
	.section	.data.rel.local,"aw"
	.align 32
	.type	month_str, @object
	.size	month_str, 128
month_str:
	.quad	.LC0
	.quad	.LC1
	.quad	.LC2
	.quad	.LC3
	.quad	.LC4
	.quad	.LC5
	.quad	.LC6
	.quad	.LC7
	.quad	.LC8
	.quad	.LC9
	.quad	.LC10
	.quad	.LC11
	.quad	.LC12
	.quad	.LC13
	.quad	.LC14
	.quad	.LC15
	.globl	sum
	.bss
	.align 4
	.type	sum, @object
	.size	sum, 4
sum:
	.zero	4
	.section	.rodata
	.align 32
	.type	crc_table, @object
	.size	crc_table, 1024
crc_table:
	.long	0
	.long	1996959894
	.long	-301047508
	.long	-1727442502
	.long	124634137
	.long	1886057615
	.long	-379345611
	.long	-1637575261
	.long	249268274
	.long	2044508324
	.long	-522852066
	.long	-1747789432
	.long	162941995
	.long	2125561021
	.long	-407360249
	.long	-1866523247
	.long	498536548
	.long	1789927666
	.long	-205950648
	.long	-2067906082
	.long	450548861
	.long	1843258603
	.long	-187386543
	.long	-2083289657
	.long	325883990
	.long	1684777152
	.long	-43845254
	.long	-1973040660
	.long	335633487
	.long	1661365465
	.long	-99664541
	.long	-1928851979
	.long	997073096
	.long	1281953886
	.long	-715111964
	.long	-1570279054
	.long	1006888145
	.long	1258607687
	.long	-770865667
	.long	-1526024853
	.long	901097722
	.long	1119000684
	.long	-608450090
	.long	-1396901568
	.long	853044451
	.long	1172266101
	.long	-589951537
	.long	-1412350631
	.long	651767980
	.long	1373503546
	.long	-925412992
	.long	-1076862698
	.long	565507253
	.long	1454621731
	.long	-809855591
	.long	-1195530993
	.long	671266974
	.long	1594198024
	.long	-972236366
	.long	-1324619484
	.long	795835527
	.long	1483230225
	.long	-1050600021
	.long	-1234817731
	.long	1994146192
	.long	31158534
	.long	-1731059524
	.long	-271249366
	.long	1907459465
	.long	112637215
	.long	-1614814043
	.long	-390540237
	.long	2013776290
	.long	251722036
	.long	-1777751922
	.long	-519137256
	.long	2137656763
	.long	141376813
	.long	-1855689577
	.long	-429695999
	.long	1802195444
	.long	476864866
	.long	-2056965928
	.long	-228458418
	.long	1812370925
	.long	453092731
	.long	-2113342271
	.long	-183516073
	.long	1706088902
	.long	314042704
	.long	-1950435094
	.long	-54949764
	.long	1658658271
	.long	366619977
	.long	-1932296973
	.long	-69972891
	.long	1303535960
	.long	984961486
	.long	-1547960204
	.long	-725929758
	.long	1256170817
	.long	1037604311
	.long	-1529756563
	.long	-740887301
	.long	1131014506
	.long	879679996
	.long	-1385723834
	.long	-631195440
	.long	1141124467
	.long	855842277
	.long	-1442165665
	.long	-586318647
	.long	1342533948
	.long	654459306
	.long	-1106571248
	.long	-921952122
	.long	1466479909
	.long	544179635
	.long	-1184443383
	.long	-832445281
	.long	1591671054
	.long	702138776
	.long	-1328506846
	.long	-942167884
	.long	1504918807
	.long	783551873
	.long	-1212326853
	.long	-1061524307
	.long	-306674912
	.long	-1698712650
	.long	62317068
	.long	1957810842
	.long	-355121351
	.long	-1647151185
	.long	81470997
	.long	1943803523
	.long	-480048366
	.long	-1805370492
	.long	225274430
	.long	2053790376
	.long	-468791541
	.long	-1828061283
	.long	167816743
	.long	2097651377
	.long	-267414716
	.long	-2029476910
	.long	503444072
	.long	1762050814
	.long	-144550051
	.long	-2140837941
	.long	426522225
	.long	1852507879
	.long	-19653770
	.long	-1982649376
	.long	282753626
	.long	1742555852
	.long	-105259153
	.long	-1900089351
	.long	397917763
	.long	1622183637
	.long	-690576408
	.long	-1580100738
	.long	953729732
	.long	1340076626
	.long	-776247311
	.long	-1497606297
	.long	1068828381
	.long	1219638859
	.long	-670225446
	.long	-1358292148
	.long	906185462
	.long	1090812512
	.long	-547295293
	.long	-1469587627
	.long	829329135
	.long	1181335161
	.long	-882789492
	.long	-1134132454
	.long	628085408
	.long	1382605366
	.long	-871598187
	.long	-1156888829
	.long	570562233
	.long	1426400815
	.long	-977650754
	.long	-1296233688
	.long	733239954
	.long	1555261956
	.long	-1026031705
	.long	-1244606671
	.long	752459403
	.long	1541320221
	.long	-1687895376
	.long	-328994266
	.long	1969922972
	.long	40735498
	.long	-1677130071
	.long	-351390145
	.long	1913087877
	.long	83908371
	.long	-1782625662
	.long	-491226604
	.long	2075208622
	.long	213261112
	.long	-1831694693
	.long	-438977011
	.long	2094854071
	.long	198958881
	.long	-2032938284
	.long	-237706686
	.long	1759359992
	.long	534414190
	.long	-2118248755
	.long	-155638181
	.long	1873836001
	.long	414664567
	.long	-2012718362
	.long	-15766928
	.long	1711684554
	.long	285281116
	.long	-1889165569
	.long	-127750551
	.long	1634467795
	.long	376229701
	.long	-1609899400
	.long	-686959890
	.long	1308918612
	.long	956543938
	.long	-1486412191
	.long	-799009033
	.long	1231636301
	.long	1047427035
	.long	-1362007478
	.long	-640263460
	.long	1088359270
	.long	936918000
	.long	-1447252397
	.long	-558129467
	.long	1202900863
	.long	817233897
	.long	-1111625188
	.long	-893730166
	.long	1404277552
	.long	615818150
	.long	-1160759803
	.long	-841546093
	.long	1423857449
	.long	601450431
	.long	-1285129682
	.long	-1000256840
	.long	1567103746
	.long	711928724
	.long	-1274298825
	.long	-1022587231
	.long	1510334235
	.long	755167117
	.align 32
	.type	table_one, @object
	.size	table_one, 32
table_one:
	.string	""
	.string	""
	.string	""
	.string	""
	.ascii	"\001\001\002\002\003\003\004\004\005\005\006\006\007\007\b\b"
	.ascii	"\t\t\n\n\013\013\f\f\r\r\016\016"
	.align 32
	.type	table_two, @object
	.size	table_two, 128
table_two:
	.long	0
	.long	1
	.long	2
	.long	3
	.long	4
	.long	6
	.long	8
	.long	12
	.long	16
	.long	24
	.long	32
	.long	48
	.long	64
	.long	96
	.long	128
	.long	192
	.long	256
	.long	384
	.long	512
	.long	768
	.long	1024
	.long	1536
	.long	2048
	.long	3072
	.long	4096
	.long	6144
	.long	8192
	.long	12288
	.long	16384
	.long	24576
	.long	32768
	.long	49152
	.align 32
	.type	table_three, @object
	.size	table_three, 64
table_three:
	.long	0
	.long	1
	.long	3
	.long	7
	.long	15
	.long	31
	.long	63
	.long	127
	.long	255
	.long	511
	.long	1023
	.long	2047
	.long	4095
	.long	8191
	.long	16383
	.long	32767
	.align 32
	.type	table_four, @object
	.size	table_four, 34
table_four:
	.string	""
	.string	"\001\002\003\004\005\006\007\b\t\n\013\f\r\016\017\020"
	.ascii	"\001\002\003\004\005\006\007\b\t\n\013\f\r\016\017\020"
	.text
	.globl	crc_calc
	.type	crc_calc, @function
crc_calc:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	.cfi_offset 3, -24
	mov	QWORD PTR -16[rbp], rdi
	mov	DWORD PTR -20[rbp], esi
	cmp	DWORD PTR -20[rbp], 0
	je	.L4
	mov	eax, DWORD PTR sum[rip]
	not	eax
	mov	ebx, eax
.L3:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -16[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	xor	eax, ebx
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, crc_table[rip]
	mov	eax, DWORD PTR [rdx+rax]
	shr	ebx, 8
	mov	edx, ebx
	xor	eax, edx
	mov	ebx, eax
	sub	DWORD PTR -20[rbp], 1
	cmp	DWORD PTR -20[rbp], 0
	jne	.L3
	mov	eax, ebx
	not	eax
	mov	DWORD PTR sum[rip], eax
.L4:
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	crc_calc, .-crc_calc
	.globl	make_decode_table
	.type	make_decode_table, @function
make_decode_table:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -52[rbp], edi
	mov	DWORD PTR -56[rbp], esi
	mov	QWORD PTR -64[rbp], rdx
	mov	QWORD PTR -72[rbp], rcx
	mov	r12d, 0
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	eax, DWORD PTR -56[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -40[rbp], eax
	shr	DWORD PTR -40[rbp]
	mov	eax, r12d
	lea	r12d, 1[rax]
	jmp	.L6
.L15:
	mov	ebx, 0
	jmp	.L7
.L13:
	movsx	rdx, ebx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	r12b, al
	jne	.L8
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -48[rbp], 0
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -32[rbp], eax
.L9:
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -24[rbp]
	and	eax, 1
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	shr	DWORD PTR -24[rbp]
	sub	DWORD PTR -32[rbp], 1
	cmp	DWORD PTR -32[rbp], 0
	jne	.L9
	mov	eax, DWORD PTR -40[rbp]
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jbe	.L10
	mov	DWORD PTR -20[rbp], 1
	jmp	.L11
.L10:
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -32[rbp], eax
	movzx	eax, r12b
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -28[rbp], eax
.L12:
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	edx, ebx
	mov	WORD PTR [rax], dx
	mov	eax, DWORD PTR -28[rbp]
	add	DWORD PTR -48[rbp], eax
	sub	DWORD PTR -32[rbp], 1
	cmp	DWORD PTR -32[rbp], 0
	jne	.L12
.L8:
	add	ebx, 1
.L7:
	cmp	ebx, DWORD PTR -52[rbp]
	jl	.L13
.L11:
	shr	DWORD PTR -40[rbp]
	mov	eax, r12d
	lea	r12d, 1[rax]
.L6:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L14
	movzx	eax, r12b
	cmp	DWORD PTR -56[rbp], eax
	jge	.L15
.L14:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L16
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	je	.L16
	mov	ebx, DWORD PTR -36[rbp]
	jmp	.L17
.L19:
	mov	DWORD PTR -24[rbp], ebx
	mov	DWORD PTR -48[rbp], 0
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -32[rbp], eax
.L18:
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -24[rbp]
	and	eax, 1
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	shr	DWORD PTR -24[rbp]
	sub	DWORD PTR -32[rbp], 1
	cmp	DWORD PTR -32[rbp], 0
	jne	.L18
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 0
	add	ebx, 1
.L17:
	mov	eax, ebx
	cmp	DWORD PTR -44[rbp], eax
	ja	.L19
	mov	eax, DWORD PTR -44[rbp]
	shr	eax
	mov	DWORD PTR -28[rbp], eax
	sal	DWORD PTR -36[rbp], 16
	sal	DWORD PTR -44[rbp], 16
	mov	DWORD PTR -40[rbp], 32768
	jmp	.L20
.L29:
	mov	ebx, 0
	jmp	.L21
.L28:
	movsx	rdx, ebx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	r12b, al
	jne	.L22
	mov	eax, DWORD PTR -36[rbp]
	shr	eax, 16
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -48[rbp], 0
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -32[rbp], eax
.L23:
	mov	eax, DWORD PTR -48[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -24[rbp]
	and	eax, 1
	add	eax, edx
	mov	DWORD PTR -48[rbp], eax
	shr	DWORD PTR -24[rbp]
	sub	DWORD PTR -32[rbp], 1
	cmp	DWORD PTR -32[rbp], 0
	jne	.L23
	mov	DWORD PTR -32[rbp], 0
	jmp	.L24
.L26:
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L25
	mov	eax, DWORD PTR -28[rbp]
	add	eax, eax
	mov	eax, eax
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	eax, DWORD PTR -28[rbp]
	add	eax, eax
	add	eax, 1
	mov	eax, eax
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -28[rbp], edx
	mov	edx, DWORD PTR -48[rbp]
	lea	rcx, [rdx+rdx]
	mov	rdx, QWORD PTR -72[rbp]
	add	rdx, rcx
	mov	WORD PTR [rdx], ax
.L25:
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	add	eax, eax
	mov	DWORD PTR -48[rbp], eax
	mov	eax, 15
	sub	eax, DWORD PTR -32[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	and	eax, 1
	add	DWORD PTR -48[rbp], eax
	add	DWORD PTR -32[rbp], 1
.L24:
	movzx	eax, r12b
	sub	eax, DWORD PTR -56[rbp]
	cmp	DWORD PTR -32[rbp], eax
	jb	.L26
	mov	eax, DWORD PTR -48[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	edx, ebx
	mov	WORD PTR [rax], dx
	mov	eax, DWORD PTR -40[rbp]
	add	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jbe	.L22
	mov	DWORD PTR -20[rbp], 1
	jmp	.L27
.L22:
	add	ebx, 1
.L21:
	cmp	ebx, DWORD PTR -52[rbp]
	jl	.L28
.L27:
	shr	DWORD PTR -40[rbp]
	mov	eax, r12d
	lea	r12d, 1[rax]
.L20:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L16
	cmp	r12b, 16
	jbe	.L29
.L16:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	je	.L30
	mov	DWORD PTR -20[rbp], 1
.L30:
	mov	eax, DWORD PTR -20[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	make_decode_table, .-make_decode_table
	.globl	read_literal_table
	.type	read_literal_table, @function
read_literal_table:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 32
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	DWORD PTR -20[rbp], 0
	mov	r12d, DWORD PTR global_control[rip]
	mov	ebx, DWORD PTR global_shift[rip]
	test	ebx, ebx
	jns	.L33
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L33:
	mov	eax, r12d
	and	eax, 7
	mov	DWORD PTR decrunch_method[rip], eax
	shr	r12d, 3
	sub	ebx, 3
	test	ebx, ebx
	jns	.L34
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L34:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L35
	mov	eax, DWORD PTR decrunch_method[rip]
	cmp	eax, 3
	jne	.L35
	mov	DWORD PTR -44[rbp], 0
	jmp	.L36
.L38:
	mov	eax, r12d
	and	eax, 7
	mov	ecx, eax
	mov	eax, DWORD PTR -44[rbp]
	lea	rdx, offset_len[rip]
	mov	BYTE PTR [rax+rdx], cl
	shr	r12d, 3
	sub	ebx, 3
	test	ebx, ebx
	jns	.L37
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L37:
	add	DWORD PTR -44[rbp], 1
.L36:
	cmp	DWORD PTR -44[rbp], 7
	jbe	.L38
	lea	rcx, offset_table[rip]
	lea	rdx, offset_len[rip]
	mov	esi, 7
	mov	edi, 8
	call	make_decode_table
	mov	DWORD PTR -20[rbp], eax
.L35:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L39
	mov	eax, r12d
	sal	eax, 16
	and	eax, 16711680
	mov	DWORD PTR decrunch_length[rip], eax
	shr	r12d, 8
	sub	ebx, 8
	test	ebx, ebx
	jns	.L40
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L40:
	mov	eax, r12d
	sal	eax, 8
	movzx	edx, ax
	mov	eax, DWORD PTR decrunch_length[rip]
	add	eax, edx
	mov	DWORD PTR decrunch_length[rip], eax
	shr	r12d, 8
	sub	ebx, 8
	test	ebx, ebx
	jns	.L41
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L41:
	movzx	edx, r12b
	mov	eax, DWORD PTR decrunch_length[rip]
	add	eax, edx
	mov	DWORD PTR decrunch_length[rip], eax
	shr	r12d, 8
	sub	ebx, 8
	test	ebx, ebx
	jns	.L39
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L39:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L42
	mov	eax, DWORD PTR decrunch_method[rip]
	cmp	eax, 1
	je	.L42
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -28[rbp], 1
	mov	DWORD PTR -24[rbp], 256
.L73:
	mov	DWORD PTR -44[rbp], 0
	jmp	.L43
.L45:
	mov	eax, r12d
	and	eax, 15
	mov	ecx, eax
	mov	eax, DWORD PTR -44[rbp]
	lea	rdx, huffman20_len[rip]
	mov	BYTE PTR [rax+rdx], cl
	shr	r12d, 4
	sub	ebx, 4
	test	ebx, ebx
	jns	.L44
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L44:
	add	DWORD PTR -44[rbp], 1
.L43:
	cmp	DWORD PTR -44[rbp], 19
	jbe	.L45
	lea	rcx, huffman20_table[rip]
	lea	rdx, huffman20_len[rip]
	mov	esi, 6
	mov	edi, 20
	call	make_decode_table
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L75
.L46:
	mov	eax, r12d
	and	eax, 63
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, huffman20_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 19
	jbe	.L48
.L50:
	mov	eax, r12d
	shr	eax, 6
	and	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, huffman20_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -40[rbp], eax
	mov	eax, ebx
	lea	ebx, -1[rax]
	test	eax, eax
	jne	.L49
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	r12d, eax
.L49:
	shr	r12d
	cmp	DWORD PTR -40[rbp], 19
	ja	.L50
	mov	DWORD PTR -44[rbp], 6
	jmp	.L51
.L48:
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, huffman20_len[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
.L51:
	mov	eax, DWORD PTR -44[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -44[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L52
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L52:
	cmp	DWORD PTR -40[rbp], 18
	ja	.L53
	cmp	DWORD PTR -40[rbp], 17
	jnb	.L54
	jmp	.L55
.L53:
	cmp	DWORD PTR -40[rbp], 19
	je	.L56
	jmp	.L55
.L54:
	cmp	DWORD PTR -40[rbp], 17
	jne	.L57
	mov	DWORD PTR -44[rbp], 4
	mov	DWORD PTR -32[rbp], 3
	jmp	.L58
.L57:
	mov	eax, 6
	sub	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	DWORD PTR -32[rbp], 19
.L58:
	mov	eax, DWORD PTR -44[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, table_three[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, r12d
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	add	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -44[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L60
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
	jmp	.L60
.L62:
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -36[rbp], edx
	mov	edx, eax
	lea	rax, literal_len[rip]
	mov	BYTE PTR [rdx+rax], 0
.L60:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jnb	.L76
	mov	eax, DWORD PTR -32[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -32[rbp], edx
	test	eax, eax
	jne	.L62
	jmp	.L76
.L56:
	mov	edx, r12d
	and	edx, 1
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	add	eax, 3
	mov	DWORD PTR -32[rbp], eax
	mov	eax, ebx
	lea	ebx, -1[rax]
	test	eax, eax
	jne	.L64
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	r12d, eax
.L64:
	shr	r12d
	mov	eax, r12d
	and	eax, 63
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, huffman20_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 19
	jbe	.L65
.L67:
	mov	eax, r12d
	shr	eax, 6
	and	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, huffman20_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -40[rbp], eax
	mov	eax, ebx
	lea	ebx, -1[rax]
	test	eax, eax
	jne	.L66
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	r12d, eax
.L66:
	shr	r12d
	cmp	DWORD PTR -40[rbp], 19
	ja	.L67
	mov	DWORD PTR -44[rbp], 6
	jmp	.L68
.L65:
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, huffman20_len[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
.L68:
	mov	eax, DWORD PTR -44[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -44[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L69
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L69:
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, literal_len[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	sub	eax, DWORD PTR -40[rbp]
	add	eax, 17
	mov	edx, eax
	lea	rax, table_four[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -40[rbp], eax
	jmp	.L70
.L72:
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -36[rbp], edx
	mov	edx, DWORD PTR -40[rbp]
	mov	ecx, edx
	mov	edx, eax
	lea	rax, literal_len[rip]
	mov	BYTE PTR [rdx+rax], cl
.L70:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jnb	.L77
	mov	eax, DWORD PTR -32[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -32[rbp], edx
	test	eax, eax
	jne	.L72
	jmp	.L77
.L55:
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, literal_len[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	sub	eax, DWORD PTR -40[rbp]
	add	eax, 17
	mov	edx, eax
	lea	rax, table_four[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -36[rbp], edx
	mov	edx, DWORD PTR -40[rbp]
	mov	ecx, edx
	mov	edx, eax
	lea	rax, literal_len[rip]
	mov	BYTE PTR [rdx+rax], cl
	jmp	.L63
.L76:
	nop
	jmp	.L63
.L77:
	nop
.L63:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jb	.L46
	sub	DWORD PTR -28[rbp], 1
	add	DWORD PTR -24[rbp], 512
	cmp	DWORD PTR -24[rbp], 768
	je	.L73
	jmp	.L47
.L75:
	nop
.L47:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L42
	lea	rcx, literal_table[rip]
	lea	rdx, literal_len[rip]
	mov	esi, 12
	mov	edi, 768
	call	make_decode_table
	mov	DWORD PTR -20[rbp], eax
.L42:
	mov	DWORD PTR global_control[rip], r12d
	mov	DWORD PTR global_shift[rip], ebx
	mov	eax, DWORD PTR -20[rbp]
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	read_literal_table, .-read_literal_table
	.globl	decrunch
	.type	decrunch, @function
decrunch:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	r12d, DWORD PTR global_control[rip]
	mov	ebx, DWORD PTR global_shift[rip]
.L95:
	mov	eax, r12d
	and	eax, 4095
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, literal_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -32[rbp], eax
	cmp	DWORD PTR -32[rbp], 767
	jbe	.L79
	shr	r12d, 12
	sub	ebx, 12
	test	ebx, ebx
	jns	.L82
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L82:
	mov	edx, r12d
	and	edx, 1
	mov	eax, DWORD PTR -32[rbp]
	add	eax, eax
	add	eax, edx
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, literal_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -32[rbp], eax
	mov	eax, ebx
	lea	ebx, -1[rax]
	test	eax, eax
	jne	.L81
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	r12d, eax
.L81:
	shr	r12d
	cmp	DWORD PTR -32[rbp], 767
	ja	.L82
	jmp	.L83
.L79:
	mov	eax, DWORD PTR -32[rbp]
	lea	rdx, literal_len[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -36[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L83
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L83:
	cmp	DWORD PTR -32[rbp], 255
	ja	.L84
	mov	rax, QWORD PTR destination[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR destination[rip], rdx
	mov	edx, DWORD PTR -32[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L85
.L84:
	sub	DWORD PTR -32[rbp], 256
	mov	eax, DWORD PTR -32[rbp]
	and	eax, 31
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, table_two[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, table_one[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 2
	jbe	.L86
	mov	eax, DWORD PTR decrunch_method[rip]
	cmp	eax, 3
	jne	.L86
	sub	DWORD PTR -36[rbp], 3
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, table_three[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, r12d
	sal	eax, 3
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -36[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L87
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L87:
	mov	eax, r12d
	and	eax, 127
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, offset_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movzx	eax, ax
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, offset_len[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	jmp	.L88
.L86:
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, table_three[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, r12d
	add	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	jne	.L88
	mov	eax, DWORD PTR last_offset[rip]
	mov	DWORD PTR -28[rbp], eax
.L88:
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -36[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L89
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L89:
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR last_offset[rip], eax
	mov	eax, DWORD PTR -32[rbp]
	shr	eax, 5
	and	eax, 15
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, table_two[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	eax, 3
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, table_one[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, table_three[rip]
	mov	eax, DWORD PTR [rdx+rax]
	and	eax, r12d
	add	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	ecx, eax
	shr	r12d, cl
	mov	eax, ebx
	sub	eax, DWORD PTR -36[rbp]
	mov	ebx, eax
	test	ebx, ebx
	jns	.L90
	add	ebx, 16
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	lea	eax, 8[rbx]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	r12d, eax
	mov	rax, QWORD PTR source[rip]
	lea	rdx, 1[rax]
	mov	QWORD PTR source[rip], rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, ebx
	sal	eax, cl
	add	r12d, eax
.L90:
	mov	eax, DWORD PTR last_offset[rip]
	mov	edx, eax
	lea	rax, decrunch_buffer[rip]
	add	rdx, rax
	mov	rax, QWORD PTR destination[rip]
	cmp	rdx, rax
	jnb	.L91
	mov	rax, QWORD PTR destination[rip]
	mov	edx, DWORD PTR last_offset[rip]
	mov	edx, edx
	neg	rdx
	add	rax, rdx
	jmp	.L92
.L91:
	mov	rax, QWORD PTR destination[rip]
	mov	edx, DWORD PTR last_offset[rip]
	mov	ecx, edx
	mov	edx, 65536
	sub	rdx, rcx
	add	rax, rdx
.L92:
	mov	QWORD PTR -24[rbp], rax
.L93:
	mov	rdx, QWORD PTR -24[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR destination[rip]
	lea	rcx, 1[rax]
	mov	QWORD PTR destination[rip], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -28[rbp], 1
	cmp	DWORD PTR -28[rbp], 0
	jne	.L93
.L85:
	mov	rdx, QWORD PTR destination[rip]
	mov	rax, QWORD PTR destination_end[rip]
	cmp	rdx, rax
	jnb	.L94
	mov	rdx, QWORD PTR source[rip]
	mov	rax, QWORD PTR source_end[rip]
	cmp	rdx, rax
	jb	.L95
.L94:
	mov	DWORD PTR global_control[rip], r12d
	mov	DWORD PTR global_shift[rip], ebx
	nop
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	decrunch, .-decrunch
	.section	.rodata
.LC16:
	.string	"wb"
.LC17:
	.string	"FOpen"
	.text
	.globl	open_output
	.type	open_output, @function
open_output:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L97
	mov	DWORD PTR -12[rbp], 0
	jmp	.L98
.L100:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 47
	jne	.L99
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 511
	mov	rdi, rax
	mov	eax, 0
	call	mkdir@PLT
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], 47
.L99:
	add	DWORD PTR -12[rbp], 1
.L98:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L100
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC16[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L97
	lea	rdi, .LC17[rip]
	call	perror@PLT
.L97:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	open_output, .-open_output
	.section	.rodata
.LC18:
	.string	"Extracting \"%s\"..."
.LC19:
	.string	"FRead(Data)"
.LC20:
	.string	"EOF: Data\n"
.LC21:
	.string	"FWrite"
.LC22:
	.string	"good"
.LC23:
	.string	"bad"
.LC24:
	.string	" crc %s\n"
	.text
	.globl	extract_normal
	.type	extract_normal, @function
extract_normal:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -24[rbp], 0
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR global_control[rip], 0
	mov	DWORD PTR global_shift[rip], -16
	mov	DWORD PTR last_offset[rip], 1
	mov	DWORD PTR unpack_size[rip], 0
	mov	DWORD PTR decrunch_length[rip], 0
	mov	DWORD PTR -40[rbp], 0
	jmp	.L103
.L104:
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, offset_len[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	DWORD PTR -40[rbp], 1
.L103:
	cmp	DWORD PTR -40[rbp], 7
	jbe	.L104
	mov	DWORD PTR -40[rbp], 0
	jmp	.L105
.L106:
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, literal_len[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	DWORD PTR -40[rbp], 1
.L105:
	cmp	DWORD PTR -40[rbp], 767
	jbe	.L106
	lea	rax, read_buffer[rip+16384]
	mov	QWORD PTR source[rip], rax
	mov	rax, QWORD PTR source[rip]
	sub	rax, 1024
	mov	QWORD PTR source_end[rip], rax
	lea	rax, decrunch_buffer[rip+65794]
	mov	QWORD PTR destination[rip], rax
	mov	rax, QWORD PTR destination[rip]
	mov	QWORD PTR destination_end[rip], rax
	mov	rax, QWORD PTR destination_end[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR filename_list[rip]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L107
.L130:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rsi, rax
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rdi, rax
	call	open_output
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR sum[rip], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR unpack_size[rip], eax
	jmp	.L108
.L125:
	mov	rax, QWORD PTR destination[rip]
	cmp	QWORD PTR -16[rbp], rax
	jne	.L109
	mov	rdx, QWORD PTR source[rip]
	mov	rax, QWORD PTR source_end[rip]
	cmp	rdx, rax
	jb	.L110
	lea	rax, read_buffer[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR source[rip]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, rdx
	add	eax, 16384
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	je	.L111
.L112:
	mov	rdx, QWORD PTR source[rip]
	lea	rax, 1[rdx]
	mov	QWORD PTR source[rip], rax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, 1[rax]
	mov	QWORD PTR -8[rbp], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -40[rbp], 1
	cmp	DWORD PTR -40[rbp], 0
	jne	.L112
.L111:
	lea	rax, read_buffer[rip]
	mov	QWORD PTR source[rip], rax
	mov	rax, QWORD PTR source[rip]
	sub	rax, QWORD PTR -8[rbp]
	add	eax, 16384
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR pack_size[rip]
	cmp	DWORD PTR -40[rbp], eax
	jbe	.L113
	mov	eax, DWORD PTR pack_size[rip]
	mov	DWORD PTR -40[rbp], eax
.L113:
	mov	edx, DWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fread@PLT
	mov	edx, DWORD PTR -40[rbp]
	cmp	rax, rdx
	je	.L114
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L115
	lea	rdi, .LC19[rip]
	call	perror@PLT
	jmp	.L116
.L115:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 10
	mov	esi, 1
	lea	rdi, .LC20[rip]
	call	fwrite@PLT
.L116:
	mov	DWORD PTR -36[rbp], 1
	jmp	.L117
.L114:
	mov	eax, DWORD PTR pack_size[rip]
	sub	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR pack_size[rip], eax
	mov	eax, DWORD PTR -40[rbp]
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR source[rip]
	cmp	QWORD PTR -8[rbp], rax
	jbe	.L132
.L110:
	mov	eax, DWORD PTR decrunch_length[rip]
	test	eax, eax
	jne	.L118
	mov	eax, 0
	call	read_literal_table
	test	eax, eax
	jne	.L133
.L118:
	mov	rax, QWORD PTR destination[rip]
	lea	rdx, decrunch_buffer[rip+65794]
	cmp	rax, rdx
	jb	.L119
	mov	rax, QWORD PTR destination[rip]
	lea	rdx, decrunch_buffer[rip]
	sub	rax, rdx
	sub	eax, 65536
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	je	.L120
	lea	rax, decrunch_buffer[rip]
	mov	QWORD PTR destination[rip], rax
	mov	rax, QWORD PTR destination[rip]
	add	rax, 65536
	mov	QWORD PTR -8[rbp], rax
.L121:
	mov	rdx, QWORD PTR -8[rbp]
	lea	rax, 1[rdx]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR destination[rip]
	lea	rcx, 1[rax]
	mov	QWORD PTR destination[rip], rcx
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -40[rbp], 1
	cmp	DWORD PTR -40[rbp], 0
	jne	.L121
.L120:
	mov	rax, QWORD PTR destination[rip]
	mov	QWORD PTR -16[rbp], rax
.L119:
	mov	rax, QWORD PTR destination[rip]
	mov	edx, DWORD PTR decrunch_length[rip]
	mov	edx, edx
	add	rax, rdx
	mov	QWORD PTR destination_end[rip], rax
	mov	rax, QWORD PTR destination_end[rip]
	lea	rdx, decrunch_buffer[rip+65794]
	cmp	rax, rdx
	jbe	.L122
	lea	rax, decrunch_buffer[rip+65794]
	mov	QWORD PTR destination_end[rip], rax
.L122:
	mov	rax, QWORD PTR destination[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, 0
	call	decrunch
	mov	edx, DWORD PTR decrunch_length[rip]
	mov	rax, QWORD PTR destination[rip]
	sub	rax, QWORD PTR -8[rbp]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR decrunch_length[rip], eax
.L109:
	mov	rax, QWORD PTR destination[rip]
	sub	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR unpack_size[rip]
	cmp	DWORD PTR -40[rbp], eax
	jbe	.L123
	mov	eax, DWORD PTR unpack_size[rip]
	mov	DWORD PTR -40[rbp], eax
.L123:
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	crc_calc
	cmp	QWORD PTR -24[rbp], 0
	je	.L124
	mov	edx, DWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	fwrite@PLT
	mov	edx, DWORD PTR -40[rbp]
	cmp	rax, rdx
	je	.L124
	lea	rdi, .LC21[rip]
	call	perror@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	QWORD PTR -24[rbp], 0
.L124:
	mov	eax, DWORD PTR unpack_size[rip]
	sub	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR unpack_size[rip], eax
	mov	eax, DWORD PTR -40[rbp]
	add	QWORD PTR -16[rbp], rax
.L108:
	mov	eax, DWORD PTR unpack_size[rip]
	test	eax, eax
	jne	.L125
	jmp	.L117
.L132:
	nop
	jmp	.L117
.L133:
	nop
.L117:
	cmp	QWORD PTR -24[rbp], 0
	je	.L126
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	fclose@PLT
	cmp	DWORD PTR -36[rbp], 0
	jne	.L126
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR 12[rax]
	mov	eax, DWORD PTR sum[rip]
	cmp	edx, eax
	jne	.L127
	lea	rax, .LC22[rip]
	jmp	.L128
.L127:
	lea	rax, .LC23[rip]
.L128:
	mov	rsi, rax
	lea	rdi, .LC24[rip]
	mov	eax, 0
	call	printf@PLT
.L126:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
.L107:
	cmp	DWORD PTR -36[rbp], 0
	jne	.L129
	cmp	QWORD PTR -32[rbp], 0
	jne	.L130
.L129:
	mov	eax, DWORD PTR -36[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	extract_normal, .-extract_normal
	.section	.rodata
.LC25:
	.string	"Storing \"%s\"..."
	.text
	.globl	extract_store
	.type	extract_store, @function
extract_store:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR filename_list[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L135
.L148:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 16
	mov	rsi, rax
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 16
	mov	rdi, rax
	call	open_output
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR sum[rip], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR unpack_size[rip], eax
	mov	edx, DWORD PTR unpack_size[rip]
	mov	eax, DWORD PTR pack_size[rip]
	cmp	edx, eax
	jbe	.L137
	mov	eax, DWORD PTR pack_size[rip]
	mov	DWORD PTR unpack_size[rip], eax
	jmp	.L137
.L143:
	mov	eax, DWORD PTR unpack_size[rip]
	mov	edx, 16384
	cmp	eax, 16384
	cmova	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, read_buffer[rip]
	call	fread@PLT
	mov	edx, DWORD PTR -20[rbp]
	cmp	rax, rdx
	je	.L138
	mov	edi, 10
	call	putchar@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	je	.L139
	lea	rdi, .LC19[rip]
	call	perror@PLT
	jmp	.L140
.L139:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 10
	mov	esi, 1
	lea	rdi, .LC20[rip]
	call	fwrite@PLT
.L140:
	mov	DWORD PTR -24[rbp], 1
	jmp	.L141
.L138:
	mov	eax, DWORD PTR pack_size[rip]
	sub	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR pack_size[rip], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	lea	rdi, read_buffer[rip]
	call	crc_calc
	cmp	QWORD PTR -8[rbp], 0
	je	.L142
	mov	eax, DWORD PTR -20[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, read_buffer[rip]
	call	fwrite@PLT
	mov	edx, DWORD PTR -20[rbp]
	cmp	rax, rdx
	je	.L142
	lea	rdi, .LC21[rip]
	call	perror@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	QWORD PTR -8[rbp], 0
.L142:
	mov	eax, DWORD PTR unpack_size[rip]
	sub	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR unpack_size[rip], eax
.L137:
	mov	eax, DWORD PTR unpack_size[rip]
	test	eax, eax
	jne	.L143
.L141:
	cmp	QWORD PTR -8[rbp], 0
	je	.L144
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	cmp	DWORD PTR -24[rbp], 0
	jne	.L144
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR 12[rax]
	mov	eax, DWORD PTR sum[rip]
	cmp	edx, eax
	jne	.L145
	lea	rax, .LC22[rip]
	jmp	.L146
.L145:
	lea	rax, .LC23[rip]
.L146:
	mov	rsi, rax
	lea	rdi, .LC24[rip]
	mov	eax, 0
	call	printf@PLT
.L144:
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
.L135:
	cmp	DWORD PTR -24[rbp], 0
	jne	.L147
	cmp	QWORD PTR -16[rbp], 0
	jne	.L148
.L147:
	mov	eax, DWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	extract_store, .-extract_store
	.section	.rodata
.LC26:
	.string	"Unknown \"%s\"\n"
	.text
	.globl	extract_unknown
	.type	extract_unknown, @function
extract_unknown:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -12[rbp], 0
	mov	rax, QWORD PTR filename_list[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L151
.L152:
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 16
	mov	rsi, rax
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
.L151:
	cmp	QWORD PTR -8[rbp], 0
	jne	.L152
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	extract_unknown, .-extract_unknown
	.section	.rodata
.LC27:
	.string	"FSeek(Data)"
.LC28:
	.string	"MAlloc(Filename_node)\n"
.LC29:
	.string	"CRC: Archive_Header\n"
.LC30:
	.string	"EOF: Header_Comment\n"
.LC31:
	.string	"FRead(Header_Comment)"
.LC32:
	.string	"EOF: Header_Filename\n"
.LC33:
	.string	"FRead(Header_Filename)"
.LC34:
	.string	"EOF: Archive_Header\n"
.LC35:
	.string	"FRead(Archive_Header)"
	.text
	.globl	extract_archive
	.type	extract_archive, @function
extract_archive:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -32[rbp], 1
	mov	QWORD PTR filename_list[rip], 0
	lea	rax, filename_list[rip]
	mov	QWORD PTR -24[rbp], rax
.L176:
	mov	DWORD PTR -36[rbp], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, rax
	mov	edx, 31
	mov	esi, 1
	lea	rdi, archive_header[rip]
	call	fread@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L155
	cmp	DWORD PTR -28[rbp], 0
	je	.L156
	cmp	DWORD PTR -28[rbp], 31
	jne	.L157
	mov	DWORD PTR sum[rip], 0
	movzx	eax, BYTE PTR archive_header[rip+29]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+28]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+27]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+26]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR crc[rip], eax
	mov	BYTE PTR archive_header[rip+29], 0
	mov	BYTE PTR archive_header[rip+28], 0
	mov	BYTE PTR archive_header[rip+27], 0
	mov	BYTE PTR archive_header[rip+26], 0
	mov	esi, 31
	lea	rdi, archive_header[rip]
	call	crc_calc
	movzx	eax, BYTE PTR archive_header[rip+30]
	movzx	eax, al
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, header_filename[rip]
	call	fread@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L158
	mov	eax, DWORD PTR -28[rbp]
	cmp	DWORD PTR -40[rbp], eax
	jne	.L159
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, header_filename[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, eax
	lea	rdi, header_filename[rip]
	call	crc_calc
	movzx	eax, BYTE PTR archive_header[rip+14]
	movzx	eax, al
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, header_comment[rip]
	call	fread@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L160
	mov	eax, DWORD PTR -28[rbp]
	cmp	DWORD PTR -40[rbp], eax
	jne	.L161
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, header_comment[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, eax
	lea	rdi, header_comment[rip]
	call	crc_calc
	mov	edx, DWORD PTR sum[rip]
	mov	eax, DWORD PTR crc[rip]
	cmp	edx, eax
	jne	.L162
	movzx	eax, BYTE PTR archive_header[rip+5]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+4]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+3]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+2]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR unpack_size[rip], eax
	movzx	eax, BYTE PTR archive_header[rip+9]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+8]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+7]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+6]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR pack_size[rip], eax
	movzx	eax, BYTE PTR archive_header[rip+11]
	mov	BYTE PTR pack_mode[rip], al
	movzx	eax, BYTE PTR archive_header[rip+25]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+24]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+23]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+22]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR crc[rip], eax
	mov	edi, 272
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L163
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	edx, DWORD PTR unpack_size[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	edx, DWORD PTR crc[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	DWORD PTR -40[rbp], 0
	jmp	.L164
.L165:
	add	DWORD PTR -40[rbp], 1
.L164:
	mov	eax, DWORD PTR -40[rbp]
	lea	rdx, header_filename[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	ecx, eax
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -40[rbp]
	mov	BYTE PTR 16[rdx+rax], cl
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 16[rdx+rax]
	test	al, al
	jne	.L165
	mov	eax, DWORD PTR pack_size[rip]
	test	eax, eax
	je	.L166
	movzx	eax, BYTE PTR pack_mode[rip]
	movzx	eax, al
	test	eax, eax
	je	.L167
	cmp	eax, 2
	je	.L168
	jmp	.L180
.L167:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	extract_store
	mov	DWORD PTR -36[rbp], eax
	jmp	.L170
.L168:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	extract_normal
	mov	DWORD PTR -36[rbp], eax
	jmp	.L170
.L180:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	extract_unknown
	mov	DWORD PTR -36[rbp], eax
	nop
.L170:
	cmp	DWORD PTR -36[rbp], 0
	jne	.L181
	mov	rax, QWORD PTR filename_list[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L173
.L174:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L173:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L174
	mov	QWORD PTR filename_list[rip], 0
	lea	rax, filename_list[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR pack_size[rip]
	mov	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	test	eax, eax
	je	.L175
	lea	rdi, .LC27[rip]
	call	perror@PLT
	jmp	.L172
.L166:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L175
.L163:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 22
	mov	esi, 1
	lea	rdi, .LC28[rip]
	call	fwrite@PLT
	jmp	.L175
.L162:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC29[rip]
	call	fwrite@PLT
	jmp	.L175
.L161:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC30[rip]
	call	fwrite@PLT
	jmp	.L175
.L160:
	lea	rdi, .LC31[rip]
	call	perror@PLT
	jmp	.L175
.L159:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 21
	mov	esi, 1
	lea	rdi, .LC32[rip]
	call	fwrite@PLT
	jmp	.L175
.L158:
	lea	rdi, .LC33[rip]
	call	perror@PLT
	jmp	.L175
.L157:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC34[rip]
	call	fwrite@PLT
	jmp	.L175
.L156:
	mov	DWORD PTR -32[rbp], 0
	jmp	.L175
.L155:
	lea	rdi, .LC35[rip]
	call	perror@PLT
.L175:
	cmp	DWORD PTR -36[rbp], 0
	je	.L176
	jmp	.L172
.L181:
	nop
.L172:
	mov	rax, QWORD PTR filename_list[rip]
	mov	QWORD PTR -16[rbp], rax
	jmp	.L177
.L178:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	free@PLT
.L177:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L178
	mov	eax, DWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	extract_archive, .-extract_archive
	.section	.rodata
	.align 8
.LC36:
	.string	"Unpacked   Packed Time     Date        Attrib   Name"
	.align 8
.LC37:
	.string	"-------- -------- -------- ----------- -------- ----"
.LC38:
	.string	"%8ld "
.LC39:
	.string	"     n/a "
.LC40:
	.string	"%02ld:%02ld:%02ld "
.LC41:
	.string	"%2ld-%s-%4ld "
.LC42:
	.string	"%c%c%c%c%c%c%c%c "
.LC43:
	.string	"\"%s\"\n"
.LC44:
	.string	": \"%s\"\n"
.LC45:
	.string	"%8ld %8ld Merged\n"
.LC46:
	.string	"FSeek()"
.LC47:
	.string	"%8ld %8ld "
.LC48:
	.string	""
.LC49:
	.string	"s"
.LC50:
	.string	"%ld file%s\n"
	.text
	.globl	view_archive
	.type	view_archive, @function
view_archive:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -32[rbp], 0
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -12[rbp], 1
	lea	rdi, .LC36[rip]
	call	puts@PLT
	lea	rdi, .LC37[rip]
	call	puts@PLT
.L216:
	mov	DWORD PTR -16[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, rax
	mov	edx, 31
	mov	esi, 1
	lea	rdi, archive_header[rip]
	call	fread@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L183
	cmp	DWORD PTR -8[rbp], 0
	je	.L184
	cmp	DWORD PTR -8[rbp], 31
	jne	.L185
	mov	DWORD PTR sum[rip], 0
	movzx	eax, BYTE PTR archive_header[rip+29]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+28]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+27]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+26]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR crc[rip], eax
	mov	BYTE PTR archive_header[rip+29], 0
	mov	BYTE PTR archive_header[rip+28], 0
	mov	BYTE PTR archive_header[rip+27], 0
	mov	BYTE PTR archive_header[rip+26], 0
	mov	esi, 31
	lea	rdi, archive_header[rip]
	call	crc_calc
	movzx	eax, BYTE PTR archive_header[rip+30]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, header_filename[rip]
	call	fread@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L186
	mov	eax, DWORD PTR -8[rbp]
	cmp	DWORD PTR -4[rbp], eax
	jne	.L187
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, header_filename[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, header_filename[rip]
	call	crc_calc
	movzx	eax, BYTE PTR archive_header[rip+14]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 1
	lea	rdi, header_comment[rip]
	call	fread@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L188
	mov	eax, DWORD PTR -8[rbp]
	cmp	DWORD PTR -4[rbp], eax
	jne	.L189
	mov	eax, DWORD PTR -4[rbp]
	lea	rdx, header_comment[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, header_comment[rip]
	call	crc_calc
	mov	edx, DWORD PTR sum[rip]
	mov	eax, DWORD PTR crc[rip]
	cmp	edx, eax
	jne	.L190
	movzx	eax, BYTE PTR archive_header[rip]
	mov	BYTE PTR attributes[rip], al
	movzx	eax, BYTE PTR archive_header[rip+5]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+4]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+3]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+2]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR unpack_size[rip], eax
	movzx	eax, BYTE PTR archive_header[rip+9]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+8]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+7]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+6]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR pack_size[rip], eax
	movzx	eax, BYTE PTR archive_header[rip+18]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+19]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+20]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR archive_header[rip+21]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 17
	and	eax, 63
	add	eax, 1970
	mov	DWORD PTR year[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 23
	and	eax, 15
	mov	DWORD PTR month[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 27
	mov	DWORD PTR day[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 12
	and	eax, 31
	mov	DWORD PTR hour[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 6
	and	eax, 63
	mov	DWORD PTR minute[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 63
	mov	DWORD PTR second[rip], eax
	mov	eax, DWORD PTR pack_size[rip]
	add	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR unpack_size[rip]
	add	DWORD PTR -28[rbp], eax
	add	DWORD PTR -24[rbp], 1
	mov	eax, DWORD PTR unpack_size[rip]
	add	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR unpack_size[rip]
	mov	esi, eax
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR archive_header[rip+12]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L191
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L192
.L191:
	mov	eax, DWORD PTR pack_size[rip]
	mov	esi, eax
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	printf@PLT
.L192:
	mov	ecx, DWORD PTR second[rip]
	mov	edx, DWORD PTR minute[rip]
	mov	eax, DWORD PTR hour[rip]
	mov	esi, eax
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	printf@PLT
	mov	ecx, DWORD PTR year[rip]
	mov	eax, DWORD PTR month[rip]
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, month_str[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR day[rip]
	mov	esi, eax
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L193
	mov	r8d, 100
	jmp	.L194
.L193:
	mov	r8d, 45
.L194:
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 8
	test	eax, eax
	je	.L195
	mov	edi, 101
	jmp	.L196
.L195:
	mov	edi, 45
.L196:
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 2
	test	eax, eax
	je	.L197
	mov	esi, 119
	jmp	.L198
.L197:
	mov	esi, 45
.L198:
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L199
	mov	r9d, 114
	jmp	.L200
.L199:
	mov	r9d, 45
.L200:
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 16
	test	eax, eax
	je	.L201
	mov	r10d, 97
	jmp	.L202
.L201:
	mov	r10d, 45
.L202:
	movzx	eax, BYTE PTR attributes[rip]
	test	al, al
	jns	.L203
	mov	ecx, 112
	jmp	.L204
.L203:
	mov	ecx, 45
.L204:
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 64
	test	eax, eax
	je	.L205
	mov	edx, 115
	jmp	.L206
.L205:
	mov	edx, 45
.L206:
	movzx	eax, BYTE PTR attributes[rip]
	movzx	eax, al
	and	eax, 32
	test	eax, eax
	je	.L207
	mov	eax, 104
	jmp	.L208
.L207:
	mov	eax, 45
.L208:
	sub	rsp, 8
	push	r8
	push	rdi
	push	rsi
	mov	r8d, r10d
	mov	esi, eax
	lea	rdi, .LC42[rip]
	mov	eax, 0
	call	printf@PLT
	add	rsp, 32
	lea	rsi, header_filename[rip]
	lea	rdi, .LC43[rip]
	mov	eax, 0
	call	printf@PLT
	movzx	eax, BYTE PTR header_comment[rip]
	test	al, al
	je	.L209
	lea	rsi, header_comment[rip]
	lea	rdi, .LC44[rip]
	mov	eax, 0
	call	printf@PLT
.L209:
	movzx	eax, BYTE PTR archive_header[rip+12]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L210
	mov	eax, DWORD PTR pack_size[rip]
	test	eax, eax
	je	.L210
	mov	edx, DWORD PTR pack_size[rip]
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	lea	rdi, .LC45[rip]
	mov	eax, 0
	call	printf@PLT
.L210:
	mov	eax, DWORD PTR pack_size[rip]
	test	eax, eax
	je	.L211
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR pack_size[rip]
	mov	ecx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	test	eax, eax
	jne	.L212
	mov	DWORD PTR -16[rbp], 0
	jmp	.L213
.L212:
	lea	rdi, .LC46[rip]
	call	perror@PLT
	jmp	.L213
.L211:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L213
.L190:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC29[rip]
	call	fwrite@PLT
	jmp	.L213
.L189:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC30[rip]
	call	fwrite@PLT
	jmp	.L213
.L188:
	lea	rdi, .LC31[rip]
	call	perror@PLT
	jmp	.L213
.L187:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 21
	mov	esi, 1
	lea	rdi, .LC32[rip]
	call	fwrite@PLT
	jmp	.L213
.L186:
	lea	rdi, .LC33[rip]
	call	perror@PLT
	jmp	.L213
.L185:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC34[rip]
	call	fwrite@PLT
	jmp	.L213
.L184:
	lea	rdi, .LC37[rip]
	call	puts@PLT
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, eax
	lea	rdi, .LC47[rip]
	mov	eax, 0
	call	printf@PLT
	cmp	DWORD PTR -24[rbp], 1
	jne	.L214
	lea	rax, .LC48[rip]
	jmp	.L215
.L214:
	lea	rax, .LC49[rip]
.L215:
	mov	ecx, DWORD PTR -24[rbp]
	mov	rdx, rax
	mov	esi, ecx
	lea	rdi, .LC50[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -12[rbp], 0
	jmp	.L213
.L183:
	lea	rdi, .LC35[rip]
	call	perror@PLT
.L213:
	cmp	DWORD PTR -16[rbp], 0
	je	.L216
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	view_archive, .-view_archive
	.section	.rodata
.LC51:
	.string	"rb"
.LC52:
	.string	"FOpen(Archive)"
.LC53:
	.string	"Info_Header: Bad ID\n"
.LC54:
	.string	"EOF: Info_Header\n"
.LC55:
	.string	"FRead(Info_Header)"
	.text
	.globl	process_archive
	.type	process_archive, @function
process_archive:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -16[rbp], 1
	cmp	QWORD PTR -24[rbp], 0
	jne	.L219
	mov	rax, QWORD PTR stdin[rip]
	mov	QWORD PTR -8[rbp], rax
	jmp	.L220
.L219:
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC51[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L220
	lea	rdi, .LC52[rip]
	call	perror@PLT
	mov	eax, DWORD PTR -16[rbp]
	jmp	.L221
.L220:
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, rax
	mov	edx, 10
	mov	esi, 1
	lea	rdi, info_header[rip]
	call	fread@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	ferror@PLT
	test	eax, eax
	jne	.L222
	cmp	DWORD PTR -12[rbp], 10
	jne	.L223
	movzx	eax, BYTE PTR info_header[rip]
	cmp	al, 76
	jne	.L224
	movzx	eax, BYTE PTR info_header[rip+1]
	cmp	al, 90
	jne	.L224
	movzx	eax, BYTE PTR info_header[rip+2]
	cmp	al, 88
	jne	.L224
	mov	eax, DWORD PTR mode[rip]
	cmp	eax, 1
	je	.L225
	cmp	eax, 2
	je	.L226
	jmp	.L229
.L225:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	extract_archive
	mov	DWORD PTR -16[rbp], eax
	jmp	.L227
.L226:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	view_archive
	mov	DWORD PTR -16[rbp], eax
	nop
.L227:
	jmp	.L229
.L224:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 20
	mov	esi, 1
	lea	rdi, .LC53[rip]
	call	fwrite@PLT
	jmp	.L229
.L223:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 17
	mov	esi, 1
	lea	rdi, .LC54[rip]
	call	fwrite@PLT
	jmp	.L229
.L222:
	lea	rdi, .LC55[rip]
	call	perror@PLT
.L229:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	eax, DWORD PTR -16[rbp]
.L221:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	process_archive, .-process_archive
	.section	.rodata
.LC56:
	.string	"vxc"
.LC57:
	.string	"\nReading from stdin...\n"
.LC58:
	.string	"\nArchive \"%s\"...\n\n"
	.align 8
.LC59:
	.string	"Usage: unlzx [-v][-x][-c] [archive...]\n"
	.align 8
.LC60:
	.string	"\t-c : extract/list from stdin\n"
.LC61:
	.string	"\t-v : list archive(s)\n"
.LC62:
	.string	"\t-x : extract (default)\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR mode[rip], 1
	jmp	.L231
.L236:
	cmp	DWORD PTR -4[rbp], 120
	je	.L232
	cmp	DWORD PTR -4[rbp], 120
	jg	.L231
	cmp	DWORD PTR -4[rbp], 118
	je	.L233
	cmp	DWORD PTR -4[rbp], 118
	jg	.L231
	cmp	DWORD PTR -4[rbp], 63
	je	.L234
	cmp	DWORD PTR -4[rbp], 99
	je	.L235
	jmp	.L231
.L233:
	mov	DWORD PTR mode[rip], 2
	jmp	.L231
.L232:
	mov	DWORD PTR mode[rip], 1
	jmp	.L231
.L235:
	mov	DWORD PTR -8[rbp], 1
	jmp	.L231
.L234:
	mov	DWORD PTR -12[rbp], 1
	nop
.L231:
	mov	rcx, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR -20[rbp]
	lea	rdx, .LC56[rip]
	mov	rsi, rcx
	mov	edi, eax
	mov	eax, 0
	call	getopt@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L236
	cmp	DWORD PTR -8[rbp], 0
	jne	.L237
	mov	eax, DWORD PTR optind[rip]
	cmp	DWORD PTR -20[rbp], eax
	jg	.L237
	mov	DWORD PTR -12[rbp], 1
.L237:
	cmp	DWORD PTR -12[rbp], 0
	jne	.L238
	cmp	DWORD PTR -8[rbp], 0
	je	.L239
	lea	rdi, .LC57[rip]
	call	puts@PLT
	mov	edi, 0
	call	process_archive
	mov	DWORD PTR -12[rbp], 0
.L239:
	mov	edx, DWORD PTR optind[rip]
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, edx
	cmp	eax, 1
	jle	.L240
	jmp	.L241
.L242:
	mov	eax, DWORD PTR optind[rip]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rsi, rax
	lea	rdi, .LC58[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR optind[rip]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	process_archive
	mov	eax, DWORD PTR optind[rip]
	add	eax, 1
	mov	DWORD PTR optind[rip], eax
.L241:
	mov	eax, DWORD PTR optind[rip]
	cmp	DWORD PTR -20[rbp], eax
	jg	.L242
	mov	DWORD PTR -12[rbp], 0
	jmp	.L243
.L240:
	mov	eax, DWORD PTR optind[rip]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	process_archive
	mov	DWORD PTR -12[rbp], eax
	jmp	.L243
.L238:
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 39
	mov	esi, 1
	lea	rdi, .LC59[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 30
	mov	esi, 1
	lea	rdi, .LC60[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 22
	mov	esi, 1
	lea	rdi, .LC61[rip]
	call	fwrite@PLT
	mov	rax, QWORD PTR stderr[rip]
	mov	rcx, rax
	mov	edx, 24
	mov	esi, 1
	lea	rdi, .LC62[rip]
	call	fwrite@PLT
	mov	DWORD PTR -12[rbp], 2
.L243:
	mov	eax, DWORD PTR -12[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"19700.c"
	.text
	.section	.rodata
	.align	2
	.type	VERSION, %object
	.size	VERSION, 26
VERSION:
	.ascii	"$VER: unlzx 1.1 (03.4.01)\000"
	.comm	mode,4,4
	.comm	info_header,10,4
	.comm	archive_header,31,4
	.comm	header_filename,256,4
	.comm	header_comment,256,4
	.comm	pack_size,4,4
	.comm	unpack_size,4,4
	.comm	crc,4,4
	.comm	year,4,4
	.comm	month,4,4
	.comm	day,4,4
	.comm	hour,4,4
	.comm	minute,4,4
	.comm	second,4,4
	.comm	attributes,1,1
	.comm	pack_mode,1,1
	.comm	filename_list,4,4
	.comm	read_buffer,16384,4
	.comm	decrunch_buffer,66052,4
	.comm	source,4,4
	.comm	destination,4,4
	.comm	source_end,4,4
	.comm	destination_end,4,4
	.comm	decrunch_method,4,4
	.comm	decrunch_length,4,4
	.comm	last_offset,4,4
	.comm	global_control,4,4
	.comm	global_shift,4,4
	.comm	offset_len,8,4
	.comm	offset_table,256,4
	.comm	huffman20_len,20,4
	.comm	huffman20_table,192,4
	.comm	literal_len,768,4
	.comm	literal_table,10240,4
	.align	2
.LC0:
	.ascii	"jan\000"
	.align	2
.LC1:
	.ascii	"feb\000"
	.align	2
.LC2:
	.ascii	"mar\000"
	.align	2
.LC3:
	.ascii	"apr\000"
	.align	2
.LC4:
	.ascii	"may\000"
	.align	2
.LC5:
	.ascii	"jun\000"
	.align	2
.LC6:
	.ascii	"jul\000"
	.align	2
.LC7:
	.ascii	"aug\000"
	.align	2
.LC8:
	.ascii	"sep\000"
	.align	2
.LC9:
	.ascii	"oct\000"
	.align	2
.LC10:
	.ascii	"nov\000"
	.align	2
.LC11:
	.ascii	"dec\000"
	.align	2
.LC12:
	.ascii	"?13\000"
	.align	2
.LC13:
	.ascii	"?14\000"
	.align	2
.LC14:
	.ascii	"?15\000"
	.align	2
.LC15:
	.ascii	"?16\000"
	.data
	.align	2
	.type	month_str, %object
	.size	month_str, 64
month_str:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.comm	sum,4,4
	.section	.rodata
	.align	2
	.type	crc_table, %object
	.size	crc_table, 1024
crc_table:
	.word	0
	.word	1996959894
	.word	-301047508
	.word	-1727442502
	.word	124634137
	.word	1886057615
	.word	-379345611
	.word	-1637575261
	.word	249268274
	.word	2044508324
	.word	-522852066
	.word	-1747789432
	.word	162941995
	.word	2125561021
	.word	-407360249
	.word	-1866523247
	.word	498536548
	.word	1789927666
	.word	-205950648
	.word	-2067906082
	.word	450548861
	.word	1843258603
	.word	-187386543
	.word	-2083289657
	.word	325883990
	.word	1684777152
	.word	-43845254
	.word	-1973040660
	.word	335633487
	.word	1661365465
	.word	-99664541
	.word	-1928851979
	.word	997073096
	.word	1281953886
	.word	-715111964
	.word	-1570279054
	.word	1006888145
	.word	1258607687
	.word	-770865667
	.word	-1526024853
	.word	901097722
	.word	1119000684
	.word	-608450090
	.word	-1396901568
	.word	853044451
	.word	1172266101
	.word	-589951537
	.word	-1412350631
	.word	651767980
	.word	1373503546
	.word	-925412992
	.word	-1076862698
	.word	565507253
	.word	1454621731
	.word	-809855591
	.word	-1195530993
	.word	671266974
	.word	1594198024
	.word	-972236366
	.word	-1324619484
	.word	795835527
	.word	1483230225
	.word	-1050600021
	.word	-1234817731
	.word	1994146192
	.word	31158534
	.word	-1731059524
	.word	-271249366
	.word	1907459465
	.word	112637215
	.word	-1614814043
	.word	-390540237
	.word	2013776290
	.word	251722036
	.word	-1777751922
	.word	-519137256
	.word	2137656763
	.word	141376813
	.word	-1855689577
	.word	-429695999
	.word	1802195444
	.word	476864866
	.word	-2056965928
	.word	-228458418
	.word	1812370925
	.word	453092731
	.word	-2113342271
	.word	-183516073
	.word	1706088902
	.word	314042704
	.word	-1950435094
	.word	-54949764
	.word	1658658271
	.word	366619977
	.word	-1932296973
	.word	-69972891
	.word	1303535960
	.word	984961486
	.word	-1547960204
	.word	-725929758
	.word	1256170817
	.word	1037604311
	.word	-1529756563
	.word	-740887301
	.word	1131014506
	.word	879679996
	.word	-1385723834
	.word	-631195440
	.word	1141124467
	.word	855842277
	.word	-1442165665
	.word	-586318647
	.word	1342533948
	.word	654459306
	.word	-1106571248
	.word	-921952122
	.word	1466479909
	.word	544179635
	.word	-1184443383
	.word	-832445281
	.word	1591671054
	.word	702138776
	.word	-1328506846
	.word	-942167884
	.word	1504918807
	.word	783551873
	.word	-1212326853
	.word	-1061524307
	.word	-306674912
	.word	-1698712650
	.word	62317068
	.word	1957810842
	.word	-355121351
	.word	-1647151185
	.word	81470997
	.word	1943803523
	.word	-480048366
	.word	-1805370492
	.word	225274430
	.word	2053790376
	.word	-468791541
	.word	-1828061283
	.word	167816743
	.word	2097651377
	.word	-267414716
	.word	-2029476910
	.word	503444072
	.word	1762050814
	.word	-144550051
	.word	-2140837941
	.word	426522225
	.word	1852507879
	.word	-19653770
	.word	-1982649376
	.word	282753626
	.word	1742555852
	.word	-105259153
	.word	-1900089351
	.word	397917763
	.word	1622183637
	.word	-690576408
	.word	-1580100738
	.word	953729732
	.word	1340076626
	.word	-776247311
	.word	-1497606297
	.word	1068828381
	.word	1219638859
	.word	-670225446
	.word	-1358292148
	.word	906185462
	.word	1090812512
	.word	-547295293
	.word	-1469587627
	.word	829329135
	.word	1181335161
	.word	-882789492
	.word	-1134132454
	.word	628085408
	.word	1382605366
	.word	-871598187
	.word	-1156888829
	.word	570562233
	.word	1426400815
	.word	-977650754
	.word	-1296233688
	.word	733239954
	.word	1555261956
	.word	-1026031705
	.word	-1244606671
	.word	752459403
	.word	1541320221
	.word	-1687895376
	.word	-328994266
	.word	1969922972
	.word	40735498
	.word	-1677130071
	.word	-351390145
	.word	1913087877
	.word	83908371
	.word	-1782625662
	.word	-491226604
	.word	2075208622
	.word	213261112
	.word	-1831694693
	.word	-438977011
	.word	2094854071
	.word	198958881
	.word	-2032938284
	.word	-237706686
	.word	1759359992
	.word	534414190
	.word	-2118248755
	.word	-155638181
	.word	1873836001
	.word	414664567
	.word	-2012718362
	.word	-15766928
	.word	1711684554
	.word	285281116
	.word	-1889165569
	.word	-127750551
	.word	1634467795
	.word	376229701
	.word	-1609899400
	.word	-686959890
	.word	1308918612
	.word	956543938
	.word	-1486412191
	.word	-799009033
	.word	1231636301
	.word	1047427035
	.word	-1362007478
	.word	-640263460
	.word	1088359270
	.word	936918000
	.word	-1447252397
	.word	-558129467
	.word	1202900863
	.word	817233897
	.word	-1111625188
	.word	-893730166
	.word	1404277552
	.word	615818150
	.word	-1160759803
	.word	-841546093
	.word	1423857449
	.word	601450431
	.word	-1285129682
	.word	-1000256840
	.word	1567103746
	.word	711928724
	.word	-1274298825
	.word	-1022587231
	.word	1510334235
	.word	755167117
	.align	2
	.type	table_one, %object
	.size	table_one, 32
table_one:
	.ascii	"\000\000\000\000\001\001\002\002\003\003\004\004\005"
	.ascii	"\005\006\006\007\007\010\010\011\011\012\012\013\013"
	.ascii	"\014\014\015\015\016\016"
	.align	2
	.type	table_two, %object
	.size	table_two, 128
table_two:
	.word	0
	.word	1
	.word	2
	.word	3
	.word	4
	.word	6
	.word	8
	.word	12
	.word	16
	.word	24
	.word	32
	.word	48
	.word	64
	.word	96
	.word	128
	.word	192
	.word	256
	.word	384
	.word	512
	.word	768
	.word	1024
	.word	1536
	.word	2048
	.word	3072
	.word	4096
	.word	6144
	.word	8192
	.word	12288
	.word	16384
	.word	24576
	.word	32768
	.word	49152
	.align	2
	.type	table_three, %object
	.size	table_three, 64
table_three:
	.word	0
	.word	1
	.word	3
	.word	7
	.word	15
	.word	31
	.word	63
	.word	127
	.word	255
	.word	511
	.word	1023
	.word	2047
	.word	4095
	.word	8191
	.word	16383
	.word	32767
	.align	2
	.type	table_four, %object
	.size	table_four, 34
table_four:
	.ascii	"\000\001\002\003\004\005\006\007\010\011\012\013\014"
	.ascii	"\015\016\017\020\000\001\002\003\004\005\006\007\010"
	.ascii	"\011\012\013\014\015\016\017\020"
	.text
	.align	2
	.global	crc_calc
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc_calc, %function
crc_calc:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, fp}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L4
	ldr	r3, .L5
	ldr	r3, [r3]
	mvn	r4, r3
.L3:
	ldr	r3, [fp, #-8]
	add	r2, r3, #1
	str	r2, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r4
	and	r3, r3, #255
	ldr	r2, .L5+4
	ldr	r2, [r2, r3, lsl #2]
	lsr	r3, r4, #8
	eor	r4, r2, r3
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L3
	mvn	r3, r4
	ldr	r2, .L5
	str	r3, [r2]
.L4:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{r4, fp}
	bx	lr
.L6:
	.align	2
.L5:
	.word	sum
	.word	crc_table
	.size	crc_calc, .-crc_calc
	.align	2
	.global	make_decode_table
	.syntax unified
	.arm
	.fpu softvfp
	.type	make_decode_table, %function
make_decode_table:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	mov	r5, #0
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r2, #1
	ldr	r3, [fp, #-52]
	lsl	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	lsr	r3, r3, #1
	str	r3, [fp, #-36]
	mov	r3, r5
	add	r3, r3, #1
	and	r5, r3, #255
	b	.L8
.L17:
	mov	r4, #0
	b	.L9
.L15:
	mov	r2, r4
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r5, r3
	bne	.L10
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-28]
.L11:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-20]
	and	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L11
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bls	.L12
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L13
.L12:
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-28]
	mov	r2, r5
	mov	r3, #1
	lsl	r3, r3, r2
	str	r3, [fp, #-24]
.L14:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	lsl	r2, r4, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L14
.L10:
	add	r4, r4, #1
.L9:
	ldr	r3, [fp, #-48]
	cmp	r4, r3
	blt	.L15
.L13:
	ldr	r3, [fp, #-36]
	lsr	r3, r3, #1
	str	r3, [fp, #-36]
	mov	r3, r5
	add	r3, r3, #1
	and	r5, r3, #255
.L8:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L16
	mov	r2, r5
	ldr	r3, [fp, #-52]
	cmp	r3, r2
	bge	.L17
.L16:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L18
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L18
	ldr	r4, [fp, #-32]
	b	.L19
.L21:
	str	r4, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-28]
.L20:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-20]
	and	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L20
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	add	r4, r4, #1
.L19:
	mov	r2, r4
	ldr	r3, [fp, #-40]
	cmp	r3, r2
	bhi	.L21
	ldr	r3, [fp, #-40]
	lsr	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #16
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #16
	str	r3, [fp, #-40]
	mov	r3, #32768
	str	r3, [fp, #-36]
	b	.L22
.L31:
	mov	r4, #0
	b	.L23
.L30:
	mov	r2, r4
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r5, r3
	bne	.L24
	ldr	r3, [fp, #-32]
	lsr	r3, r3, #16
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-28]
.L25:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-20]
	and	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L25
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L26
.L28:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L27
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	str	r2, [fp, #-24]
	ldr	r2, [fp, #-44]
	lsl	r2, r2, #1
	ldr	r1, [fp, #-60]
	add	r2, r1, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [r2]	@ movhi
.L27:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldrh	r3, [r3]
	lsl	r3, r3, #1
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-28]
	rsb	r3, r3, #15
	ldr	r2, [fp, #-32]
	lsr	r3, r2, r3
	and	r3, r3, #1
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L26:
	mov	r2, r5
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bcc	.L28
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	lsl	r2, r4, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bls	.L24
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L29
.L24:
	add	r4, r4, #1
.L23:
	ldr	r3, [fp, #-48]
	cmp	r4, r3
	blt	.L30
.L29:
	ldr	r3, [fp, #-36]
	lsr	r3, r3, #1
	str	r3, [fp, #-36]
	mov	r3, r5
	add	r3, r3, #1
	and	r5, r3, #255
.L22:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L18
	cmp	r5, #16
	bls	.L31
.L18:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L32
	mov	r3, #1
	str	r3, [fp, #-16]
.L32:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
	.size	make_decode_table, .-make_decode_table
	.align	2
	.global	read_literal_table
	.syntax unified
	.arm
	.fpu softvfp
	.type	read_literal_table, %function
read_literal_table:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, .L80
	ldr	r4, [r3]
	ldr	r3, .L80+4
	ldr	r5, [r3]
	cmp	r5, #0
	bge	.L35
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L35:
	and	r3, r4, #7
	ldr	r2, .L80+12
	str	r3, [r2]
	lsr	r4, r4, #3
	sub	r5, r5, #3
	cmp	r5, #0
	bge	.L36
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L36:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L37
	ldr	r3, .L80+12
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L37
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L38
.L40:
	and	r3, r4, #255
	and	r3, r3, #7
	and	r1, r3, #255
	ldr	r2, .L80+16
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	lsr	r4, r4, #3
	sub	r5, r5, #3
	cmp	r5, #0
	bge	.L39
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L39:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L38:
	ldr	r3, [fp, #-40]
	cmp	r3, #7
	bls	.L40
	ldr	r3, .L80+20
	ldr	r2, .L80+16
	mov	r1, #7
	mov	r0, #8
	bl	make_decode_table
	str	r0, [fp, #-16]
.L37:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L41
	lsl	r3, r4, #16
	and	r3, r3, #16711680
	ldr	r2, .L80+24
	str	r3, [r2]
	lsr	r4, r4, #8
	sub	r5, r5, #8
	cmp	r5, #0
	bge	.L42
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L42:
	lsl	r3, r4, #8
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L80+24
	ldr	r2, [r2]
	add	r3, r3, r2
	ldr	r2, .L80+24
	str	r3, [r2]
	lsr	r4, r4, #8
	sub	r5, r5, #8
	cmp	r5, #0
	bge	.L43
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L43:
	and	r2, r4, #255
	ldr	r3, .L80+24
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L80+24
	str	r3, [r2]
	lsr	r4, r4, #8
	sub	r5, r5, #8
	cmp	r5, #0
	bge	.L41
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L41:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L44
	ldr	r3, .L80+12
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L44
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #1
	str	r3, [fp, #-24]
	mov	r3, #256
	str	r3, [fp, #-20]
.L75:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L45
.L47:
	and	r3, r4, #255
	and	r3, r3, #15
	and	r1, r3, #255
	ldr	r2, .L80+28
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	lsr	r4, r4, #4
	sub	r5, r5, #4
	cmp	r5, #0
	bge	.L46
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L46:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L45:
	ldr	r3, [fp, #-40]
	cmp	r3, #19
	bls	.L47
	ldr	r3, .L80+32
	ldr	r2, .L80+28
	mov	r1, #6
	mov	r0, #20
	bl	make_decode_table
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L77
.L48:
	and	r3, r4, #63
	ldr	r2, .L80+32
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #19
	bls	.L50
.L52:
	lsr	r3, r4, #6
	and	r2, r3, #1
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, .L80+32
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-36]
	mov	r3, r5
	sub	r5, r3, #1
	cmp	r3, #0
	bne	.L51
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r4, r4, r3
.L51:
	lsr	r4, r4, #1
	ldr	r3, [fp, #-36]
	cmp	r3, #19
	bhi	.L52
	mov	r3, #6
	str	r3, [fp, #-40]
	b	.L53
.L50:
	ldr	r2, .L80+28
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-40]
.L53:
	ldr	r3, [fp, #-40]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L54
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L54:
	ldr	r3, [fp, #-36]
	cmp	r3, #18
	bhi	.L55
	ldr	r3, [fp, #-36]
	cmp	r3, #17
	bcs	.L56
	b	.L57
.L55:
	ldr	r3, [fp, #-36]
	cmp	r3, #19
	beq	.L58
	b	.L57
.L56:
	ldr	r3, [fp, #-36]
	cmp	r3, #17
	bne	.L59
	mov	r3, #4
	str	r3, [fp, #-40]
	mov	r3, #3
	str	r3, [fp, #-28]
	b	.L60
.L59:
	ldr	r3, [fp, #-24]
	rsb	r3, r3, #6
	str	r3, [fp, #-40]
	mov	r3, #19
	str	r3, [fp, #-28]
.L60:
	ldr	r2, .L80+36
	ldr	r3, [fp, #-40]
	ldr	r3, [r2, r3, lsl #2]
	and	r2, r4, r3
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L62
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
	b	.L62
.L64:
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	ldr	r2, .L80+40
	mov	r1, #0
	strb	r1, [r2, r3]
.L62:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcs	.L78
	ldr	r3, [fp, #-28]
	sub	r2, r3, #1
	str	r2, [fp, #-28]
	cmp	r3, #0
	bne	.L64
	b	.L78
.L58:
	and	r2, r4, #1
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #3
	str	r3, [fp, #-28]
	mov	r3, r5
	sub	r5, r3, #1
	cmp	r3, #0
	bne	.L66
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r4, r4, r3
.L66:
	lsr	r4, r4, #1
	and	r3, r4, #63
	ldr	r2, .L80+32
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #19
	bls	.L67
.L69:
	lsr	r3, r4, #6
	and	r2, r3, #1
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, .L80+32
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-36]
	mov	r3, r5
	sub	r5, r3, #1
	cmp	r3, #0
	bne	.L68
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r4, r4, r3
.L68:
	lsr	r4, r4, #1
	ldr	r3, [fp, #-36]
	cmp	r3, #19
	bhi	.L69
	mov	r3, #6
	str	r3, [fp, #-40]
	b	.L70
.L67:
	ldr	r2, .L80+28
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-40]
.L70:
	ldr	r3, [fp, #-40]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-40]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L71
	add	r5, r5, #16
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L80+8
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L80+8
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L71:
	ldr	r2, .L80+40
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	add	r3, r3, #17
	ldr	r2, .L80+44
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	b	.L72
.L74:
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	ldr	r2, [fp, #-36]
	and	r1, r2, #255
	ldr	r2, .L80+40
	strb	r1, [r2, r3]
.L72:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcs	.L79
	ldr	r3, [fp, #-28]
	sub	r2, r3, #1
	str	r2, [fp, #-28]
	cmp	r3, #0
	bne	.L74
	b	.L79
.L57:
	ldr	r2, .L80+40
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	add	r3, r3, #17
	ldr	r2, .L80+44
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	add	r2, r3, #1
	str	r2, [fp, #-32]
	ldr	r2, [fp, #-36]
	and	r1, r2, #255
	ldr	r2, .L80+40
	strb	r1, [r2, r3]
	b	.L65
.L78:
	nop
	b	.L65
.L79:
	nop
.L65:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L48
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #512
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #768
	beq	.L75
	b	.L49
.L77:
	nop
.L49:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L44
	ldr	r3, .L80+48
	ldr	r2, .L80+40
	mov	r1, #12
	mov	r0, #768
	bl	make_decode_table
	str	r0, [fp, #-16]
.L44:
	ldr	r3, .L80
	str	r4, [r3]
	ldr	r3, .L80+4
	str	r5, [r3]
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L81:
	.align	2
.L80:
	.word	global_control
	.word	global_shift
	.word	source
	.word	decrunch_method
	.word	offset_len
	.word	offset_table
	.word	decrunch_length
	.word	huffman20_len
	.word	huffman20_table
	.word	table_three
	.word	literal_len
	.word	table_four
	.word	literal_table
	.size	read_literal_table, .-read_literal_table
	.align	2
	.global	decrunch
	.syntax unified
	.arm
	.fpu softvfp
	.type	decrunch, %function
decrunch:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	ldr	r3, .L100
	ldr	r4, [r3]
	ldr	r3, .L100+4
	ldr	r5, [r3]
.L99:
	lsl	r3, r4, #20
	lsr	r3, r3, #20
	ldr	r2, .L100+8
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #768
	bcc	.L83
	lsr	r4, r4, #12
	sub	r5, r5, #12
	cmp	r5, #0
	bge	.L86
	add	r5, r5, #16
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L86:
	and	r2, r4, #1
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldr	r2, .L100+8
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3, r5
	sub	r5, r3, #1
	cmp	r3, #0
	bne	.L85
	add	r5, r5, #16
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r4, r4, r3
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r4, r4, r3
.L85:
	lsr	r4, r4, #1
	ldr	r3, [fp, #-24]
	cmp	r3, #768
	bcs	.L86
	b	.L87
.L83:
	ldr	r2, .L100+16
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L87
	add	r5, r5, #16
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L87:
	ldr	r3, [fp, #-24]
	cmp	r3, #255
	bhi	.L88
	ldr	r3, .L100+20
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+20
	str	r2, [r1]
	ldr	r2, [fp, #-24]
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L89
.L88:
	ldr	r3, [fp, #-24]
	sub	r3, r3, #256
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	and	r3, r3, #31
	str	r3, [fp, #-28]
	ldr	r2, .L100+24
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-20]
	ldr	r2, .L100+28
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	bls	.L90
	ldr	r3, .L100+32
	ldr	r3, [r3]
	cmp	r3, #3
	bne	.L90
	ldr	r3, [fp, #-28]
	sub	r3, r3, #3
	str	r3, [fp, #-28]
	ldr	r2, .L100+36
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	and	r3, r3, r4
	lsl	r3, r3, #3
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L91
	add	r5, r5, #16
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L91:
	and	r3, r4, #127
	ldr	r2, .L100+40
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, .L100+44
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	b	.L92
.L90:
	ldr	r2, .L100+36
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	and	r3, r3, r4
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L92
	ldr	r3, .L100+48
	ldr	r3, [r3]
	str	r3, [fp, #-20]
.L92:
	ldr	r3, [fp, #-28]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L93
	add	r5, r5, #16
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L93:
	ldr	r2, .L100+48
	ldr	r3, [fp, #-20]
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	lsr	r3, r3, #5
	and	r3, r3, #15
	str	r3, [fp, #-28]
	ldr	r2, .L100+24
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	add	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L100+28
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	ldr	r2, .L100+36
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	and	r3, r3, r4
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	lsr	r4, r4, r3
	mov	r2, r5
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	mov	r5, r3
	cmp	r5, #0
	bge	.L94
	add	r5, r5, #16
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	add	r3, r5, #8
	lsl	r3, r2, r3
	add	r4, r4, r3
	ldr	r3, .L100+12
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L100+12
	str	r2, [r1]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, r5
	add	r4, r4, r3
.L94:
	ldr	r3, .L100+48
	ldr	r3, [r3]
	ldr	r2, .L100+52
	add	r2, r3, r2
	ldr	r3, .L100+20
	ldr	r3, [r3]
	cmp	r2, r3
	bcs	.L95
	ldr	r3, .L100+20
	ldr	r2, [r3]
	ldr	r3, .L100+48
	ldr	r3, [r3]
	rsb	r3, r3, #0
	add	r3, r2, r3
	b	.L96
.L95:
	ldr	r3, .L100+20
	ldr	r2, [r3]
	ldr	r3, .L100+48
	ldr	r3, [r3]
	rsb	r3, r3, #65536
	add	r3, r2, r3
.L96:
	str	r3, [fp, #-16]
.L97:
	ldr	r2, [fp, #-16]
	add	r3, r2, #1
	str	r3, [fp, #-16]
	ldr	r3, .L100+20
	ldr	r3, [r3]
	add	r1, r3, #1
	ldr	r0, .L100+20
	str	r1, [r0]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L97
.L89:
	ldr	r3, .L100+20
	ldr	r2, [r3]
	ldr	r3, .L100+56
	ldr	r3, [r3]
	cmp	r2, r3
	bcs	.L98
	ldr	r3, .L100+12
	ldr	r2, [r3]
	ldr	r3, .L100+60
	ldr	r3, [r3]
	cmp	r2, r3
	bcc	.L99
.L98:
	ldr	r3, .L100
	str	r4, [r3]
	ldr	r3, .L100+4
	str	r5, [r3]
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
.L101:
	.align	2
.L100:
	.word	global_control
	.word	global_shift
	.word	literal_table
	.word	source
	.word	literal_len
	.word	destination
	.word	table_two
	.word	table_one
	.word	decrunch_method
	.word	table_three
	.word	offset_table
	.word	offset_len
	.word	last_offset
	.word	decrunch_buffer
	.word	destination_end
	.word	source_end
	.size	decrunch, .-decrunch
	.section	.rodata
	.align	2
.LC16:
	.ascii	"wb\000"
	.align	2
.LC17:
	.ascii	"FOpen\000"
	.text
	.align	2
	.global	open_output
	.syntax unified
	.arm
	.fpu softvfp
	.type	open_output, %function
open_output:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r1, .L108
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L103
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L104
.L106:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #47
	bne	.L105
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r1, .L108+4
	ldr	r0, [fp, #-16]
	bl	mkdir
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #47
	strb	r2, [r3]
.L105:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L104:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L106
	ldr	r1, .L108
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L103
	ldr	r0, .L108+8
	bl	perror
.L103:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L109:
	.align	2
.L108:
	.word	.LC16
	.word	511
	.word	.LC17
	.size	open_output, .-open_output
	.section	.rodata
	.align	2
.LC18:
	.ascii	"Extracting \"%s\"...\000"
	.align	2
.LC19:
	.ascii	"FRead(Data)\000"
	.align	2
.LC20:
	.ascii	"EOF: Data\012\000"
	.align	2
.LC21:
	.ascii	"FWrite\000"
	.align	2
.LC22:
	.ascii	"good\000"
	.align	2
.LC23:
	.ascii	"bad\000"
	.align	2
.LC24:
	.ascii	" crc %s\012\000"
	.text
	.align	2
	.global	extract_normal
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_normal, %function
extract_normal:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, .L142
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L142+4
	mvn	r2, #15
	str	r2, [r3]
	ldr	r3, .L142+8
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L142+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L142+16
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L111
.L112:
	ldr	r2, .L142+20
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L111:
	ldr	r3, [fp, #-12]
	cmp	r3, #7
	bls	.L112
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L113
.L114:
	ldr	r2, .L142+24
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L113:
	ldr	r3, [fp, #-12]
	cmp	r3, #768
	bcc	.L114
	ldr	r2, .L142+28
	ldr	r3, .L142+32
	str	r2, [r3]
	ldr	r3, .L142+32
	ldr	r3, [r3]
	sub	r3, r3, #1024
	ldr	r2, .L142+36
	str	r3, [r2]
	ldr	r2, .L142+40
	ldr	r3, .L142+44
	str	r2, [r3]
	ldr	r3, .L142+44
	ldr	r3, [r3]
	ldr	r2, .L142+48
	str	r3, [r2]
	ldr	r3, .L142+48
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, .L142+52
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	b	.L115
.L138:
	ldr	r3, [fp, #-28]
	add	r3, r3, #12
	mov	r1, r3
	ldr	r0, .L142+56
	bl	printf
	ldr	r3, .L142+60
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r3, [fp, #-28]
	add	r3, r3, #12
	mov	r0, r3
	bl	open_output
	str	r0, [fp, #-24]
	ldr	r3, .L142+64
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	ldr	r2, .L142+12
	str	r3, [r2]
	b	.L116
.L133:
	ldr	r3, .L142+44
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bne	.L117
	ldr	r3, .L142+32
	ldr	r2, [r3]
	ldr	r3, .L142+36
	ldr	r3, [r3]
	cmp	r2, r3
	bcc	.L118
	ldr	r3, .L142+68
	str	r3, [fp, #-16]
	ldr	r3, .L142+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	sub	r3, r2, r3
	add	r3, r3, #16384
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L119
.L120:
	ldr	r3, .L142+32
	ldr	r2, [r3]
	add	r3, r2, #1
	ldr	r1, .L142+32
	str	r3, [r1]
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L120
.L119:
	ldr	r3, .L142+32
	ldr	r2, .L142+68
	str	r2, [r3]
	ldr	r3, .L142+32
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	sub	r3, r2, r3
	add	r3, r3, #16384
	str	r3, [fp, #-12]
	ldr	r3, .L142+72
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bls	.L121
	ldr	r3, .L142+72
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L121:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	mov	r1, #1
	ldr	r0, [fp, #-16]
	bl	fread
	mov	r2, r0
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	beq	.L122
	mov	r0, #10
	bl	putchar
	ldr	r0, [fp, #-32]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L123
	ldr	r0, .L142+76
	bl	perror
	b	.L124
.L123:
	ldr	r3, .L142+80
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #1
	ldr	r0, .L142+84
	bl	fwrite
.L124:
	mov	r3, #1
	str	r3, [fp, #-8]
	b	.L125
.L122:
	ldr	r3, .L142+72
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	ldr	r2, .L142+72
	str	r3, [r2]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, .L142+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L140
.L118:
	ldr	r3, .L142+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L126
	bl	read_literal_table
	mov	r3, r0
	cmp	r3, #0
	bne	.L141
.L126:
	ldr	r3, .L142+44
	ldr	r3, [r3]
	ldr	r2, .L142+40
	cmp	r3, r2
	bcc	.L127
	ldr	r3, .L142+44
	ldr	r3, [r3]
	ldr	r2, .L142+88
	sub	r3, r3, r2
	sub	r3, r3, #65536
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L128
	ldr	r3, .L142+44
	ldr	r2, .L142+88
	str	r2, [r3]
	ldr	r3, .L142+44
	ldr	r3, [r3]
	add	r3, r3, #65536
	str	r3, [fp, #-16]
.L129:
	ldr	r2, [fp, #-16]
	add	r3, r2, #1
	str	r3, [fp, #-16]
	ldr	r3, .L142+44
	ldr	r3, [r3]
	add	r1, r3, #1
	ldr	r0, .L142+44
	str	r1, [r0]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L129
.L128:
	ldr	r3, .L142+44
	ldr	r3, [r3]
	str	r3, [fp, #-20]
.L127:
	ldr	r3, .L142+44
	ldr	r2, [r3]
	ldr	r3, .L142+16
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L142+48
	str	r3, [r2]
	ldr	r3, .L142+48
	ldr	r3, [r3]
	ldr	r2, .L142+40
	cmp	r3, r2
	bls	.L130
	ldr	r2, .L142+40
	ldr	r3, .L142+48
	str	r2, [r3]
.L130:
	ldr	r3, .L142+44
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	bl	decrunch
	ldr	r3, .L142+16
	ldr	r3, [r3]
	ldr	r2, .L142+44
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	sub	r2, r1, r2
	sub	r3, r3, r2
	ldr	r2, .L142+16
	str	r3, [r2]
.L117:
	ldr	r3, .L142+44
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, .L142+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bls	.L131
	ldr	r3, .L142+12
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L131:
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-20]
	bl	crc_calc
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L132
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	mov	r1, #1
	ldr	r0, [fp, #-20]
	bl	fwrite
	mov	r2, r0
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	beq	.L132
	ldr	r0, .L142+92
	bl	perror
	ldr	r0, [fp, #-24]
	bl	fclose
	mov	r3, #0
	str	r3, [fp, #-24]
.L132:
	ldr	r3, .L142+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	ldr	r2, .L142+12
	str	r3, [r2]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-20]
.L116:
	ldr	r3, .L142+12
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L133
	b	.L125
.L140:
	nop
	b	.L125
.L141:
	nop
.L125:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L134
	ldr	r0, [fp, #-24]
	bl	fclose
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L134
	ldr	r3, [fp, #-28]
	ldr	r2, [r3, #8]
	ldr	r3, .L142+64
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L135
	ldr	r3, .L142+96
	b	.L136
.L135:
	ldr	r3, .L142+100
.L136:
	mov	r1, r3
	ldr	r0, .L142+104
	bl	printf
.L134:
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
.L115:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L137
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L138
.L137:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L143:
	.align	2
.L142:
	.word	global_control
	.word	global_shift
	.word	last_offset
	.word	unpack_size
	.word	decrunch_length
	.word	offset_len
	.word	literal_len
	.word	read_buffer+16384
	.word	source
	.word	source_end
	.word	decrunch_buffer+65794
	.word	destination
	.word	destination_end
	.word	filename_list
	.word	.LC18
	.word	stdout
	.word	sum
	.word	read_buffer
	.word	pack_size
	.word	.LC19
	.word	stderr
	.word	.LC20
	.word	decrunch_buffer
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.size	extract_normal, .-extract_normal
	.section	.rodata
	.align	2
.LC25:
	.ascii	"Storing \"%s\"...\000"
	.text
	.align	2
	.global	extract_store
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_store, %function
extract_store:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L160
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	b	.L145
.L158:
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	mov	r1, r3
	ldr	r0, .L160+4
	bl	printf
	ldr	r3, .L160+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	mov	r0, r3
	bl	open_output
	str	r0, [fp, #-16]
	ldr	r3, .L160+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #4]
	ldr	r2, .L160+16
	str	r3, [r2]
	ldr	r3, .L160+16
	ldr	r2, [r3]
	ldr	r3, .L160+20
	ldr	r3, [r3]
	cmp	r2, r3
	bls	.L147
	ldr	r3, .L160+20
	ldr	r3, [r3]
	ldr	r2, .L160+16
	str	r3, [r2]
	b	.L147
.L153:
	ldr	r3, .L160+16
	ldr	r3, [r3]
	cmp	r3, #16384
	movcc	r3, r3
	movcs	r3, #16384
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	mov	r1, #1
	ldr	r0, .L160+24
	bl	fread
	mov	r2, r0
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	beq	.L148
	mov	r0, #10
	bl	putchar
	ldr	r0, [fp, #-24]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	beq	.L149
	ldr	r0, .L160+28
	bl	perror
	b	.L150
.L149:
	ldr	r3, .L160+32
	ldr	r3, [r3]
	mov	r2, #10
	mov	r1, #1
	ldr	r0, .L160+36
	bl	fwrite
.L150:
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L151
.L148:
	ldr	r3, .L160+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, .L160+20
	str	r3, [r2]
	ldr	r1, [fp, #-8]
	ldr	r0, .L160+24
	bl	crc_calc
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L152
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	mov	r1, #1
	ldr	r0, .L160+24
	bl	fwrite
	mov	r2, r0
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	beq	.L152
	ldr	r0, .L160+40
	bl	perror
	ldr	r0, [fp, #-16]
	bl	fclose
	mov	r3, #0
	str	r3, [fp, #-16]
.L152:
	ldr	r3, .L160+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, .L160+16
	str	r3, [r2]
.L147:
	ldr	r3, .L160+16
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L153
.L151:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L154
	ldr	r0, [fp, #-16]
	bl	fclose
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L154
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #8]
	ldr	r3, .L160+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L155
	ldr	r3, .L160+44
	b	.L156
.L155:
	ldr	r3, .L160+48
.L156:
	mov	r1, r3
	ldr	r0, .L160+52
	bl	printf
.L154:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
.L145:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L157
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L158
.L157:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L161:
	.align	2
.L160:
	.word	filename_list
	.word	.LC25
	.word	stdout
	.word	sum
	.word	unpack_size
	.word	pack_size
	.word	read_buffer
	.word	.LC19
	.word	stderr
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.size	extract_store, .-extract_store
	.section	.rodata
	.align	2
.LC26:
	.ascii	"Unknown \"%s\"\012\000"
	.text
	.align	2
	.global	extract_unknown
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_unknown, %function
extract_unknown:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, .L166
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L163
.L164:
	ldr	r3, [fp, #-12]
	add	r3, r3, #12
	mov	r1, r3
	ldr	r0, .L166+4
	bl	printf
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
.L163:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L164
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L167:
	.align	2
.L166:
	.word	filename_list
	.word	.LC26
	.size	extract_unknown, .-extract_unknown
	.section	.rodata
	.align	2
.LC27:
	.ascii	"FSeek(Data)\000"
	.align	2
.LC28:
	.ascii	"MAlloc(Filename_node)\012\000"
	.align	2
.LC29:
	.ascii	"CRC: Archive_Header\012\000"
	.align	2
.LC30:
	.ascii	"EOF: Header_Comment\012\000"
	.align	2
.LC31:
	.ascii	"FRead(Header_Comment)\000"
	.align	2
.LC32:
	.ascii	"EOF: Header_Filename\012\000"
	.align	2
.LC33:
	.ascii	"FRead(Header_Filename)\000"
	.align	2
.LC34:
	.ascii	"EOF: Archive_Header\012\000"
	.align	2
.LC35:
	.ascii	"FRead(Archive_Header)\000"
	.text
	.align	2
	.global	extract_archive
	.syntax unified
	.arm
	.fpu softvfp
	.type	extract_archive, %function
extract_archive:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-16]
	ldr	r3, .L196
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L196
	str	r3, [fp, #-28]
.L190:
	mov	r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-40]
	mov	r2, #31
	mov	r1, #1
	ldr	r0, .L196+4
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-40]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L169
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L170
	ldr	r3, [fp, #-12]
	cmp	r3, #31
	bne	.L171
	ldr	r3, .L196+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L196+4
	ldrb	r3, [r3, #29]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L196+4
	ldrb	r3, [r3, #28]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L196+4
	ldrb	r3, [r3, #27]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L196+4
	ldrb	r2, [r2, #26]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L196+12
	str	r2, [r3]
	ldr	r3, .L196+4
	mov	r2, #0
	strb	r2, [r3, #29]
	ldr	r3, .L196+4
	mov	r2, #0
	strb	r2, [r3, #28]
	ldr	r3, .L196+4
	mov	r2, #0
	strb	r2, [r3, #27]
	ldr	r3, .L196+4
	mov	r2, #0
	strb	r2, [r3, #26]
	mov	r1, #31
	ldr	r0, .L196+4
	bl	crc_calc
	ldr	r3, .L196+4
	ldrb	r3, [r3, #30]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	ldr	r0, .L196+16
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-40]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L172
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L173
	ldr	r2, .L196+16
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r1, [fp, #-32]
	ldr	r0, .L196+16
	bl	crc_calc
	ldr	r3, .L196+4
	ldrb	r3, [r3, #14]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	mov	r1, #1
	ldr	r0, .L196+20
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-40]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L174
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bne	.L175
	ldr	r2, .L196+20
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r1, [fp, #-32]
	ldr	r0, .L196+20
	bl	crc_calc
	ldr	r3, .L196+8
	ldr	r2, [r3]
	ldr	r3, .L196+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L176
	ldr	r3, .L196+4
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L196+4
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L196+4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L196+4
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L196+24
	str	r2, [r3]
	ldr	r3, .L196+4
	ldrb	r3, [r3, #9]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L196+4
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L196+4
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L196+4
	ldrb	r2, [r2, #6]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L196+28
	str	r2, [r3]
	ldr	r3, .L196+4
	ldrb	r2, [r3, #11]	@ zero_extendqisi2
	ldr	r3, .L196+32
	strb	r2, [r3]
	ldr	r3, .L196+4
	ldrb	r3, [r3, #25]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L196+4
	ldrb	r3, [r3, #24]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L196+4
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L196+4
	ldrb	r2, [r2, #22]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L196+12
	str	r2, [r3]
	mov	r0, #268
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L177
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L196+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #4]
	ldr	r3, .L196+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L178
.L179:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L178:
	ldr	r2, .L196+16
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	add	r3, r3, #12
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L179
	ldr	r3, .L196+28
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L180
	ldr	r3, .L196+32
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L181
	cmp	r3, #2
	beq	.L182
	b	.L194
.L181:
	ldr	r0, [fp, #-40]
	bl	extract_store
	str	r0, [fp, #-20]
	b	.L184
.L182:
	ldr	r0, [fp, #-40]
	bl	extract_normal
	str	r0, [fp, #-20]
	b	.L184
.L194:
	ldr	r0, [fp, #-40]
	bl	extract_unknown
	str	r0, [fp, #-20]
	nop
.L184:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L195
	ldr	r3, .L196
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L187
.L188:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-8]
	bl	free
.L187:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L188
	ldr	r3, .L196
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L196
	str	r3, [fp, #-28]
	ldr	r3, .L196+28
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-40]
	bl	fseek
	mov	r3, r0
	cmp	r3, #0
	beq	.L189
	ldr	r0, .L196+36
	bl	perror
	b	.L186
.L180:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L189
.L177:
	ldr	r3, .L196+40
	ldr	r3, [r3]
	mov	r2, #22
	mov	r1, #1
	ldr	r0, .L196+44
	bl	fwrite
	b	.L189
.L176:
	ldr	r3, .L196+40
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L196+48
	bl	fwrite
	b	.L189
.L175:
	ldr	r3, .L196+40
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L196+52
	bl	fwrite
	b	.L189
.L174:
	ldr	r0, .L196+56
	bl	perror
	b	.L189
.L173:
	ldr	r3, .L196+40
	ldr	r3, [r3]
	mov	r2, #21
	mov	r1, #1
	ldr	r0, .L196+60
	bl	fwrite
	b	.L189
.L172:
	ldr	r0, .L196+64
	bl	perror
	b	.L189
.L171:
	ldr	r3, .L196+40
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L196+68
	bl	fwrite
	b	.L189
.L170:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L189
.L169:
	ldr	r0, .L196+72
	bl	perror
.L189:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L190
	b	.L186
.L195:
	nop
.L186:
	ldr	r3, .L196
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	b	.L191
.L192:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-8]
	bl	free
.L191:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L192
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L197:
	.align	2
.L196:
	.word	filename_list
	.word	archive_header
	.word	sum
	.word	crc
	.word	header_filename
	.word	header_comment
	.word	unpack_size
	.word	pack_size
	.word	pack_mode
	.word	.LC27
	.word	stderr
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.size	extract_archive, .-extract_archive
	.section	.rodata
	.align	2
.LC36:
	.ascii	"Unpacked   Packed Time     Date        Attrib   Nam"
	.ascii	"e\000"
	.align	2
.LC37:
	.ascii	"-------- -------- -------- ----------- -------- ---"
	.ascii	"-\000"
	.align	2
.LC38:
	.ascii	"%8ld \000"
	.align	2
.LC39:
	.ascii	"     n/a \000"
	.align	2
.LC40:
	.ascii	"%02ld:%02ld:%02ld \000"
	.align	2
.LC41:
	.ascii	"%2ld-%s-%4ld \000"
	.align	2
.LC42:
	.ascii	"%c%c%c%c%c%c%c%c \000"
	.align	2
.LC43:
	.ascii	"\"%s\"\012\000"
	.align	2
.LC44:
	.ascii	": \"%s\"\012\000"
	.align	2
.LC45:
	.ascii	"%8ld %8ld Merged\012\000"
	.align	2
.LC46:
	.ascii	"FSeek()\000"
	.align	2
.LC47:
	.ascii	"%8ld %8ld \000"
	.align	2
.LC48:
	.ascii	"\000"
	.align	2
.LC49:
	.ascii	"s\000"
	.align	2
.LC50:
	.ascii	"%ld file%s\012\000"
	.text
	.align	2
	.global	view_archive
	.syntax unified
	.arm
	.fpu softvfp
	.type	view_archive, %function
view_archive:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #64
	str	r0, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #1
	str	r3, [fp, #-24]
	ldr	r0, .L234
	bl	puts
	ldr	r0, .L234+4
	bl	puts
.L232:
	mov	r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-48]
	mov	r2, #31
	mov	r1, #1
	ldr	r0, .L234+8
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L199
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L200
	ldr	r3, [fp, #-20]
	cmp	r3, #31
	bne	.L201
	ldr	r3, .L234+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L234+8
	ldrb	r3, [r3, #29]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L234+8
	ldrb	r3, [r3, #28]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L234+8
	ldrb	r3, [r3, #27]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L234+8
	ldrb	r2, [r2, #26]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L234+16
	str	r2, [r3]
	ldr	r3, .L234+8
	mov	r2, #0
	strb	r2, [r3, #29]
	ldr	r3, .L234+8
	mov	r2, #0
	strb	r2, [r3, #28]
	ldr	r3, .L234+8
	mov	r2, #0
	strb	r2, [r3, #27]
	ldr	r3, .L234+8
	mov	r2, #0
	strb	r2, [r3, #26]
	mov	r1, #31
	ldr	r0, .L234+8
	bl	crc_calc
	ldr	r3, .L234+8
	ldrb	r3, [r3, #30]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-16]
	mov	r1, #1
	ldr	r0, .L234+20
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L202
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L203
	ldr	r2, .L234+20
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r1, [fp, #-16]
	ldr	r0, .L234+20
	bl	crc_calc
	ldr	r3, .L234+8
	ldrb	r3, [r3, #14]	@ zero_extendqisi2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-16]
	mov	r1, #1
	ldr	r0, .L234+24
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-48]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L204
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L205
	ldr	r2, .L234+24
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r1, [fp, #-16]
	ldr	r0, .L234+24
	bl	crc_calc
	ldr	r3, .L234+12
	ldr	r2, [r3]
	ldr	r3, .L234+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L206
	ldr	r3, .L234+8
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L234+28
	strb	r2, [r3]
	ldr	r3, .L234+8
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L234+8
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L234+8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L234+8
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L234+32
	str	r2, [r3]
	ldr	r3, .L234+8
	ldrb	r3, [r3, #9]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L234+8
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L234+8
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L234+8
	ldrb	r2, [r2, #6]	@ zero_extendqisi2
	add	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L234+36
	str	r2, [r3]
	ldr	r3, .L234+8
	ldrb	r3, [r3, #18]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, .L234+8
	ldrb	r3, [r3, #19]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L234+8
	ldrb	r3, [r3, #20]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r3, r2, r3
	ldr	r2, .L234+8
	ldrb	r2, [r2, #21]	@ zero_extendqisi2
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #17
	and	r3, r3, #63
	add	r3, r3, #1968
	add	r3, r3, #2
	ldr	r2, .L234+40
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #23
	and	r3, r3, #15
	ldr	r2, .L234+44
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #27
	ldr	r2, .L234+48
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #12
	and	r3, r3, #31
	ldr	r2, .L234+52
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #6
	and	r3, r3, #63
	ldr	r2, .L234+56
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	and	r3, r3, #63
	ldr	r2, .L234+60
	str	r3, [r2]
	ldr	r3, .L234+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, .L234+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	ldr	r3, .L234+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, .L234+32
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L234+64
	bl	printf
	ldr	r3, .L234+8
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L207
	ldr	r0, .L234+68
	bl	printf
	b	.L208
.L207:
	ldr	r3, .L234+36
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L234+64
	bl	printf
.L208:
	ldr	r3, .L234+52
	ldr	r1, [r3]
	ldr	r3, .L234+56
	ldr	r2, [r3]
	ldr	r3, .L234+60
	ldr	r3, [r3]
	ldr	r0, .L234+72
	bl	printf
	ldr	r3, .L234+48
	ldr	r1, [r3]
	ldr	r3, .L234+44
	ldr	r3, [r3]
	ldr	r2, .L234+76
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, .L234+40
	ldr	r3, [r3]
	ldr	r0, .L234+80
	bl	printf
	ldr	r3, .L234+28
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #32
	cmp	r3, #0
	beq	.L209
	mov	lr, #104
	b	.L210
.L209:
	mov	lr, #45
.L210:
	ldr	r3, .L234+28
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L211
	mov	r4, #115
	b	.L212
.L211:
	mov	r4, #45
.L212:
	ldr	r3, .L234+28
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	cmp	r3, #0
	bge	.L213
	mov	r5, #112
	b	.L214
.L213:
	mov	r5, #45
.L214:
	ldr	r3, .L234+28
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L215
	mov	r3, #97
	b	.L216
.L215:
	mov	r3, #45
.L216:
	ldr	r2, .L234+28
	ldrb	r2, [r2]	@ zero_extendqisi2
	and	r2, r2, #1
	cmp	r2, #0
	beq	.L217
	mov	r2, #114
	b	.L218
.L217:
	mov	r2, #45
.L218:
	ldr	r1, .L234+28
	ldrb	r1, [r1]	@ zero_extendqisi2
	and	r1, r1, #2
	cmp	r1, #0
	beq	.L219
	mov	r1, #119
	b	.L220
.L219:
	mov	r1, #45
.L220:
	ldr	r0, .L234+28
	ldrb	r0, [r0]	@ zero_extendqisi2
	and	r0, r0, #8
	cmp	r0, #0
	beq	.L221
	mov	r0, #101
	b	.L222
.L221:
	mov	r0, #45
.L222:
	ldr	ip, .L234+28
	ldrb	ip, [ip]	@ zero_extendqisi2
	and	ip, ip, #4
	cmp	ip, #0
	beq	.L223
	mov	ip, #100
	b	.L224
.L223:
	mov	ip, #45
.L224:
	str	ip, [sp, #16]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	mov	r1, lr
	ldr	r0, .L234+84
	bl	printf
	ldr	r1, .L234+20
	ldr	r0, .L234+88
	bl	printf
	ldr	r3, .L234+24
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L225
	ldr	r1, .L234+24
	ldr	r0, .L234+92
	bl	printf
.L225:
	ldr	r3, .L234+8
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L226
	ldr	r3, .L234+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L226
	ldr	r3, .L234+36
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, [fp, #-32]
	ldr	r0, .L234+96
	bl	printf
.L226:
	ldr	r3, .L234+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L227
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, .L234+36
	ldr	r3, [r3]
	mov	r2, #1
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	fseek
	mov	r3, r0
	cmp	r3, #0
	bne	.L228
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L229
.L228:
	ldr	r0, .L234+100
	bl	perror
	b	.L229
.L227:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L229
.L206:
	ldr	r3, .L234+104
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L234+108
	bl	fwrite
	b	.L229
.L205:
	ldr	r3, .L234+104
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L234+112
	bl	fwrite
	b	.L229
.L204:
	ldr	r0, .L234+116
	bl	perror
	b	.L229
.L203:
	ldr	r3, .L234+104
	ldr	r3, [r3]
	mov	r2, #21
	mov	r1, #1
	ldr	r0, .L234+120
	bl	fwrite
	b	.L229
.L202:
	ldr	r0, .L234+124
	bl	perror
	b	.L229
.L201:
	ldr	r3, .L234+104
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L234+128
	bl	fwrite
	b	.L229
.L200:
	ldr	r0, .L234+4
	bl	puts
	ldr	r2, [fp, #-44]
	ldr	r1, [fp, #-40]
	ldr	r0, .L234+132
	bl	printf
	ldr	r3, [fp, #-36]
	cmp	r3, #1
	bne	.L230
	ldr	r3, .L234+136
	b	.L231
.L230:
	ldr	r3, .L234+140
.L231:
	mov	r2, r3
	ldr	r1, [fp, #-36]
	ldr	r0, .L234+144
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L229
.L199:
	ldr	r0, .L234+148
	bl	perror
.L229:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L232
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L235:
	.align	2
.L234:
	.word	.LC36
	.word	.LC37
	.word	archive_header
	.word	sum
	.word	crc
	.word	header_filename
	.word	header_comment
	.word	attributes
	.word	unpack_size
	.word	pack_size
	.word	year
	.word	month
	.word	day
	.word	hour
	.word	minute
	.word	second
	.word	.LC38
	.word	.LC39
	.word	.LC40
	.word	month_str
	.word	.LC41
	.word	.LC42
	.word	.LC43
	.word	.LC44
	.word	.LC45
	.word	.LC46
	.word	stderr
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.word	.LC50
	.word	.LC35
	.size	view_archive, .-view_archive
	.section	.rodata
	.align	2
.LC51:
	.ascii	"rb\000"
	.align	2
.LC52:
	.ascii	"FOpen(Archive)\000"
	.align	2
.LC53:
	.ascii	"Info_Header: Bad ID\012\000"
	.align	2
.LC54:
	.ascii	"EOF: Info_Header\012\000"
	.align	2
.LC55:
	.ascii	"FRead(Info_Header)\000"
	.text
	.align	2
	.global	process_archive
	.syntax unified
	.arm
	.fpu softvfp
	.type	process_archive, %function
process_archive:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L237
	ldr	r3, .L248
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	b	.L238
.L237:
	ldr	r1, .L248+4
	ldr	r0, [fp, #-24]
	bl	fopen
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L238
	ldr	r0, .L248+8
	bl	perror
	ldr	r3, [fp, #-16]
	b	.L239
.L238:
	ldr	r3, [fp, #-12]
	mov	r2, #10
	mov	r1, #1
	ldr	r0, .L248+12
	bl	fread
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-12]
	bl	ferror
	mov	r3, r0
	cmp	r3, #0
	bne	.L240
	ldr	r3, [fp, #-8]
	cmp	r3, #10
	bne	.L241
	ldr	r3, .L248+12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #76
	bne	.L242
	ldr	r3, .L248+12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #90
	bne	.L242
	ldr	r3, .L248+12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	cmp	r3, #88
	bne	.L242
	ldr	r3, .L248+16
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L243
	cmp	r3, #2
	beq	.L244
	b	.L247
.L243:
	ldr	r0, [fp, #-12]
	bl	extract_archive
	str	r0, [fp, #-16]
	b	.L245
.L244:
	ldr	r0, [fp, #-12]
	bl	view_archive
	str	r0, [fp, #-16]
	nop
.L245:
	b	.L247
.L242:
	ldr	r3, .L248+20
	ldr	r3, [r3]
	mov	r2, #20
	mov	r1, #1
	ldr	r0, .L248+24
	bl	fwrite
	b	.L247
.L241:
	ldr	r3, .L248+20
	ldr	r3, [r3]
	mov	r2, #17
	mov	r1, #1
	ldr	r0, .L248+28
	bl	fwrite
	b	.L247
.L240:
	ldr	r0, .L248+32
	bl	perror
.L247:
	ldr	r0, [fp, #-12]
	bl	fclose
	ldr	r3, [fp, #-16]
.L239:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L249:
	.align	2
.L248:
	.word	stdin
	.word	.LC51
	.word	.LC52
	.word	info_header
	.word	mode
	.word	stderr
	.word	.LC53
	.word	.LC54
	.word	.LC55
	.size	process_archive, .-process_archive
	.section	.rodata
	.align	2
.LC56:
	.ascii	"vxc\000"
	.align	2
.LC57:
	.ascii	"\012Reading from stdin...\012\000"
	.align	2
.LC58:
	.ascii	"\012Archive \"%s\"...\012\012\000"
	.align	2
.LC59:
	.ascii	"Usage: unlzx [-v][-x][-c] [archive...]\012\000"
	.align	2
.LC60:
	.ascii	"\011-c : extract/list from stdin\012\000"
	.align	2
.LC61:
	.ascii	"\011-v : list archive(s)\012\000"
	.align	2
.LC62:
	.ascii	"\011-x : extract (default)\012\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L265
	mov	r2, #1
	str	r2, [r3]
	b	.L251
.L256:
	ldr	r3, [fp, #-8]
	cmp	r3, #120
	beq	.L252
	ldr	r3, [fp, #-8]
	cmp	r3, #120
	bgt	.L251
	ldr	r3, [fp, #-8]
	cmp	r3, #118
	beq	.L253
	ldr	r3, [fp, #-8]
	cmp	r3, #118
	bgt	.L251
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	beq	.L254
	ldr	r3, [fp, #-8]
	cmp	r3, #99
	beq	.L255
	b	.L251
.L253:
	ldr	r3, .L265
	mov	r2, #2
	str	r2, [r3]
	b	.L251
.L252:
	ldr	r3, .L265
	mov	r2, #1
	str	r2, [r3]
	b	.L251
.L255:
	mov	r3, #1
	str	r3, [fp, #-12]
	b	.L251
.L254:
	mov	r3, #1
	str	r3, [fp, #-16]
	nop
.L251:
	ldr	r2, .L265+4
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	getopt
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L256
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L257
	ldr	r3, .L265+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bgt	.L257
	mov	r3, #1
	str	r3, [fp, #-16]
.L257:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L258
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L259
	ldr	r0, .L265+12
	bl	puts
	mov	r0, #0
	bl	process_archive
	mov	r3, #0
	str	r3, [fp, #-16]
.L259:
	ldr	r3, .L265+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	sub	r3, r2, r3
	cmp	r3, #1
	ble	.L260
	b	.L261
.L262:
	ldr	r3, .L265+8
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L265+16
	bl	printf
	ldr	r3, .L265+8
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	process_archive
	ldr	r3, .L265+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L265+8
	str	r3, [r2]
.L261:
	ldr	r3, .L265+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bgt	.L262
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L263
.L260:
	ldr	r3, .L265+8
	ldr	r3, [r3]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	process_archive
	str	r0, [fp, #-16]
	b	.L263
.L258:
	ldr	r3, .L265+20
	ldr	r3, [r3]
	mov	r2, #39
	mov	r1, #1
	ldr	r0, .L265+24
	bl	fwrite
	ldr	r3, .L265+20
	ldr	r3, [r3]
	mov	r2, #30
	mov	r1, #1
	ldr	r0, .L265+28
	bl	fwrite
	ldr	r3, .L265+20
	ldr	r3, [r3]
	mov	r2, #22
	mov	r1, #1
	ldr	r0, .L265+32
	bl	fwrite
	ldr	r3, .L265+20
	ldr	r3, [r3]
	mov	r2, #24
	mov	r1, #1
	ldr	r0, .L265+36
	bl	fwrite
	mov	r3, #2
	str	r3, [fp, #-16]
.L263:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L266:
	.align	2
.L265:
	.word	mode
	.word	.LC56
	.word	optind
	.word	.LC57
	.word	.LC58
	.word	stderr
	.word	.LC59
	.word	.LC60
	.word	.LC61
	.word	.LC62
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
