	.file	"176704974.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 32
	.type	yysccsid, @object
	.size	yysccsid, 36
yysccsid:
	.string	"@(#)yaccpar\t1.9 (Berkeley) 02/21/93"
	.local	cmd_type
	.comm	cmd_type,4,4
	.local	cmd_form
	.comm	cmd_form,4,4
	.local	cmd_bytesz
	.comm	cmd_bytesz,4,4
	.globl	cbuf
	.bss
	.align 32
	.type	cbuf, @object
	.size	cbuf, 512
cbuf:
	.zero	512
	.globl	fromname
	.align 8
	.type	fromname, @object
	.size	fromname, 8
fromname:
	.zero	8
	.text
	.type	ftp_error, @function
ftp_error:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	perror@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ftp_error, .-ftp_error
	.section	.rodata
	.align 32
	.type	ftp_lhs, @object
	.size	ftp_lhs, 148
ftp_lhs:
	.value	-1
	.value	0
	.value	0
	.value	0
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	2
	.value	3
	.value	4
	.value	4
	.value	12
	.value	5
	.value	13
	.value	13
	.value	13
	.value	6
	.value	6
	.value	6
	.value	6
	.value	6
	.value	6
	.value	6
	.value	6
	.value	7
	.value	7
	.value	7
	.value	8
	.value	8
	.value	8
	.value	10
	.value	14
	.value	11
	.value	9
	.align 32
	.type	ftp_len, @object
	.size	ftp_len, 148
ftp_len:
	.value	2
	.value	0
	.value	2
	.value	2
	.value	4
	.value	4
	.value	4
	.value	2
	.value	4
	.value	4
	.value	4
	.value	4
	.value	8
	.value	5
	.value	5
	.value	5
	.value	3
	.value	5
	.value	3
	.value	5
	.value	5
	.value	2
	.value	5
	.value	4
	.value	2
	.value	3
	.value	5
	.value	2
	.value	4
	.value	2
	.value	5
	.value	5
	.value	3
	.value	3
	.value	4
	.value	6
	.value	5
	.value	7
	.value	9
	.value	4
	.value	6
	.value	5
	.value	2
	.value	5
	.value	5
	.value	2
	.value	2
	.value	5
	.value	1
	.value	0
	.value	1
	.value	1
	.value	11
	.value	1
	.value	1
	.value	1
	.value	1
	.value	3
	.value	1
	.value	3
	.value	1
	.value	1
	.value	3
	.value	2
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	1
	.value	0
	.align 32
	.type	ftp_defred, @object
	.size	ftp_defred, 400
ftp_defred:
	.value	1
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	73
	.value	73
	.value	73
	.value	0
	.value	73
	.value	0
	.value	0
	.value	73
	.value	73
	.value	73
	.value	73
	.value	0
	.value	0
	.value	0
	.value	0
	.value	73
	.value	73
	.value	73
	.value	73
	.value	73
	.value	0
	.value	73
	.value	73
	.value	2
	.value	3
	.value	46
	.value	0
	.value	0
	.value	45
	.value	0
	.value	7
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	24
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	21
	.value	0
	.value	0
	.value	27
	.value	29
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	42
	.value	0
	.value	0
	.value	48
	.value	0
	.value	50
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	60
	.value	0
	.value	0
	.value	64
	.value	66
	.value	65
	.value	0
	.value	68
	.value	69
	.value	67
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	71
	.value	0
	.value	70
	.value	0
	.value	0
	.value	25
	.value	0
	.value	18
	.value	0
	.value	16
	.value	0
	.value	73
	.value	0
	.value	73
	.value	0
	.value	0
	.value	0
	.value	0
	.value	32
	.value	33
	.value	0
	.value	0
	.value	0
	.value	4
	.value	5
	.value	0
	.value	6
	.value	0
	.value	0
	.value	0
	.value	51
	.value	63
	.value	8
	.value	9
	.value	10
	.value	0
	.value	0
	.value	0
	.value	0
	.value	11
	.value	0
	.value	23
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	34
	.value	0
	.value	0
	.value	39
	.value	0
	.value	0
	.value	28
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	55
	.value	53
	.value	54
	.value	57
	.value	59
	.value	62
	.value	13
	.value	14
	.value	15
	.value	0
	.value	47
	.value	22
	.value	26
	.value	19
	.value	17
	.value	0
	.value	0
	.value	36
	.value	0
	.value	0
	.value	20
	.value	30
	.value	31
	.value	41
	.value	43
	.value	44
	.value	0
	.value	0
	.value	35
	.value	72
	.value	0
	.value	40
	.value	0
	.value	0
	.value	0
	.value	37
	.value	0
	.value	0
	.value	12
	.value	0
	.value	0
	.value	38
	.value	0
	.value	0
	.value	0
	.value	52
	.align 16
	.type	ftp_dgoto, @object
	.size	ftp_dgoto, 30
ftp_dgoto:
	.value	1
	.value	34
	.value	35
	.value	71
	.value	73
	.value	75
	.value	80
	.value	84
	.value	88
	.value	45
	.value	95
	.value	184
	.value	125
	.value	157
	.value	96
	.align 32
	.type	ftp_sindex, @object
	.size	ftp_sindex, 400
ftp_sindex:
	.value	0
	.value	-224
	.value	-247
	.value	-239
	.value	-236
	.value	-232
	.value	-222
	.value	-204
	.value	-200
	.value	-181
	.value	-177
	.value	0
	.value	0
	.value	0
	.value	-166
	.value	0
	.value	-161
	.value	-199
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-160
	.value	-159
	.value	-264
	.value	-158
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-157
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-167
	.value	-162
	.value	0
	.value	-156
	.value	0
	.value	-250
	.value	-198
	.value	-165
	.value	-155
	.value	-154
	.value	-153
	.value	-151
	.value	-150
	.value	-152
	.value	0
	.value	-145
	.value	-252
	.value	-229
	.value	-217
	.value	-302
	.value	0
	.value	-144
	.value	-146
	.value	0
	.value	0
	.value	-142
	.value	-141
	.value	-140
	.value	-139
	.value	-137
	.value	0
	.value	-136
	.value	-135
	.value	0
	.value	-134
	.value	0
	.value	-133
	.value	-132
	.value	-130
	.value	-131
	.value	-128
	.value	0
	.value	-249
	.value	-127
	.value	0
	.value	0
	.value	0
	.value	-126
	.value	0
	.value	0
	.value	0
	.value	-125
	.value	-152
	.value	-152
	.value	-152
	.value	-205
	.value	-152
	.value	0
	.value	-124
	.value	0
	.value	-152
	.value	-152
	.value	0
	.value	-152
	.value	0
	.value	-143
	.value	0
	.value	-173
	.value	0
	.value	-171
	.value	0
	.value	-152
	.value	-123
	.value	-152
	.value	-152
	.value	0
	.value	0
	.value	-152
	.value	-152
	.value	-152
	.value	0
	.value	0
	.value	-138
	.value	0
	.value	-164
	.value	-164
	.value	-122
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-121
	.value	-120
	.value	-118
	.value	-148
	.value	0
	.value	-117
	.value	0
	.value	-116
	.value	-115
	.value	-114
	.value	-113
	.value	-112
	.value	0
	.value	-163
	.value	-111
	.value	0
	.value	-110
	.value	-109
	.value	0
	.value	-107
	.value	-106
	.value	-105
	.value	-104
	.value	-103
	.value	-129
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-101
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-100
	.value	-102
	.value	0
	.value	-98
	.value	-102
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-99
	.value	-97
	.value	0
	.value	0
	.value	-95
	.value	0
	.value	-96
	.value	-94
	.value	-92
	.value	0
	.value	-152
	.value	-93
	.value	0
	.value	-91
	.value	-90
	.value	0
	.value	-88
	.value	-87
	.value	-86
	.value	0
	.align 32
	.type	ftp_rindex, @object
	.size	ftp_rindex, 400
ftp_rindex:
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-83
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-82
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	-81
	.value	-80
	.value	0
	.value	-158
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.align 16
	.type	ftp_gindex, @object
	.size	ftp_gindex, 30
ftp_gindex:
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	0
	.value	16
	.value	-89
	.value	-25
	.value	35
	.value	47
	.value	0
	.align 32
	.type	ftp_table, @object
	.size	ftp_table, 382
ftp_table:
	.value	129
	.value	130
	.value	131
	.value	104
	.value	134
	.value	59
	.value	60
	.value	76
	.value	136
	.value	137
	.value	77
	.value	138
	.value	78
	.value	79
	.value	105
	.value	106
	.value	107
	.value	98
	.value	99
	.value	146
	.value	123
	.value	148
	.value	149
	.value	36
	.value	124
	.value	150
	.value	151
	.value	152
	.value	46
	.value	47
	.value	37
	.value	49
	.value	2
	.value	38
	.value	52
	.value	53
	.value	54
	.value	55
	.value	39
	.value	58
	.value	100
	.value	101
	.value	62
	.value	63
	.value	64
	.value	65
	.value	66
	.value	40
	.value	68
	.value	69
	.value	3
	.value	4
	.value	102
	.value	103
	.value	5
	.value	6
	.value	7
	.value	8
	.value	9
	.value	10
	.value	11
	.value	12
	.value	13
	.value	81
	.value	132
	.value	133
	.value	41
	.value	82
	.value	83
	.value	42
	.value	14
	.value	51
	.value	15
	.value	16
	.value	17
	.value	18
	.value	19
	.value	20
	.value	21
	.value	22
	.value	23
	.value	24
	.value	25
	.value	26
	.value	27
	.value	28
	.value	29
	.value	30
	.value	43
	.value	31
	.value	32
	.value	33
	.value	44
	.value	85
	.value	86
	.value	154
	.value	140
	.value	141
	.value	143
	.value	144
	.value	155
	.value	193
	.value	87
	.value	48
	.value	156
	.value	70
	.value	170
	.value	171
	.value	50
	.value	56
	.value	72
	.value	57
	.value	61
	.value	67
	.value	89
	.value	90
	.value	91
	.value	74
	.value	163
	.value	93
	.value	94
	.value	142
	.value	92
	.value	145
	.value	97
	.value	108
	.value	109
	.value	110
	.value	111
	.value	139
	.value	112
	.value	113
	.value	114
	.value	115
	.value	116
	.value	153
	.value	117
	.value	118
	.value	121
	.value	119
	.value	120
	.value	122
	.value	180
	.value	126
	.value	127
	.value	128
	.value	135
	.value	147
	.value	186
	.value	160
	.value	161
	.value	124
	.value	162
	.value	164
	.value	165
	.value	166
	.value	167
	.value	168
	.value	159
	.value	173
	.value	169
	.value	174
	.value	172
	.value	175
	.value	176
	.value	177
	.value	178
	.value	179
	.value	181
	.value	158
	.value	182
	.value	183
	.value	185
	.value	190
	.value	187
	.value	189
	.value	188
	.value	191
	.value	192
	.value	195
	.value	194
	.value	196
	.value	0
	.value	0
	.value	198
	.value	197
	.value	73
	.value	199
	.value	49
	.value	56
	.value	58
	.align 32
	.type	ftp_check, @object
	.size	ftp_check, 382
ftp_check:
	.value	89
	.value	90
	.value	91
	.value	305
	.value	93
	.value	269
	.value	270
	.value	257
	.value	97
	.value	98
	.value	260
	.value	100
	.value	262
	.value	263
	.value	316
	.value	317
	.value	318
	.value	269
	.value	270
	.value	108
	.value	269
	.value	110
	.value	111
	.value	270
	.value	273
	.value	114
	.value	115
	.value	116
	.value	12
	.value	13
	.value	269
	.value	15
	.value	256
	.value	269
	.value	18
	.value	19
	.value	20
	.value	21
	.value	270
	.value	23
	.value	269
	.value	270
	.value	26
	.value	27
	.value	28
	.value	29
	.value	30
	.value	269
	.value	32
	.value	33
	.value	274
	.value	275
	.value	269
	.value	270
	.value	278
	.value	279
	.value	280
	.value	281
	.value	282
	.value	283
	.value	284
	.value	285
	.value	286
	.value	261
	.value	269
	.value	270
	.value	270
	.value	265
	.value	266
	.value	269
	.value	294
	.value	270
	.value	296
	.value	297
	.value	298
	.value	299
	.value	300
	.value	301
	.value	302
	.value	303
	.value	304
	.value	305
	.value	306
	.value	307
	.value	308
	.value	309
	.value	310
	.value	311
	.value	269
	.value	313
	.value	314
	.value	315
	.value	269
	.value	258
	.value	259
	.value	259
	.value	269
	.value	270
	.value	269
	.value	270
	.value	264
	.value	190
	.value	267
	.value	269
	.value	268
	.value	272
	.value	269
	.value	270
	.value	269
	.value	269
	.value	272
	.value	270
	.value	270
	.value	270
	.value	269
	.value	269
	.value	269
	.value	273
	.value	266
	.value	269
	.value	272
	.value	105
	.value	273
	.value	107
	.value	269
	.value	269
	.value	272
	.value	269
	.value	269
	.value	272
	.value	270
	.value	270
	.value	269
	.value	269
	.value	269
	.value	273
	.value	270
	.value	270
	.value	269
	.value	271
	.value	270
	.value	269
	.value	271
	.value	270
	.value	270
	.value	270
	.value	270
	.value	270
	.value	173
	.value	270
	.value	270
	.value	273
	.value	270
	.value	270
	.value	270
	.value	270
	.value	270
	.value	270
	.value	123
	.value	269
	.value	272
	.value	270
	.value	273
	.value	270
	.value	270
	.value	270
	.value	270
	.value	270
	.value	269
	.value	122
	.value	270
	.value	273
	.value	270
	.value	269
	.value	273
	.value	270
	.value	273
	.value	271
	.value	270
	.value	270
	.value	273
	.value	271
	.value	-1
	.value	-1
	.value	271
	.value	273
	.value	269
	.value	273
	.value	270
	.value	270
	.value	270
	.globl	ftp_debug
	.bss
	.align 4
	.type	ftp_debug, @object
	.size	ftp_debug, 4
ftp_debug:
	.zero	4
	.globl	ftp_nerrs
	.align 4
	.type	ftp_nerrs, @object
	.size	ftp_nerrs, 4
ftp_nerrs:
	.zero	4
	.globl	ftp_errflag
	.align 4
	.type	ftp_errflag, @object
	.size	ftp_errflag, 4
ftp_errflag:
	.zero	4
	.globl	ftp_char
	.align 4
	.type	ftp_char, @object
	.size	ftp_char, 4
ftp_char:
	.zero	4
	.globl	ftp_val
	.align 4
	.type	ftp_val, @object
	.size	ftp_val, 4
ftp_val:
	.zero	4
	.globl	ftp_lval
	.align 4
	.type	ftp_lval, @object
	.size	ftp_lval, 4
ftp_lval:
	.zero	4
	.local	yystack
	.comm	yystack,48,32
	.globl	cmdtab
	.section	.rodata
.LC0:
	.string	"USER"
.LC1:
	.string	"<sp> username"
.LC2:
	.string	"PASS"
.LC3:
	.string	"<sp> password"
.LC4:
	.string	"ACCT"
.LC5:
	.string	"(specify account)"
.LC6:
	.string	"SMNT"
.LC7:
	.string	"(structure mount)"
.LC8:
	.string	"REIN"
.LC9:
	.string	"(reinitialize server state)"
.LC10:
	.string	"QUIT"
.LC11:
	.string	"(terminate service)"
.LC12:
	.string	"PORT"
.LC13:
	.string	"<sp> b0, b1, b2, b3, b4"
.LC14:
	.string	"PASV"
.LC15:
	.string	"(set server in passive mode)"
.LC16:
	.string	"TYPE"
.LC17:
	.string	"<sp> [ A | E | I | L ]"
.LC18:
	.string	"STRU"
.LC19:
	.string	"(specify file structure)"
.LC20:
	.string	"MODE"
.LC21:
	.string	"(specify transfer mode)"
.LC22:
	.string	"RETR"
.LC23:
	.string	"<sp> file-name"
.LC24:
	.string	"STOR"
.LC25:
	.string	"APPE"
.LC26:
	.string	"MLFL"
.LC27:
	.string	"(mail file)"
.LC28:
	.string	"MAIL"
.LC29:
	.string	"(mail to user)"
.LC30:
	.string	"MSND"
.LC31:
	.string	"(mail send to terminal)"
.LC32:
	.string	"MSOM"
	.align 8
.LC33:
	.string	"(mail send to terminal or mailbox)"
.LC34:
	.string	"MSAM"
	.align 8
.LC35:
	.string	"(mail send to terminal and mailbox)"
.LC36:
	.string	"MRSQ"
	.align 8
.LC37:
	.string	"(mail recipient scheme question)"
.LC38:
	.string	"MRCP"
.LC39:
	.string	"(mail recipient)"
.LC40:
	.string	"ALLO"
.LC41:
	.string	"allocate storage (vacuously)"
.LC42:
	.string	"REST"
.LC43:
	.string	"(restart command)"
.LC44:
	.string	"RNFR"
.LC45:
	.string	"RNTO"
.LC46:
	.string	"ABOR"
.LC47:
	.string	"(abort operation)"
.LC48:
	.string	"DELE"
.LC49:
	.string	"CWD"
.LC50:
	.string	"[ <sp> directory-name ]"
.LC51:
	.string	"XCWD"
.LC52:
	.string	"LIST"
.LC53:
	.string	"[ <sp> path-name ]"
.LC54:
	.string	"NLST"
.LC55:
	.string	"SITE"
.LC56:
	.string	"site-cmd [ <sp> arguments ]"
.LC57:
	.string	"SYST"
	.align 8
.LC58:
	.string	"(get type of operating system)"
.LC59:
	.string	"STAT"
.LC60:
	.string	"HELP"
.LC61:
	.string	"[ <sp> <string> ]"
.LC62:
	.string	"NOOP"
.LC63:
	.string	""
.LC64:
	.string	"MKD"
.LC65:
	.string	"<sp> path-name"
.LC66:
	.string	"XMKD"
.LC67:
	.string	"RMD"
.LC68:
	.string	"XRMD"
.LC69:
	.string	"PWD"
.LC70:
	.string	"(return current directory)"
.LC71:
	.string	"XPWD"
.LC72:
	.string	"CDUP"
.LC73:
	.string	"(change to parent directory)"
.LC74:
	.string	"XCUP"
.LC75:
	.string	"STOU"
.LC76:
	.string	"SIZE"
.LC77:
	.string	"MDTM"
	.section	.data.rel.local,"aw"
	.align 32
	.type	cmdtab, @object
	.size	cmdtab, 1152
cmdtab:
	.quad	.LC0
	.value	274
	.value	2
	.value	1
	.zero	2
	.quad	.LC1
	.quad	.LC2
	.value	275
	.value	5
	.value	1
	.zero	2
	.quad	.LC3
	.quad	.LC4
	.value	276
	.value	2
	.value	0
	.zero	2
	.quad	.LC5
	.quad	.LC6
	.value	312
	.value	1
	.value	0
	.zero	2
	.quad	.LC7
	.quad	.LC8
	.value	277
	.value	1
	.value	0
	.zero	2
	.quad	.LC9
	.quad	.LC10
	.value	278
	.value	1
	.value	1
	.zero	2
	.quad	.LC11
	.quad	.LC12
	.value	279
	.value	1
	.value	1
	.zero	2
	.quad	.LC13
	.quad	.LC14
	.value	280
	.value	1
	.value	1
	.zero	2
	.quad	.LC15
	.quad	.LC16
	.value	281
	.value	1
	.value	1
	.zero	2
	.quad	.LC17
	.quad	.LC18
	.value	282
	.value	1
	.value	1
	.zero	2
	.quad	.LC19
	.quad	.LC20
	.value	283
	.value	1
	.value	1
	.zero	2
	.quad	.LC21
	.quad	.LC22
	.value	284
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC24
	.value	285
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC25
	.value	286
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC26
	.value	287
	.value	4
	.value	0
	.zero	2
	.quad	.LC27
	.quad	.LC28
	.value	288
	.value	4
	.value	0
	.zero	2
	.quad	.LC29
	.quad	.LC30
	.value	289
	.value	4
	.value	0
	.zero	2
	.quad	.LC31
	.quad	.LC32
	.value	290
	.value	4
	.value	0
	.zero	2
	.quad	.LC33
	.quad	.LC34
	.value	291
	.value	4
	.value	0
	.zero	2
	.quad	.LC35
	.quad	.LC36
	.value	292
	.value	4
	.value	0
	.zero	2
	.quad	.LC37
	.quad	.LC38
	.value	293
	.value	2
	.value	0
	.zero	2
	.quad	.LC39
	.quad	.LC40
	.value	294
	.value	1
	.value	1
	.zero	2
	.quad	.LC41
	.quad	.LC42
	.value	295
	.value	1
	.value	0
	.zero	2
	.quad	.LC43
	.quad	.LC44
	.value	296
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC45
	.value	297
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC46
	.value	298
	.value	1
	.value	1
	.zero	2
	.quad	.LC47
	.quad	.LC48
	.value	299
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC49
	.value	300
	.value	4
	.value	1
	.zero	2
	.quad	.LC50
	.quad	.LC51
	.value	300
	.value	4
	.value	1
	.zero	2
	.quad	.LC50
	.quad	.LC52
	.value	301
	.value	4
	.value	1
	.zero	2
	.quad	.LC53
	.quad	.LC54
	.value	302
	.value	4
	.value	1
	.zero	2
	.quad	.LC53
	.quad	.LC55
	.value	303
	.value	7
	.value	1
	.zero	2
	.quad	.LC56
	.quad	.LC57
	.value	313
	.value	1
	.value	1
	.zero	2
	.quad	.LC58
	.quad	.LC59
	.value	304
	.value	4
	.value	1
	.zero	2
	.quad	.LC53
	.quad	.LC60
	.value	305
	.value	4
	.value	1
	.zero	2
	.quad	.LC61
	.quad	.LC62
	.value	306
	.value	1
	.value	1
	.zero	2
	.quad	.LC63
	.quad	.LC64
	.value	307
	.value	2
	.value	1
	.zero	2
	.quad	.LC65
	.quad	.LC66
	.value	307
	.value	2
	.value	1
	.zero	2
	.quad	.LC65
	.quad	.LC67
	.value	308
	.value	2
	.value	1
	.zero	2
	.quad	.LC65
	.quad	.LC68
	.value	308
	.value	2
	.value	1
	.zero	2
	.quad	.LC65
	.quad	.LC69
	.value	309
	.value	1
	.value	1
	.zero	2
	.quad	.LC70
	.quad	.LC71
	.value	309
	.value	1
	.value	1
	.zero	2
	.quad	.LC70
	.quad	.LC72
	.value	310
	.value	1
	.value	1
	.zero	2
	.quad	.LC73
	.quad	.LC74
	.value	310
	.value	1
	.value	1
	.zero	2
	.quad	.LC73
	.quad	.LC75
	.value	311
	.value	2
	.value	1
	.zero	2
	.quad	.LC23
	.quad	.LC76
	.value	314
	.value	4
	.value	1
	.zero	2
	.quad	.LC65
	.quad	.LC77
	.value	315
	.value	4
	.value	1
	.zero	2
	.quad	.LC65
	.quad	0
	.value	0
	.value	0
	.value	0
	.zero	2
	.quad	0
	.globl	sitetab
	.section	.rodata
.LC78:
	.string	"UMASK"
.LC79:
	.string	"[ <sp> umask ]"
.LC80:
	.string	"IDLE"
.LC81:
	.string	"[ <sp> maximum-idle-time ]"
.LC82:
	.string	"CHMOD"
.LC83:
	.string	"<sp> mode <sp> file-name"
	.section	.data.rel.local
	.align 32
	.type	sitetab, @object
	.size	sitetab, 120
sitetab:
	.quad	.LC78
	.value	316
	.value	1
	.value	1
	.zero	2
	.quad	.LC79
	.quad	.LC80
	.value	317
	.value	1
	.value	1
	.zero	2
	.quad	.LC81
	.quad	.LC82
	.value	318
	.value	8
	.value	1
	.zero	2
	.quad	.LC83
	.quad	.LC60
	.value	305
	.value	4
	.value	1
	.zero	2
	.quad	.LC61
	.quad	0
	.value	0
	.value	0
	.value	0
	.zero	2
	.quad	0
	.text
	.type	lookup, @function
lookup:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	jmp	.L3
.L6:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L4
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L5
.L4:
	add	QWORD PTR -8[rbp], 24
.L3:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L6
	mov	eax, 0
.L5:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	lookup, .-lookup
	.section	.rodata
.LC84:
	.string	"command: %s"
.LC85:
	.string	"%c%c%c"
	.text
	.type	get_line, @function
get_line:
.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	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	r12, QWORD PTR -24[rbp]
	mov	ebx, 0
	jmp	.L8
.L14:
	mov	rax, r12
	lea	r12, 1[rax]
	movsx	rdx, ebx
	lea	rcx, tmpline[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	mov	BYTE PTR [rax], dl
	movsx	rax, ebx
	lea	rdx, tmpline[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	jne	.L9
	mov	BYTE PTR [r12], 0
	mov	eax, DWORD PTR debug[rip]
	test	eax, eax
	je	.L10
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rax
	lea	rsi, .LC84[rip]
	mov	edi, 7
	mov	eax, 0
	call	syslog@PLT
.L10:
	mov	BYTE PTR tmpline[rip], 0
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L11
.L9:
	test	ebx, ebx
	jne	.L12
	mov	BYTE PTR tmpline[rip], 0
.L12:
	add	ebx, 1
.L8:
	movsx	rax, ebx
	lea	rdx, tmpline[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	je	.L15
	sub	DWORD PTR -28[rbp], 1
	cmp	DWORD PTR -28[rbp], 0
	jg	.L14
	jmp	.L15
.L23:
	movzx	ebx, bl
	cmp	ebx, 255
	jne	.L27
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	ebx, eax
	cmp	ebx, -1
	je	.L27
	movzx	ebx, bl
	cmp	ebx, 255
	je	.L28
	cmp	ebx, 255
	jg	.L15
	cmp	ebx, 252
	jg	.L19
	cmp	ebx, 251
	jge	.L20
	jmp	.L18
.L19:
	mov	eax, ebx
	sub	eax, 253
	cmp	eax, 1
	ja	.L15
	jmp	.L26
.L20:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	ebx, eax
	movzx	eax, bl
	mov	ecx, eax
	mov	edx, 254
	mov	esi, 255
	lea	rdi, .LC85[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	jmp	.L15
.L26:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	ebx, eax
	movzx	eax, bl
	mov	ecx, eax
	mov	edx, 252
	mov	esi, 255
	lea	rdi, .LC85[rip]
	mov	eax, 0
	call	printf@PLT
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	jmp	.L15
.L18:
	jmp	.L15
.L27:
	nop
	jmp	.L16
.L28:
	nop
.L16:
	mov	rax, r12
	lea	r12, 1[rax]
	mov	edx, ebx
	mov	BYTE PTR [rax], dl
	sub	DWORD PTR -28[rbp], 1
	cmp	DWORD PTR -28[rbp], 0
	jle	.L22
	cmp	ebx, 10
	je	.L22
.L15:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	ebx, eax
	cmp	ebx, -1
	jne	.L23
.L22:
	cmp	ebx, -1
	jne	.L24
	cmp	r12, QWORD PTR -24[rbp]
	jne	.L24
	mov	eax, 0
	jmp	.L11
.L24:
	mov	BYTE PTR [r12], 0
	mov	eax, DWORD PTR debug[rip]
	test	eax, eax
	je	.L25
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, rax
	lea	rsi, .LC84[rip]
	mov	edi, 7
	mov	eax, 0
	call	syslog@PLT
.L25:
	mov	rax, QWORD PTR -24[rbp]
.L11:
	add	rsp, 32
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	get_line, .-get_line
	.section	.rodata
	.align 8
.LC86:
	.string	"Timeout (%d seconds): closing control connection."
.LC87:
	.string	"unknown"
	.align 8
.LC88:
	.string	"User %s timed out after %d seconds at %s"
	.text
	.type	toolong, @function
toolong:
.LFB9:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR timeout[rip]
	mov	edx, eax
	lea	rsi, .LC86[rip]
	mov	edi, 421
	mov	eax, 0
	call	reply@PLT
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	time@PLT
	mov	eax, DWORD PTR logging[rip]
	test	eax, eax
	je	.L30
	lea	rax, -16[rbp]
	mov	rdi, rax
	call	ctime@PLT
	mov	rcx, rax
	mov	edx, DWORD PTR timeout[rip]
	mov	rax, QWORD PTR pw[rip]
	test	rax, rax
	je	.L31
	mov	rax, QWORD PTR pw[rip]
	mov	rax, QWORD PTR [rax]
	jmp	.L32
.L31:
	lea	rax, .LC87[rip]
.L32:
	mov	r8, rcx
	mov	ecx, edx
	mov	rdx, rax
	lea	rsi, .LC88[rip]
	mov	edi, 6
	mov	eax, 0
	call	syslog@PLT
.L30:
	mov	edi, 1
	call	dologout@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L33
	call	__stack_chk_fail@PLT
.L33:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	toolong, .-toolong
	.section	.rodata
	.align 8
.LC89:
	.string	"You could at least say goodbye."
.LC90:
	.string	" \n"
.LC91:
	.string	"Unknown state in scanner."
	.text
	.globl	ftp_lex
	.type	ftp_lex, @function
ftp_lex:
.LFB10:
	.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, 16
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	eax, DWORD PTR state.2[rip]
	cmp	eax, 8
	ja	.L35
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L37[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L37[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L37:
	.long	.L44-.L37
	.long	.L43-.L37
	.long	.L40-.L37
	.long	.L42-.L37
	.long	.L41-.L37
	.long	.L40-.L37
	.long	.L39-.L37
	.long	.L38-.L37
	.long	.L36-.L37
	.text
.L44:
	lea	rsi, toolong[rip]
	mov	edi, 14
	call	signal@PLT
	mov	eax, DWORD PTR timeout[rip]
	mov	edi, eax
	call	alarm@PLT
	mov	rax, QWORD PTR stdin[rip]
	mov	rdx, rax
	mov	esi, 511
	lea	rdi, cbuf[rip]
	call	get_line
	test	rax, rax
	jne	.L45
	lea	rsi, .LC89[rip]
	mov	edi, 221
	mov	eax, 0
	call	reply@PLT
	mov	edi, 0
	call	dologout@PLT
.L45:
	mov	edi, 0
	call	alarm@PLT
	mov	esi, 13
	lea	rdi, cbuf[rip]
	call	strchr@PLT
	mov	rbx, rax
	test	rbx, rbx
	je	.L46
	mov	rax, rbx
	lea	rbx, 1[rax]
	mov	BYTE PTR [rax], 10
	mov	BYTE PTR [rbx], 0
.L46:
	lea	rsi, .LC90[rip]
	lea	rdi, cbuf[rip]
	call	strpbrk@PLT
	mov	rbx, rax
	test	rbx, rbx
	je	.L47
	lea	rdx, cbuf[rip]
	mov	rax, rbx
	sub	rax, rdx
	mov	DWORD PTR cpos.1[rip], eax
.L47:
	mov	eax, DWORD PTR cpos.1[rip]
	test	eax, eax
	jne	.L48
	mov	DWORD PTR cpos.1[rip], 4
.L48:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -21[rbp], al
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	mov	BYTE PTR [rax+rdx], 0
	lea	rdi, cbuf[rip]
	call	upper
	lea	rsi, cbuf[rip]
	lea	rdi, cmdtab[rip]
	call	lookup
	mov	rbx, rax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rcx, cbuf[rip]
	movzx	edx, BYTE PTR -21[rbp]
	mov	BYTE PTR [rax+rcx], dl
	test	rbx, rbx
	je	.L83
	movzx	eax, WORD PTR 12[rbx]
	test	ax, ax
	jne	.L50
	mov	rax, QWORD PTR [rbx]
	mov	rdi, rax
	call	nack@PLT
	mov	esi, 0
	lea	rdi, errcatch[rip]
	call	longjmp@PLT
.L50:
	movzx	eax, WORD PTR 10[rbx]
	cwde
	mov	DWORD PTR state.2[rip], eax
	lea	rdx, ftp_lval[rip]
	mov	rax, QWORD PTR [rbx]
	mov	QWORD PTR [rdx], rax
	movzx	eax, WORD PTR 8[rbx]
	cwde
	jmp	.L51
.L38:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 32
	jne	.L53
	mov	eax, DWORD PTR cpos.1[rip]
	add	eax, 1
	mov	DWORD PTR cpos.1[rip], eax
	mov	eax, 269
	jmp	.L51
.L53:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	lea	rbx, [rax+rdx]
	lea	rsi, .LC90[rip]
	mov	rdi, rbx
	call	strpbrk@PLT
	mov	r12, rax
	test	r12, r12
	je	.L54
	lea	rdx, cbuf[rip]
	mov	rax, r12
	sub	rax, rdx
	mov	DWORD PTR cpos.1[rip], eax
.L54:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -21[rbp], al
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	rdi, rbx
	call	upper
	mov	rsi, rbx
	lea	rdi, sitetab[rip]
	call	lookup
	mov	rbx, rax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rcx, cbuf[rip]
	movzx	edx, BYTE PTR -21[rbp]
	mov	BYTE PTR [rax+rcx], dl
	test	rbx, rbx
	je	.L55
	movzx	eax, WORD PTR 12[rbx]
	test	ax, ax
	jne	.L56
	mov	DWORD PTR state.2[rip], 0
	mov	rax, QWORD PTR [rbx]
	mov	rdi, rax
	call	nack@PLT
	mov	esi, 0
	lea	rdi, errcatch[rip]
	call	longjmp@PLT
.L56:
	movzx	eax, WORD PTR 10[rbx]
	cwde
	mov	DWORD PTR state.2[rip], eax
	lea	rdx, ftp_lval[rip]
	mov	rax, QWORD PTR [rbx]
	mov	QWORD PTR [rdx], rax
	movzx	eax, WORD PTR 8[rbx]
	cwde
	jmp	.L51
.L55:
	mov	DWORD PTR state.2[rip], 0
	jmp	.L52
.L41:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	jne	.L84
	mov	DWORD PTR state.2[rip], 0
	mov	eax, 270
	jmp	.L51
.L84:
	nop
.L40:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 32
	jne	.L85
	mov	eax, DWORD PTR cpos.1[rip]
	add	eax, 1
	mov	DWORD PTR cpos.1[rip], eax
	mov	eax, DWORD PTR state.2[rip]
	cmp	eax, 4
	jne	.L58
	mov	DWORD PTR state.2[rip], 3
	jmp	.L59
.L58:
	mov	eax, DWORD PTR state.2[rip]
	add	eax, 1
	mov	DWORD PTR state.2[rip], eax
.L59:
	mov	eax, 269
	jmp	.L51
.L39:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	jne	.L42
	mov	DWORD PTR state.2[rip], 0
	mov	eax, 270
	jmp	.L51
.L42:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	lea	rbx, [rax+rdx]
	mov	rdi, rbx
	call	strlen@PLT
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR cpos.1[rip]
	add	eax, edx
	mov	DWORD PTR cpos.1[rip], eax
	cmp	DWORD PTR -20[rbp], 1
	jle	.L86
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	jne	.L86
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	mov	BYTE PTR [rax+rdx], 0
	lea	r12, ftp_lval[rip]
	mov	rdi, rbx
	call	copy
	mov	QWORD PTR [r12], rax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	mov	BYTE PTR [rax+rdx], 10
	mov	DWORD PTR state.2[rip], 1
	mov	eax, 272
	jmp	.L51
.L36:
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 32
	jne	.L61
	mov	eax, DWORD PTR cpos.1[rip]
	add	eax, 1
	mov	DWORD PTR cpos.1[rip], eax
	mov	eax, 269
	jmp	.L51
.L61:
	call	__ctype_b_loc@PLT
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	rax, al
	add	rax, rax
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L62
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	lea	rbx, [rax+rdx]
	nop
.L63:
	call	__ctype_b_loc@PLT
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR cpos.1[rip]
	add	eax, 1
	mov	DWORD PTR cpos.1[rip], eax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	rax, al
	add	rax, rax
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L63
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -21[rbp], al
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	rdi, rbx
	call	atoi@PLT
	mov	DWORD PTR ftp_lval[rip], eax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rcx, cbuf[rip]
	movzx	edx, BYTE PTR -21[rbp]
	mov	BYTE PTR [rax+rcx], dl
	mov	DWORD PTR state.2[rip], 2
	mov	eax, 273
	jmp	.L51
.L62:
	mov	DWORD PTR state.2[rip], 2
	jmp	.L40
.L43:
	call	__ctype_b_loc@PLT
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	rax, al
	add	rax, rax
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	je	.L64
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	lea	rbx, [rax+rdx]
	nop
.L65:
	call	__ctype_b_loc@PLT
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR cpos.1[rip]
	add	eax, 1
	mov	DWORD PTR cpos.1[rip], eax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	rax, al
	add	rax, rax
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 2048
	test	eax, eax
	jne	.L65
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -21[rbp], al
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rdx, cbuf[rip]
	mov	BYTE PTR [rax+rdx], 0
	mov	rdi, rbx
	call	atoi@PLT
	mov	DWORD PTR ftp_lval[rip], eax
	mov	eax, DWORD PTR cpos.1[rip]
	cdqe
	lea	rcx, cbuf[rip]
	movzx	edx, BYTE PTR -21[rbp]
	mov	BYTE PTR [rax+rcx], dl
	mov	eax, 273
	jmp	.L51
.L64:
	mov	eax, DWORD PTR cpos.1[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR cpos.1[rip], edx
	cdqe
	lea	rdx, cbuf[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	sub	eax, 10
	cmp	eax, 106
	ja	.L87
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L68[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L68[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L68:
	.long	.L82-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L81-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L80-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L79-.L68
	.long	.L78-.L68
	.long	.L77-.L68
	.long	.L87-.L68
	.long	.L76-.L68
	.long	.L75-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L74-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L73-.L68
	.long	.L87-.L68
	.long	.L72-.L68
	.long	.L87-.L68
	.long	.L71-.L68
	.long	.L87-.L68
	.long	.L70-.L68
	.long	.L69-.L68
	.long	.L67-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L79-.L68
	.long	.L78-.L68
	.long	.L77-.L68
	.long	.L87-.L68
	.long	.L76-.L68
	.long	.L75-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L74-.L68
	.long	.L87-.L68
	.long	.L87-.L68
	.long	.L73-.L68
	.long	.L87-.L68
	.long	.L72-.L68
	.long	.L87-.L68
	.long	.L71-.L68
	.long	.L87-.L68
	.long	.L70-.L68
	.long	.L69-.L68
	.long	.L67-.L68
	.text
.L82:
	mov	DWORD PTR state.2[rip], 0
	mov	eax, 270
	jmp	.L51
.L81:
	mov	eax, 269
	jmp	.L51
.L80:
	mov	eax, 271
	jmp	.L51
.L79:
	mov	eax, 257
	jmp	.L51
.L78:
	mov	eax, 258
	jmp	.L51
.L77:
	mov	eax, 259
	jmp	.L51
.L76:
	mov	eax, 260
	jmp	.L51
.L75:
	mov	eax, 261
	jmp	.L51
.L74:
	mov	eax, 262
	jmp	.L51
.L73:
	mov	eax, 263
	jmp	.L51
.L72:
	mov	eax, 264
	jmp	.L51
.L71:
	mov	eax, 265
	jmp	.L51
.L70:
	mov	eax, 266
	jmp	.L51
.L69:
	mov	eax, 267
	jmp	.L51
.L67:
	mov	eax, 268
	jmp	.L51
.L35:
	lea	rdi, .LC91[rip]
	call	fatal@PLT
	jmp	.L52
.L83:
	nop
	jmp	.L52
.L85:
	nop
	jmp	.L52
.L86:
	nop
	jmp	.L52
.L87:
	nop
.L52:
	mov	edi, 0
	call	ftp_error
	mov	DWORD PTR state.2[rip], 0
	mov	esi, 0
	lea	rdi, errcatch[rip]
	call	longjmp@PLT
.L51:
	add	rsp, 16
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	ftp_lex, .-ftp_lex
	.type	upper, @function
upper:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	jmp	.L89
.L91:
	call	__ctype_b_loc@PLT
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	rax, al
	add	rax, rax
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	and	eax, 512
	test	eax, eax
	je	.L90
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	toupper@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
.L90:
	add	QWORD PTR -8[rbp], 1
.L89:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L91
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	upper, .-upper
	.section	.rodata
.LC92:
	.string	"Ran out of memory."
	.text
	.type	copy, @function
copy:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	strlen@PLT
	add	rax, 1
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L93
	lea	rdi, .LC92[rip]
	call	fatal@PLT
	jmp	.L94
.L93:
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcpy@PLT
.L94:
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	copy, .-copy
	.section	.rodata
.LC93:
	.string	"SITE "
.LC94:
	.string	"(* =>'s unimplemented)"
	.align 8
.LC95:
	.string	"The following %scommands are recognized %s."
.LC96:
	.string	"   "
.LC97:
	.string	"ftp.y"
.LC98:
	.string	"c->name != 0"
.LC99:
	.string	"%s%c"
.LC100:
	.string	"\r"
	.align 8
.LC101:
	.string	"Direct comments to ftp-bugs@%s."
.LC102:
	.string	"Unknown command %s."
.LC103:
	.string	"Syntax: %s%s %s"
.LC104:
	.string	"%s%-*s\t%s; unimplemented."
	.text
	.type	help, @function
help:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 56
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	lea	rax, sitetab[rip]
	cmp	QWORD PTR -88[rbp], rax
	jne	.L97
	lea	rax, .LC93[rip]
	mov	QWORD PTR -56[rbp], rax
	jmp	.L98
.L97:
	lea	rax, .LC63[rip]
	mov	QWORD PTR -56[rbp], rax
.L98:
	mov	r12d, 0
	mov	r15d, 0
	mov	rbx, QWORD PTR -88[rbp]
	jmp	.L99
.L101:
	mov	rax, QWORD PTR [rbx]
	mov	rdi, rax
	call	strlen@PLT
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], r12d
	jle	.L100
	mov	r12d, DWORD PTR -60[rbp]
.L100:
	add	r15d, 1
	add	rbx, 24
.L99:
	mov	rax, QWORD PTR [rbx]
	test	rax, rax
	jne	.L101
	lea	eax, 8[r12]
	and	eax, -8
	mov	r12d, eax
	cmp	QWORD PTR -96[rbp], 0
	jne	.L102
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, .LC94[rip]
	mov	rdx, rax
	lea	rsi, .LC95[rip]
	mov	edi, 214
	mov	eax, 0
	call	lreply@PLT
	mov	eax, 76
	cdq
	idiv	r12d
	mov	DWORD PTR -68[rbp], eax
	cmp	DWORD PTR -68[rbp], 0
	jne	.L103
	mov	DWORD PTR -68[rbp], 1
.L103:
	mov	eax, DWORD PTR -68[rbp]
	add	eax, r15d
	sub	eax, 1
	cdq
	idiv	DWORD PTR -68[rbp]
	mov	DWORD PTR -64[rbp], eax
	mov	r14d, 0
	jmp	.L104
.L114:
	lea	rdi, .LC96[rip]
	mov	eax, 0
	call	printf@PLT
	mov	r13d, 0
	jmp	.L105
.L113:
	mov	eax, r13d
	imul	eax, DWORD PTR -64[rbp]
	movsx	rdx, eax
	movsx	rax, r14d
	add	rdx, rax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR [rbx]
	test	rax, rax
	jne	.L106
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 1152
	lea	rsi, .LC97[rip]
	lea	rdi, .LC98[rip]
	call	__assert_fail@PLT
.L106:
	movzx	eax, WORD PTR 12[rbx]
	test	ax, ax
	je	.L107
	mov	edx, 32
	jmp	.L108
.L107:
	mov	edx, 42
.L108:
	mov	rax, QWORD PTR [rbx]
	mov	rsi, rax
	lea	rdi, .LC99[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR -64[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rcx, [rbx+rax]
	movsx	rdx, r15d
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	cmp	rcx, rax
	jnb	.L118
	mov	rax, QWORD PTR [rbx]
	mov	rdi, rax
	call	strlen@PLT
	add	eax, 1
	mov	ebx, eax
	jmp	.L111
.L112:
	mov	edi, 32
	call	putchar@PLT
	add	ebx, 1
.L111:
	cmp	ebx, r12d
	jl	.L112
	add	r13d, 1
.L105:
	cmp	r13d, DWORD PTR -68[rbp]
	jl	.L113
	jmp	.L110
.L118:
	nop
.L110:
	lea	rdi, .LC100[rip]
	call	puts@PLT
	add	r14d, 1
.L104:
	cmp	r14d, DWORD PTR -64[rbp]
	jl	.L114
	mov	rax, QWORD PTR stdout[rip]
	mov	rdi, rax
	call	fflush@PLT
	lea	rdx, hostname[rip]
	lea	rsi, .LC101[rip]
	mov	edi, 214
	mov	eax, 0
	call	reply@PLT
	jmp	.L96
.L102:
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	upper
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	lookup
	mov	rbx, rax
	test	rbx, rbx
	jne	.L116
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, rax
	lea	rsi, .LC102[rip]
	mov	edi, 502
	mov	eax, 0
	call	reply@PLT
	jmp	.L96
.L116:
	movzx	eax, WORD PTR 12[rbx]
	test	ax, ax
	je	.L117
	mov	rcx, QWORD PTR 16[rbx]
	mov	rdx, QWORD PTR [rbx]
	mov	rax, QWORD PTR -56[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	rdx, rax
	lea	rsi, .LC103[rip]
	mov	edi, 214
	mov	eax, 0
	call	reply@PLT
	jmp	.L96
.L117:
	mov	rcx, QWORD PTR 16[rbx]
	mov	rdx, QWORD PTR [rbx]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, rcx
	mov	r8, rdx
	mov	ecx, r12d
	mov	rdx, rax
	lea	rsi, .LC104[rip]
	mov	edi, 214
	mov	eax, 0
	call	reply@PLT
.L96:
	add	rsp, 56
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	help, .-help
	.section	.rodata
.LC105:
	.string	"%s: not a plain file."
.LC106:
	.string	"%lu"
.LC107:
	.string	"r"
.LC108:
	.string	"%ld"
	.align 8
.LC110:
	.string	"SIZE not implemented for Type %c."
.LC109:
	.string	"?AEIL"
	.text
	.type	sizecmd, @function
sizecmd:
.LFB14:
	.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, 192
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -200[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR type[rip]
	cmp	eax, 1
	je	.L120
	test	eax, eax
	jle	.L121
	sub	eax, 3
	cmp	eax, 1
	ja	.L121
	lea	rdx, -176[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	stat@PLT
	test	eax, eax
	js	.L122
	mov	eax, DWORD PTR -152[rbp]
	and	eax, 61440
	cmp	eax, 32768
	je	.L123
.L122:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, rax
	lea	rsi, .LC105[rip]
	mov	edi, 550
	mov	eax, 0
	call	reply@PLT
	jmp	.L119
.L123:
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, rax
	lea	rsi, .LC106[rip]
	mov	edi, 213
	mov	eax, 0
	call	reply@PLT
	jmp	.L119
.L120:
	mov	rax, QWORD PTR -200[rbp]
	lea	rsi, .LC107[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -184[rbp], rax
	cmp	QWORD PTR -184[rbp], 0
	jne	.L126
	mov	rax, QWORD PTR -200[rbp]
	mov	rsi, rax
	mov	edi, 550
	mov	eax, 0
	call	perror_reply@PLT
	jmp	.L119
.L126:
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	fileno@PLT
	mov	edx, eax
	lea	rax, -176[rbp]
	mov	rsi, rax
	mov	edi, edx
	call	fstat@PLT
	test	eax, eax
	js	.L128
	mov	eax, DWORD PTR -152[rbp]
	and	eax, 61440
	cmp	eax, 32768
	je	.L129
.L128:
	mov	rax, QWORD PTR -200[rbp]
	mov	rdx, rax
	lea	rsi, .LC105[rip]
	mov	edi, 550
	mov	eax, 0
	call	reply@PLT
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	fclose@PLT
	jmp	.L119
.L129:
	mov	ebx, 0
	jmp	.L130
.L132:
	cmp	r12d, 10
	jne	.L131
	add	ebx, 1
.L131:
	add	ebx, 1
.L130:
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	getc@PLT
	mov	r12d, eax
	cmp	r12d, -1
	jne	.L132
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	fclose@PLT
	mov	edx, ebx
	lea	rsi, .LC108[rip]
	mov	edi, 213
	mov	eax, 0
	call	reply@PLT
	jmp	.L119
.L121:
	mov	eax, DWORD PTR type[rip]
	cdqe
	lea	rdx, .LC109[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edx, eax
	lea	rsi, .LC110[rip]
	mov	edi, 504
	mov	eax, 0
	call	reply@PLT
.L119:
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L133
	call	__stack_chk_fail@PLT
.L133:
	add	rsp, 192
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	sizecmd, .-sizecmd
	.type	yygrowstack, @function
yygrowstack:
.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	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	jne	.L135
	mov	DWORD PTR -24[rbp], 500
	jmp	.L136
.L135:
	cmp	DWORD PTR -24[rbp], 499
	jbe	.L137
	mov	eax, -1
	jmp	.L138
.L137:
	sal	DWORD PTR -24[rbp]
	cmp	DWORD PTR -24[rbp], 500
	jbe	.L136
	mov	DWORD PTR -24[rbp], 500
.L136:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	rax, rdx
	sub	rax, rcx
	sar	rax
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L139
	mov	eax, -1
	jmp	.L138
.L139:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -16[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 16[rax], rdx
	mov	eax, DWORD PTR -24[rbp]
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L140
	mov	eax, -1
	jmp	.L138
.L140:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR 32[rax], rdx
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	add	rax, rax
	sub	rax, 2
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 24[rax], rdx
	mov	eax, 0
.L138:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	yygrowstack, .-yygrowstack
	.section	.rodata
.LC111:
	.string	"syntax error"
.LC112:
	.string	"PORT command successful."
.LC113:
	.string	"Type set to A."
.LC114:
	.string	"Form must be N."
.LC115:
	.string	"Type E not implemented."
.LC116:
	.string	"Type set to I."
.LC117:
	.string	"Type set to L (byte size 8)."
.LC118:
	.string	"Byte size must be 8."
.LC119:
	.string	"STRU F ok."
.LC120:
	.string	"Unimplemented STRU type."
.LC121:
	.string	"MODE S ok."
.LC122:
	.string	"Unimplemented MODE type."
.LC123:
	.string	"ALLO command ignored."
.LC124:
	.string	"w"
.LC125:
	.string	"a"
.LC126:
	.string	"."
.LC127:
	.string	"/bin/ls -lgA"
.LC128:
	.string	"/bin/ls -lgA %s"
.LC129:
	.string	"Bad sequence of commands."
.LC130:
	.string	"ABOR command successful."
.LC131:
	.string	"NOOP command successful."
.LC132:
	.string	".."
.LC133:
	.string	"Current UMASK is %03o"
.LC134:
	.string	"Bad UMASK value"
.LC135:
	.string	"UMASK set to %03o (was %03o)"
	.align 8
.LC136:
	.string	"CHMOD: Mode value must be between 0 and 0777"
.LC137:
	.string	"CHMOD command successful."
	.align 8
.LC138:
	.string	"Current IDLE time limit is %d seconds; max %d"
	.align 8
.LC139:
	.string	"Maximum IDLE time must be between 30 and %d seconds"
	.align 8
.LC140:
	.string	"Maximum IDLE time set to %d seconds"
.LC141:
	.string	"UNIX Type: L%d"
.LC142:
	.string	"%s"
.LC143:
	.string	"%04d%02d%02d%02d%02d%02d"
.LC144:
	.string	"Goodbye."
.LC145:
	.string	"~"
	.align 8
.LC146:
	.string	"Please login with USER and PASS."
.LC147:
	.string	"yacc stack overflow"
	.text
	.globl	ftp_parse
	.type	ftp_parse, @function
ftp_parse:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 192
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	DWORD PTR ftp_nerrs[rip], 0
	mov	DWORD PTR ftp_errflag[rip], 0
	mov	DWORD PTR ftp_char[rip], -1
	mov	DWORD PTR -208[rbp], 0
	mov	rax, QWORD PTR yystack[rip+8]
	test	rax, rax
	jne	.L142
	lea	rdi, yystack[rip]
	call	yygrowstack
	test	eax, eax
	jne	.L317
.L142:
	mov	rax, QWORD PTR yystack[rip+8]
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+32]
	mov	QWORD PTR yystack[rip+40], rax
	mov	DWORD PTR -208[rbp], 0
	mov	rax, QWORD PTR yystack[rip+16]
	mov	WORD PTR [rax], 0
.L144:
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_defred[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	jne	.L318
	mov	eax, DWORD PTR ftp_char[rip]
	test	eax, eax
	jns	.L147
	call	ftp_lex
	mov	DWORD PTR ftp_char[rip], eax
	mov	eax, DWORD PTR ftp_char[rip]
	test	eax, eax
	jns	.L147
	mov	DWORD PTR ftp_char[rip], 0
.L147:
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_sindex[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	je	.L148
	mov	eax, DWORD PTR ftp_char[rip]
	add	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	js	.L148
	cmp	DWORD PTR -212[rbp], 190
	jg	.L148
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_check[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movsx	edx, ax
	mov	eax, DWORD PTR ftp_char[rip]
	cmp	edx, eax
	jne	.L148
	mov	rdx, QWORD PTR yystack[rip+16]
	mov	rax, QWORD PTR yystack[rip+24]
	cmp	rdx, rax
	jb	.L149
	lea	rdi, yystack[rip]
	call	yygrowstack
	test	eax, eax
	jne	.L319
.L149:
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR yystack[rip+16]
	add	rax, 2
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+16]
	mov	edx, DWORD PTR -212[rbp]
	movsx	rdx, edx
	lea	rcx, [rdx+rdx]
	lea	rdx, ftp_table[rip]
	movzx	edx, WORD PTR [rcx+rdx]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR yystack[rip+40]
	add	rax, 4
	mov	QWORD PTR yystack[rip+40], rax
	mov	rax, QWORD PTR yystack[rip+40]
	mov	edx, DWORD PTR ftp_lval[rip]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR ftp_char[rip], -1
	mov	eax, DWORD PTR ftp_errflag[rip]
	test	eax, eax
	jle	.L144
	mov	eax, DWORD PTR ftp_errflag[rip]
	sub	eax, 1
	mov	DWORD PTR ftp_errflag[rip], eax
	jmp	.L144
.L148:
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_rindex[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	je	.L151
	mov	eax, DWORD PTR ftp_char[rip]
	add	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	js	.L151
	cmp	DWORD PTR -212[rbp], 190
	jg	.L151
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_check[rip]
	movzx	eax, WORD PTR [rdx+rax]
	movsx	edx, ax
	mov	eax, DWORD PTR ftp_char[rip]
	cmp	edx, eax
	jne	.L151
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -212[rbp], eax
	jmp	.L146
.L151:
	mov	eax, DWORD PTR ftp_errflag[rip]
	test	eax, eax
	jne	.L320
	lea	rdi, .LC111[rip]
	call	ftp_error
	nop
.L154:
	mov	eax, DWORD PTR ftp_nerrs[rip]
	add	eax, 1
	mov	DWORD PTR ftp_nerrs[rip], eax
	jmp	.L153
.L320:
	nop
.L153:
	mov	eax, DWORD PTR ftp_errflag[rip]
	cmp	eax, 2
	jg	.L155
	mov	DWORD PTR ftp_errflag[rip], 3
.L160:
	mov	rax, QWORD PTR yystack[rip+16]
	movzx	eax, WORD PTR [rax]
	cwde
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_sindex[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	je	.L156
	add	DWORD PTR -212[rbp], 256
	cmp	DWORD PTR -212[rbp], 0
	js	.L156
	cmp	DWORD PTR -212[rbp], 190
	jg	.L156
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_check[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cmp	ax, 256
	jne	.L156
	mov	rdx, QWORD PTR yystack[rip+16]
	mov	rax, QWORD PTR yystack[rip+24]
	cmp	rdx, rax
	jb	.L157
	lea	rdi, yystack[rip]
	call	yygrowstack
	test	eax, eax
	jne	.L321
.L157:
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR yystack[rip+16]
	add	rax, 2
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+16]
	mov	edx, DWORD PTR -212[rbp]
	movsx	rdx, edx
	lea	rcx, [rdx+rdx]
	lea	rdx, ftp_table[rip]
	movzx	edx, WORD PTR [rcx+rdx]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR yystack[rip+40]
	add	rax, 4
	mov	QWORD PTR yystack[rip+40], rax
	mov	rax, QWORD PTR yystack[rip+40]
	mov	edx, DWORD PTR ftp_lval[rip]
	mov	DWORD PTR [rax], edx
	jmp	.L144
.L156:
	mov	rdx, QWORD PTR yystack[rip+16]
	mov	rax, QWORD PTR yystack[rip+8]
	cmp	rdx, rax
	jbe	.L322
	mov	rax, QWORD PTR yystack[rip+16]
	sub	rax, 2
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	QWORD PTR yystack[rip+40], rax
	jmp	.L160
.L155:
	mov	eax, DWORD PTR ftp_char[rip]
	test	eax, eax
	je	.L323
	mov	DWORD PTR ftp_char[rip], -1
	jmp	.L144
.L318:
	nop
.L146:
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_len[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -204[rbp], eax
	cmp	DWORD PTR -204[rbp], 0
	je	.L162
	mov	rdx, QWORD PTR yystack[rip+40]
	mov	eax, 1
	sub	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR ftp_val[rip], eax
	jmp	.L163
.L162:
	mov	DWORD PTR ftp_val[rip], 0
.L163:
	cmp	DWORD PTR -212[rbp], 73
	ja	.L164
	mov	eax, DWORD PTR -212[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L166[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L166[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L166:
	.long	.L164-.L166
	.long	.L164-.L166
	.long	.L232-.L166
	.long	.L164-.L166
	.long	.L231-.L166
	.long	.L230-.L166
	.long	.L229-.L166
	.long	.L228-.L166
	.long	.L227-.L166
	.long	.L226-.L166
	.long	.L225-.L166
	.long	.L224-.L166
	.long	.L223-.L166
	.long	.L222-.L166
	.long	.L221-.L166
	.long	.L220-.L166
	.long	.L219-.L166
	.long	.L218-.L166
	.long	.L217-.L166
	.long	.L216-.L166
	.long	.L215-.L166
	.long	.L214-.L166
	.long	.L213-.L166
	.long	.L212-.L166
	.long	.L211-.L166
	.long	.L210-.L166
	.long	.L209-.L166
	.long	.L208-.L166
	.long	.L207-.L166
	.long	.L206-.L166
	.long	.L205-.L166
	.long	.L204-.L166
	.long	.L203-.L166
	.long	.L202-.L166
	.long	.L201-.L166
	.long	.L200-.L166
	.long	.L199-.L166
	.long	.L198-.L166
	.long	.L197-.L166
	.long	.L196-.L166
	.long	.L195-.L166
	.long	.L194-.L166
	.long	.L193-.L166
	.long	.L192-.L166
	.long	.L191-.L166
	.long	.L190-.L166
	.long	.L189-.L166
	.long	.L188-.L166
	.long	.L164-.L166
	.long	.L187-.L166
	.long	.L164-.L166
	.long	.L164-.L166
	.long	.L186-.L166
	.long	.L185-.L166
	.long	.L184-.L166
	.long	.L183-.L166
	.long	.L182-.L166
	.long	.L181-.L166
	.long	.L180-.L166
	.long	.L179-.L166
	.long	.L178-.L166
	.long	.L177-.L166
	.long	.L176-.L166
	.long	.L175-.L166
	.long	.L174-.L166
	.long	.L173-.L166
	.long	.L172-.L166
	.long	.L171-.L166
	.long	.L170-.L166
	.long	.L169-.L166
	.long	.L168-.L166
	.long	.L164-.L166
	.long	.L167-.L166
	.long	.L165-.L166
	.text
.L232:
	mov	QWORD PTR fromname[rip], 0
	jmp	.L164
.L231:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	user@PLT
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L164
.L230:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	pass@PLT
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L164
.L229:
	mov	DWORD PTR usedefault[rip], 0
	mov	eax, DWORD PTR pdata[rip]
	test	eax, eax
	js	.L233
	mov	eax, DWORD PTR pdata[rip]
	mov	edi, eax
	call	close@PLT
	mov	DWORD PTR pdata[rip], -1
.L233:
	lea	rsi, .LC112[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L228:
	call	passive@PLT
	jmp	.L164
.L227:
	mov	eax, DWORD PTR cmd_type[rip]
	cmp	eax, 4
	je	.L234
	cmp	eax, 4
	jg	.L324
	cmp	eax, 3
	je	.L236
	cmp	eax, 3
	jg	.L324
	cmp	eax, 1
	je	.L237
	cmp	eax, 2
	je	.L238
	jmp	.L324
.L237:
	mov	eax, DWORD PTR cmd_form[rip]
	cmp	eax, 1
	jne	.L239
	lea	rsi, .LC113[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	mov	eax, DWORD PTR cmd_type[rip]
	mov	DWORD PTR type[rip], eax
	mov	eax, DWORD PTR cmd_form[rip]
	mov	DWORD PTR form[rip], eax
	jmp	.L235
.L239:
	lea	rsi, .LC114[rip]
	mov	edi, 504
	mov	eax, 0
	call	reply@PLT
	jmp	.L235
.L238:
	lea	rsi, .LC115[rip]
	mov	edi, 504
	mov	eax, 0
	call	reply@PLT
	jmp	.L235
.L236:
	lea	rsi, .LC116[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	mov	eax, DWORD PTR cmd_type[rip]
	mov	DWORD PTR type[rip], eax
	jmp	.L235
.L234:
	mov	eax, DWORD PTR cmd_bytesz[rip]
	cmp	eax, 8
	jne	.L241
	lea	rsi, .LC117[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	mov	eax, DWORD PTR cmd_type[rip]
	mov	DWORD PTR type[rip], eax
	jmp	.L324
.L241:
	lea	rsi, .LC118[rip]
	mov	edi, 504
	mov	eax, 0
	call	reply@PLT
	jmp	.L324
.L235:
	jmp	.L324
.L226:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L242
	lea	rsi, .LC119[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	nop
	jmp	.L164
.L242:
	lea	rsi, .LC120[rip]
	mov	edi, 504
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L225:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cmp	eax, 1
	jne	.L244
	lea	rsi, .LC121[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	nop
	jmp	.L164
.L244:
	lea	rsi, .LC122[rip]
	mov	edi, 502
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L224:
	lea	rsi, .LC123[rip]
	mov	edi, 202
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L223:
	lea	rsi, .LC123[rip]
	mov	edi, 202
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L222:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L246
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L246
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rsi, rax
	mov	edi, 0
	call	retrieve@PLT
.L246:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L325
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L325
.L221:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L248
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L248
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	edx, 0
	lea	rsi, .LC124[rip]
	mov	rdi, rax
	call	store@PLT
.L248:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L326
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L326
.L220:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L250
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L250
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	edx, 0
	lea	rsi, .LC125[rip]
	mov	rdi, rax
	call	store@PLT
.L250:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L327
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L327
.L219:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L328
	lea	rdi, .LC126[rip]
	call	send_file_list@PLT
	jmp	.L328
.L218:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L253
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L253
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	send_file_list@PLT
.L253:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L329
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L329
.L217:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L330
	lea	rsi, .LC63[rip]
	lea	rdi, .LC127[rip]
	call	retrieve@PLT
	jmp	.L330
.L216:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L256
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L256
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rsi, rax
	lea	rdi, .LC128[rip]
	call	retrieve@PLT
.L256:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L331
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L331
.L215:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L258
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L258
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	statfilecmd@PLT
.L258:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L332
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L332
.L214:
	call	statcmd@PLT
	jmp	.L164
.L213:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L260
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L260
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	remove@PLT
.L260:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L333
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L333
.L212:
	mov	rax, QWORD PTR fromname[rip]
	test	rax, rax
	je	.L262
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, rax
	mov	rax, QWORD PTR fromname[rip]
	mov	rsi, rdx
	mov	rdi, rax
	call	renamecmd@PLT
	mov	rax, QWORD PTR fromname[rip]
	mov	rdi, rax
	call	free@PLT
	mov	QWORD PTR fromname[rip], 0
	jmp	.L263
.L262:
	lea	rsi, .LC129[rip]
	mov	edi, 503
	mov	eax, 0
	call	reply@PLT
.L263:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L164
.L211:
	lea	rsi, .LC130[rip]
	mov	edi, 225
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L210:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L334
	mov	rax, QWORD PTR pw[rip]
	mov	rax, QWORD PTR 32[rax]
	mov	rdi, rax
	call	cwd@PLT
	jmp	.L334
.L209:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L265
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L265
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	cwd@PLT
.L265:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L335
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L335
.L208:
	mov	esi, 0
	lea	rdi, cmdtab[rip]
	call	help
	jmp	.L164
.L207:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	mov	edx, 4
	lea	rsi, .LC55[rip]
	call	strncasecmp@PLT
	test	eax, eax
	jne	.L267
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	add	rax, 4
	mov	rsi, rax
	movzx	eax, BYTE PTR [rsi]
	cmp	al, 32
	jne	.L268
	add	rsi, 1
.L268:
	movzx	eax, BYTE PTR [rsi]
	test	al, al
	je	.L269
	lea	rdi, sitetab[rip]
	call	help
	jmp	.L164
.L269:
	mov	esi, 0
	lea	rdi, sitetab[rip]
	call	help
	jmp	.L164
.L267:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rsi, rax
	lea	rdi, cmdtab[rip]
	call	help
	jmp	.L164
.L206:
	lea	rsi, .LC131[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L205:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L271
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L271
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	makedir@PLT
.L271:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L336
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L336
.L204:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L273
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L273
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	removedir@PLT
.L273:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L337
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L337
.L203:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L338
	call	pwd@PLT
	jmp	.L338
.L202:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L339
	lea	rdi, .LC132[rip]
	call	cwd@PLT
	jmp	.L339
.L201:
	mov	esi, 0
	lea	rdi, sitetab[rip]
	call	help
	jmp	.L164
.L200:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rsi, rax
	lea	rdi, sitetab[rip]
	call	help
	jmp	.L164
.L199:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L340
	mov	edi, 0
	call	umask@PLT
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -196[rbp]
	mov	edi, eax
	call	umask@PLT
	mov	eax, DWORD PTR -196[rbp]
	mov	edx, eax
	lea	rsi, .LC133[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	jmp	.L340
.L198:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L341
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cmp	eax, -1
	je	.L279
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cmp	eax, 511
	jle	.L280
.L279:
	lea	rsi, .LC134[rip]
	mov	edi, 501
	mov	eax, 0
	call	reply@PLT
	jmp	.L341
.L280:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	umask@PLT
	mov	DWORD PTR -200[rbp], eax
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -200[rbp]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC135[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	jmp	.L341
.L197:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 20
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L281
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L281
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	cmp	eax, 511
	jle	.L282
	lea	rsi, .LC136[rip]
	mov	edi, 501
	mov	eax, 0
	call	reply@PLT
	jmp	.L281
.L282:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	esi, edx
	mov	rdi, rax
	call	chmod@PLT
	test	eax, eax
	jns	.L283
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rsi, rax
	mov	edi, 550
	mov	eax, 0
	call	perror_reply@PLT
	jmp	.L281
.L283:
	lea	rsi, .LC137[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
.L281:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L342
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L342
.L196:
	mov	edx, DWORD PTR maxtimeout[rip]
	mov	eax, DWORD PTR timeout[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC138[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L195:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cmp	eax, 29
	jle	.L285
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR maxtimeout[rip]
	cmp	edx, eax
	jle	.L286
.L285:
	mov	eax, DWORD PTR maxtimeout[rip]
	mov	edx, eax
	lea	rsi, .LC139[rip]
	mov	edi, 501
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L286:
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR -4[rax]
	mov	DWORD PTR timeout[rip], eax
	mov	eax, DWORD PTR timeout[rip]
	mov	edi, eax
	call	alarm@PLT
	mov	eax, DWORD PTR timeout[rip]
	mov	edx, eax
	lea	rsi, .LC140[rip]
	mov	edi, 200
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L194:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L288
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L288
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	edx, 1
	lea	rsi, .LC124[rip]
	mov	rdi, rax
	call	store@PLT
.L288:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L343
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L343
.L193:
	mov	edx, 8
	lea	rsi, .LC141[rip]
	mov	edi, 215
	mov	eax, 0
	call	reply@PLT
	jmp	.L164
.L192:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L290
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L290
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	sizecmd
.L290:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L344
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L344
.L191:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L292
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L292
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, rax
	lea	rax, -192[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	stat@PLT
	test	eax, eax
	jns	.L293
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, rax
	lea	rsi, .LC142[rip]
	mov	edi, 550
	mov	eax, 0
	call	perror_reply@PLT
	jmp	.L292
.L293:
	mov	eax, DWORD PTR -168[rbp]
	and	eax, 61440
	cmp	eax, 32768
	je	.L295
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdx, rax
	lea	rsi, .LC105[rip]
	mov	edi, 550
	mov	eax, 0
	call	reply@PLT
	jmp	.L292
.L295:
	lea	rax, -192[rbp]
	add	rax, 88
	mov	rdi, rax
	call	gmtime@PLT
	mov	rbx, rax
	mov	esi, DWORD PTR [rbx]
	mov	ecx, DWORD PTR 4[rbx]
	mov	r8d, DWORD PTR 8[rbx]
	mov	edi, DWORD PTR 12[rbx]
	mov	eax, DWORD PTR 16[rbx]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR 20[rbx]
	add	eax, 1900
	push	rsi
	push	rcx
	mov	r9d, r8d
	mov	r8d, edi
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC143[rip]
	mov	edi, 213
	mov	eax, 0
	call	reply@PLT
	add	rsp, 16
.L292:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L345
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L345
.L190:
	lea	rsi, .LC144[rip]
	mov	edi, 221
	mov	eax, 0
	call	reply@PLT
	mov	edi, 0
	call	dologout@PLT
	jmp	.L164
.L189:
	mov	DWORD PTR ftp_errflag[rip], 0
	jmp	.L164
.L188:
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 12
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L346
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L346
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	renamefrom@PLT
	mov	QWORD PTR fromname[rip], rax
	mov	rax, QWORD PTR fromname[rip]
	test	rax, rax
	jne	.L346
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L346
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 4
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L346
.L187:
	lea	rax, ftp_val[rip]
	lea	rdx, .LC63[rip]
	mov	QWORD PTR [rax], rdx
	jmp	.L164
.L186:
	lea	rbx, data_dest[rip+4]
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 40
	mov	eax, DWORD PTR [rax]
	mov	BYTE PTR [rbx], al
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 32
	mov	edx, DWORD PTR [rax]
	lea	rax, 1[rbx]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 24
	mov	edx, DWORD PTR [rax]
	lea	rax, 2[rbx]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 16
	mov	edx, DWORD PTR [rax]
	lea	rax, 3[rbx]
	mov	BYTE PTR [rax], dl
	lea	rbx, data_dest[rip+2]
	mov	rax, QWORD PTR yystack[rip+40]
	sub	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	BYTE PTR [rbx], al
	mov	rax, QWORD PTR yystack[rip+40]
	mov	edx, DWORD PTR [rax]
	lea	rax, 1[rbx]
	mov	BYTE PTR [rax], dl
	mov	WORD PTR data_dest[rip], 2
	jmp	.L164
.L185:
	mov	DWORD PTR ftp_val[rip], 1
	jmp	.L164
.L184:
	mov	DWORD PTR ftp_val[rip], 2
	jmp	.L164
.L183:
	mov	DWORD PTR ftp_val[rip], 3
	jmp	.L164
.L182:
	mov	DWORD PTR cmd_type[rip], 1
	mov	DWORD PTR cmd_form[rip], 1
	jmp	.L164
.L181:
	mov	DWORD PTR cmd_type[rip], 1
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR cmd_form[rip], eax
	jmp	.L164
.L180:
	mov	DWORD PTR cmd_type[rip], 2
	mov	DWORD PTR cmd_form[rip], 1
	jmp	.L164
.L179:
	mov	DWORD PTR cmd_type[rip], 2
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR cmd_form[rip], eax
	jmp	.L164
.L178:
	mov	DWORD PTR cmd_type[rip], 3
	jmp	.L164
.L177:
	mov	DWORD PTR cmd_type[rip], 4
	mov	DWORD PTR cmd_bytesz[rip], 8
	jmp	.L164
.L176:
	mov	DWORD PTR cmd_type[rip], 4
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR cmd_bytesz[rip], eax
	jmp	.L164
.L175:
	mov	DWORD PTR cmd_type[rip], 4
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR cmd_bytesz[rip], eax
	jmp	.L164
.L174:
	mov	DWORD PTR ftp_val[rip], 1
	jmp	.L164
.L173:
	mov	DWORD PTR ftp_val[rip], 2
	jmp	.L164
.L172:
	mov	DWORD PTR ftp_val[rip], 3
	jmp	.L164
.L171:
	mov	DWORD PTR ftp_val[rip], 1
	jmp	.L164
.L170:
	mov	DWORD PTR ftp_val[rip], 2
	jmp	.L164
.L169:
	mov	DWORD PTR ftp_val[rip], 3
	jmp	.L164
.L168:
	mov	eax, DWORD PTR logged_in[rip]
	test	eax, eax
	je	.L298
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L298
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	cdqe
	movzx	eax, BYTE PTR [rax]
	movzx	edx, BYTE PTR .LC145[rip]
	movzx	eax, al
	movzx	edx, dl
	sub	eax, edx
	test	eax, eax
	jne	.L298
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	glob@PLT
	lea	rdx, ftp_val[rip]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
	mov	rax, QWORD PTR globerr[rip]
	test	rax, rax
	je	.L299
	mov	rax, QWORD PTR globerr[rip]
	mov	rsi, rax
	mov	edi, 550
	mov	eax, 0
	call	reply@PLT
	mov	DWORD PTR ftp_val[rip], 0
.L299:
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	cdqe
	mov	rdi, rax
	call	free@PLT
	jmp	.L164
.L298:
	mov	rax, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR ftp_val[rip], eax
	jmp	.L164
.L167:
	mov	rax, QWORD PTR yystack[rip+40]
	mov	ebx, DWORD PTR [rax]
	mov	r13d, 1
	mov	r14d, 0
	jmp	.L301
.L304:
	movsx	rax, ebx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 2
	mov	edx, ebx
	sar	edx, 31
	sub	eax, edx
	mov	r12d, eax
	mov	eax, r12d
	sal	eax, 2
	add	eax, r12d
	add	eax, eax
	mov	r12d, ebx
	sub	r12d, eax
	cmp	r12d, 7
	jle	.L302
	mov	r14d, -1
	jmp	.L303
.L302:
	mov	eax, r12d
	imul	eax, r13d
	add	r14d, eax
	sal	r13d, 3
	movsx	rax, ebx
	imul	rax, rax, 1717986919
	shr	rax, 32
	sar	eax, 2
	sar	ebx, 31
	mov	edx, ebx
	sub	eax, edx
	mov	ebx, eax
.L301:
	test	ebx, ebx
	jne	.L304
.L303:
	mov	DWORD PTR ftp_val[rip], r14d
	jmp	.L164
.L165:
	mov	eax, DWORD PTR logged_in[rip]
	test	eax, eax
	je	.L305
	mov	DWORD PTR ftp_val[rip], 1
	jmp	.L164
.L305:
	lea	rsi, .LC146[rip]
	mov	edi, 530
	mov	eax, 0
	call	reply@PLT
	mov	DWORD PTR ftp_val[rip], 0
	jmp	.L164
.L324:
	nop
	jmp	.L164
.L325:
	nop
	jmp	.L164
.L326:
	nop
	jmp	.L164
.L327:
	nop
	jmp	.L164
.L328:
	nop
	jmp	.L164
.L329:
	nop
	jmp	.L164
.L330:
	nop
	jmp	.L164
.L331:
	nop
	jmp	.L164
.L332:
	nop
	jmp	.L164
.L333:
	nop
	jmp	.L164
.L334:
	nop
	jmp	.L164
.L335:
	nop
	jmp	.L164
.L336:
	nop
	jmp	.L164
.L337:
	nop
	jmp	.L164
.L338:
	nop
	jmp	.L164
.L339:
	nop
	jmp	.L164
.L340:
	nop
	jmp	.L164
.L341:
	nop
	jmp	.L164
.L342:
	nop
	jmp	.L164
.L343:
	nop
	jmp	.L164
.L344:
	nop
	jmp	.L164
.L345:
	nop
	jmp	.L164
.L346:
	nop
.L164:
	mov	rdx, QWORD PTR yystack[rip+16]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	add	rax, rax
	neg	rax
	add	rax, rdx
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+16]
	movzx	eax, WORD PTR [rax]
	cwde
	mov	DWORD PTR -208[rbp], eax
	mov	rdx, QWORD PTR yystack[rip+40]
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	sal	rax, 2
	neg	rax
	add	rax, rdx
	mov	QWORD PTR yystack[rip+40], rax
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_lhs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -204[rbp], eax
	cmp	DWORD PTR -208[rbp], 0
	jne	.L307
	cmp	DWORD PTR -204[rbp], 0
	jne	.L307
	mov	DWORD PTR -208[rbp], 1
	mov	rax, QWORD PTR yystack[rip+16]
	add	rax, 2
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+16]
	mov	WORD PTR [rax], 1
	mov	rax, QWORD PTR yystack[rip+40]
	add	rax, 4
	mov	QWORD PTR yystack[rip+40], rax
	mov	rax, QWORD PTR yystack[rip+40]
	mov	edx, DWORD PTR ftp_val[rip]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR ftp_char[rip]
	test	eax, eax
	jns	.L308
	call	ftp_lex
	mov	DWORD PTR ftp_char[rip], eax
	mov	eax, DWORD PTR ftp_char[rip]
	test	eax, eax
	jns	.L308
	mov	DWORD PTR ftp_char[rip], 0
.L308:
	mov	eax, DWORD PTR ftp_char[rip]
	test	eax, eax
	je	.L347
	jmp	.L144
.L307:
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_gindex[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	je	.L311
	mov	eax, DWORD PTR -208[rbp]
	add	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	js	.L311
	cmp	DWORD PTR -212[rbp], 190
	jg	.L311
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_check[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	cmp	DWORD PTR -208[rbp], eax
	jne	.L311
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_table[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -208[rbp], eax
	jmp	.L312
.L311:
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, ftp_dgoto[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	DWORD PTR -208[rbp], eax
.L312:
	mov	rdx, QWORD PTR yystack[rip+16]
	mov	rax, QWORD PTR yystack[rip+24]
	cmp	rdx, rax
	jb	.L313
	lea	rdi, yystack[rip]
	call	yygrowstack
	test	eax, eax
	jne	.L348
.L313:
	mov	rax, QWORD PTR yystack[rip+16]
	add	rax, 2
	mov	QWORD PTR yystack[rip+16], rax
	mov	rax, QWORD PTR yystack[rip+16]
	mov	edx, DWORD PTR -208[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR yystack[rip+40]
	add	rax, 4
	mov	QWORD PTR yystack[rip+40], rax
	mov	rax, QWORD PTR yystack[rip+40]
	mov	edx, DWORD PTR ftp_val[rip]
	mov	DWORD PTR [rax], edx
	jmp	.L144
.L317:
	nop
	jmp	.L143
.L319:
	nop
	jmp	.L143
.L321:
	nop
	jmp	.L143
.L348:
	nop
.L143:
	lea	rdi, .LC147[rip]
	call	ftp_error
	jmp	.L159
.L322:
	nop
	jmp	.L159
.L323:
	nop
.L159:
	mov	eax, 1
	jmp	.L314
.L347:
	nop
.L310:
	mov	eax, 0
.L314:
	mov	rcx, QWORD PTR -40[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L315
	call	__stack_chk_fail@PLT
.L315:
	lea	rsp, -32[rbp]
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	ftp_parse, .-ftp_parse
	.local	state.2
	.comm	state.2,4,4
	.local	cpos.1
	.comm	cpos.1,4,4
	.section	.rodata
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 5
__PRETTY_FUNCTION__.0:
	.string	"help"
	.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	"176704974.c"
	.text
	.section	.rodata
	.align	2
	.type	yysccsid, %object
	.size	yysccsid, 36
yysccsid:
	.ascii	"@(#)yaccpar\0111.9 (Berkeley) 02/21/93\000"
	.local	cmd_type
	.comm	cmd_type,4,4
	.local	cmd_form
	.comm	cmd_form,4,4
	.local	cmd_bytesz
	.comm	cmd_bytesz,4,4
	.comm	cbuf,512,4
	.comm	fromname,4,4
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ftp_error, %function
ftp_error:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	perror
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ftp_error, .-ftp_error
	.section	.rodata
	.align	2
	.type	ftp_lhs, %object
	.size	ftp_lhs, 148
ftp_lhs:
	.short	-1
	.short	0
	.short	0
	.short	0
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	2
	.short	3
	.short	4
	.short	4
	.short	12
	.short	5
	.short	13
	.short	13
	.short	13
	.short	6
	.short	6
	.short	6
	.short	6
	.short	6
	.short	6
	.short	6
	.short	6
	.short	7
	.short	7
	.short	7
	.short	8
	.short	8
	.short	8
	.short	10
	.short	14
	.short	11
	.short	9
	.align	2
	.type	ftp_len, %object
	.size	ftp_len, 148
ftp_len:
	.short	2
	.short	0
	.short	2
	.short	2
	.short	4
	.short	4
	.short	4
	.short	2
	.short	4
	.short	4
	.short	4
	.short	4
	.short	8
	.short	5
	.short	5
	.short	5
	.short	3
	.short	5
	.short	3
	.short	5
	.short	5
	.short	2
	.short	5
	.short	4
	.short	2
	.short	3
	.short	5
	.short	2
	.short	4
	.short	2
	.short	5
	.short	5
	.short	3
	.short	3
	.short	4
	.short	6
	.short	5
	.short	7
	.short	9
	.short	4
	.short	6
	.short	5
	.short	2
	.short	5
	.short	5
	.short	2
	.short	2
	.short	5
	.short	1
	.short	0
	.short	1
	.short	1
	.short	11
	.short	1
	.short	1
	.short	1
	.short	1
	.short	3
	.short	1
	.short	3
	.short	1
	.short	1
	.short	3
	.short	2
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	1
	.short	0
	.align	2
	.type	ftp_defred, %object
	.size	ftp_defred, 400
ftp_defred:
	.short	1
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	73
	.short	73
	.short	73
	.short	0
	.short	73
	.short	0
	.short	0
	.short	73
	.short	73
	.short	73
	.short	73
	.short	0
	.short	0
	.short	0
	.short	0
	.short	73
	.short	73
	.short	73
	.short	73
	.short	73
	.short	0
	.short	73
	.short	73
	.short	2
	.short	3
	.short	46
	.short	0
	.short	0
	.short	45
	.short	0
	.short	7
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	24
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	21
	.short	0
	.short	0
	.short	27
	.short	29
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	42
	.short	0
	.short	0
	.short	48
	.short	0
	.short	50
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	60
	.short	0
	.short	0
	.short	64
	.short	66
	.short	65
	.short	0
	.short	68
	.short	69
	.short	67
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	71
	.short	0
	.short	70
	.short	0
	.short	0
	.short	25
	.short	0
	.short	18
	.short	0
	.short	16
	.short	0
	.short	73
	.short	0
	.short	73
	.short	0
	.short	0
	.short	0
	.short	0
	.short	32
	.short	33
	.short	0
	.short	0
	.short	0
	.short	4
	.short	5
	.short	0
	.short	6
	.short	0
	.short	0
	.short	0
	.short	51
	.short	63
	.short	8
	.short	9
	.short	10
	.short	0
	.short	0
	.short	0
	.short	0
	.short	11
	.short	0
	.short	23
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	34
	.short	0
	.short	0
	.short	39
	.short	0
	.short	0
	.short	28
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	55
	.short	53
	.short	54
	.short	57
	.short	59
	.short	62
	.short	13
	.short	14
	.short	15
	.short	0
	.short	47
	.short	22
	.short	26
	.short	19
	.short	17
	.short	0
	.short	0
	.short	36
	.short	0
	.short	0
	.short	20
	.short	30
	.short	31
	.short	41
	.short	43
	.short	44
	.short	0
	.short	0
	.short	35
	.short	72
	.short	0
	.short	40
	.short	0
	.short	0
	.short	0
	.short	37
	.short	0
	.short	0
	.short	12
	.short	0
	.short	0
	.short	38
	.short	0
	.short	0
	.short	0
	.short	52
	.align	2
	.type	ftp_dgoto, %object
	.size	ftp_dgoto, 30
ftp_dgoto:
	.short	1
	.short	34
	.short	35
	.short	71
	.short	73
	.short	75
	.short	80
	.short	84
	.short	88
	.short	45
	.short	95
	.short	184
	.short	125
	.short	157
	.short	96
	.align	2
	.type	ftp_sindex, %object
	.size	ftp_sindex, 400
ftp_sindex:
	.short	0
	.short	-224
	.short	-247
	.short	-239
	.short	-236
	.short	-232
	.short	-222
	.short	-204
	.short	-200
	.short	-181
	.short	-177
	.short	0
	.short	0
	.short	0
	.short	-166
	.short	0
	.short	-161
	.short	-199
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-160
	.short	-159
	.short	-264
	.short	-158
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-157
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-167
	.short	-162
	.short	0
	.short	-156
	.short	0
	.short	-250
	.short	-198
	.short	-165
	.short	-155
	.short	-154
	.short	-153
	.short	-151
	.short	-150
	.short	-152
	.short	0
	.short	-145
	.short	-252
	.short	-229
	.short	-217
	.short	-302
	.short	0
	.short	-144
	.short	-146
	.short	0
	.short	0
	.short	-142
	.short	-141
	.short	-140
	.short	-139
	.short	-137
	.short	0
	.short	-136
	.short	-135
	.short	0
	.short	-134
	.short	0
	.short	-133
	.short	-132
	.short	-130
	.short	-131
	.short	-128
	.short	0
	.short	-249
	.short	-127
	.short	0
	.short	0
	.short	0
	.short	-126
	.short	0
	.short	0
	.short	0
	.short	-125
	.short	-152
	.short	-152
	.short	-152
	.short	-205
	.short	-152
	.short	0
	.short	-124
	.short	0
	.short	-152
	.short	-152
	.short	0
	.short	-152
	.short	0
	.short	-143
	.short	0
	.short	-173
	.short	0
	.short	-171
	.short	0
	.short	-152
	.short	-123
	.short	-152
	.short	-152
	.short	0
	.short	0
	.short	-152
	.short	-152
	.short	-152
	.short	0
	.short	0
	.short	-138
	.short	0
	.short	-164
	.short	-164
	.short	-122
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-121
	.short	-120
	.short	-118
	.short	-148
	.short	0
	.short	-117
	.short	0
	.short	-116
	.short	-115
	.short	-114
	.short	-113
	.short	-112
	.short	0
	.short	-163
	.short	-111
	.short	0
	.short	-110
	.short	-109
	.short	0
	.short	-107
	.short	-106
	.short	-105
	.short	-104
	.short	-103
	.short	-129
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-101
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-100
	.short	-102
	.short	0
	.short	-98
	.short	-102
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-99
	.short	-97
	.short	0
	.short	0
	.short	-95
	.short	0
	.short	-96
	.short	-94
	.short	-92
	.short	0
	.short	-152
	.short	-93
	.short	0
	.short	-91
	.short	-90
	.short	0
	.short	-88
	.short	-87
	.short	-86
	.short	0
	.align	2
	.type	ftp_rindex, %object
	.size	ftp_rindex, 400
ftp_rindex:
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-83
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-82
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	-81
	.short	-80
	.short	0
	.short	-158
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.align	2
	.type	ftp_gindex, %object
	.size	ftp_gindex, 30
ftp_gindex:
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	0
	.short	16
	.short	-89
	.short	-25
	.short	35
	.short	47
	.short	0
	.align	2
	.type	ftp_table, %object
	.size	ftp_table, 382
ftp_table:
	.short	129
	.short	130
	.short	131
	.short	104
	.short	134
	.short	59
	.short	60
	.short	76
	.short	136
	.short	137
	.short	77
	.short	138
	.short	78
	.short	79
	.short	105
	.short	106
	.short	107
	.short	98
	.short	99
	.short	146
	.short	123
	.short	148
	.short	149
	.short	36
	.short	124
	.short	150
	.short	151
	.short	152
	.short	46
	.short	47
	.short	37
	.short	49
	.short	2
	.short	38
	.short	52
	.short	53
	.short	54
	.short	55
	.short	39
	.short	58
	.short	100
	.short	101
	.short	62
	.short	63
	.short	64
	.short	65
	.short	66
	.short	40
	.short	68
	.short	69
	.short	3
	.short	4
	.short	102
	.short	103
	.short	5
	.short	6
	.short	7
	.short	8
	.short	9
	.short	10
	.short	11
	.short	12
	.short	13
	.short	81
	.short	132
	.short	133
	.short	41
	.short	82
	.short	83
	.short	42
	.short	14
	.short	51
	.short	15
	.short	16
	.short	17
	.short	18
	.short	19
	.short	20
	.short	21
	.short	22
	.short	23
	.short	24
	.short	25
	.short	26
	.short	27
	.short	28
	.short	29
	.short	30
	.short	43
	.short	31
	.short	32
	.short	33
	.short	44
	.short	85
	.short	86
	.short	154
	.short	140
	.short	141
	.short	143
	.short	144
	.short	155
	.short	193
	.short	87
	.short	48
	.short	156
	.short	70
	.short	170
	.short	171
	.short	50
	.short	56
	.short	72
	.short	57
	.short	61
	.short	67
	.short	89
	.short	90
	.short	91
	.short	74
	.short	163
	.short	93
	.short	94
	.short	142
	.short	92
	.short	145
	.short	97
	.short	108
	.short	109
	.short	110
	.short	111
	.short	139
	.short	112
	.short	113
	.short	114
	.short	115
	.short	116
	.short	153
	.short	117
	.short	118
	.short	121
	.short	119
	.short	120
	.short	122
	.short	180
	.short	126
	.short	127
	.short	128
	.short	135
	.short	147
	.short	186
	.short	160
	.short	161
	.short	124
	.short	162
	.short	164
	.short	165
	.short	166
	.short	167
	.short	168
	.short	159
	.short	173
	.short	169
	.short	174
	.short	172
	.short	175
	.short	176
	.short	177
	.short	178
	.short	179
	.short	181
	.short	158
	.short	182
	.short	183
	.short	185
	.short	190
	.short	187
	.short	189
	.short	188
	.short	191
	.short	192
	.short	195
	.short	194
	.short	196
	.short	0
	.short	0
	.short	198
	.short	197
	.short	73
	.short	199
	.short	49
	.short	56
	.short	58
	.align	2
	.type	ftp_check, %object
	.size	ftp_check, 382
ftp_check:
	.short	89
	.short	90
	.short	91
	.short	305
	.short	93
	.short	269
	.short	270
	.short	257
	.short	97
	.short	98
	.short	260
	.short	100
	.short	262
	.short	263
	.short	316
	.short	317
	.short	318
	.short	269
	.short	270
	.short	108
	.short	269
	.short	110
	.short	111
	.short	270
	.short	273
	.short	114
	.short	115
	.short	116
	.short	12
	.short	13
	.short	269
	.short	15
	.short	256
	.short	269
	.short	18
	.short	19
	.short	20
	.short	21
	.short	270
	.short	23
	.short	269
	.short	270
	.short	26
	.short	27
	.short	28
	.short	29
	.short	30
	.short	269
	.short	32
	.short	33
	.short	274
	.short	275
	.short	269
	.short	270
	.short	278
	.short	279
	.short	280
	.short	281
	.short	282
	.short	283
	.short	284
	.short	285
	.short	286
	.short	261
	.short	269
	.short	270
	.short	270
	.short	265
	.short	266
	.short	269
	.short	294
	.short	270
	.short	296
	.short	297
	.short	298
	.short	299
	.short	300
	.short	301
	.short	302
	.short	303
	.short	304
	.short	305
	.short	306
	.short	307
	.short	308
	.short	309
	.short	310
	.short	311
	.short	269
	.short	313
	.short	314
	.short	315
	.short	269
	.short	258
	.short	259
	.short	259
	.short	269
	.short	270
	.short	269
	.short	270
	.short	264
	.short	190
	.short	267
	.short	269
	.short	268
	.short	272
	.short	269
	.short	270
	.short	269
	.short	269
	.short	272
	.short	270
	.short	270
	.short	270
	.short	269
	.short	269
	.short	269
	.short	273
	.short	266
	.short	269
	.short	272
	.short	105
	.short	273
	.short	107
	.short	269
	.short	269
	.short	272
	.short	269
	.short	269
	.short	272
	.short	270
	.short	270
	.short	269
	.short	269
	.short	269
	.short	273
	.short	270
	.short	270
	.short	269
	.short	271
	.short	270
	.short	269
	.short	271
	.short	270
	.short	270
	.short	270
	.short	270
	.short	270
	.short	173
	.short	270
	.short	270
	.short	273
	.short	270
	.short	270
	.short	270
	.short	270
	.short	270
	.short	270
	.short	123
	.short	269
	.short	272
	.short	270
	.short	273
	.short	270
	.short	270
	.short	270
	.short	270
	.short	270
	.short	269
	.short	122
	.short	270
	.short	273
	.short	270
	.short	269
	.short	273
	.short	270
	.short	273
	.short	271
	.short	270
	.short	270
	.short	273
	.short	271
	.short	-1
	.short	-1
	.short	271
	.short	273
	.short	269
	.short	273
	.short	270
	.short	270
	.short	270
	.comm	ftp_debug,4,4
	.comm	ftp_nerrs,4,4
	.comm	ftp_errflag,4,4
	.comm	ftp_char,4,4
	.comm	ftp_val,4,4
	.comm	ftp_lval,4,4
	.local	yystack
	.comm	yystack,24,4
	.global	cmdtab
	.align	2
.LC0:
	.ascii	"USER\000"
	.align	2
.LC1:
	.ascii	"<sp> username\000"
	.align	2
.LC2:
	.ascii	"PASS\000"
	.align	2
.LC3:
	.ascii	"<sp> password\000"
	.align	2
.LC4:
	.ascii	"ACCT\000"
	.align	2
.LC5:
	.ascii	"(specify account)\000"
	.align	2
.LC6:
	.ascii	"SMNT\000"
	.align	2
.LC7:
	.ascii	"(structure mount)\000"
	.align	2
.LC8:
	.ascii	"REIN\000"
	.align	2
.LC9:
	.ascii	"(reinitialize server state)\000"
	.align	2
.LC10:
	.ascii	"QUIT\000"
	.align	2
.LC11:
	.ascii	"(terminate service)\000"
	.align	2
.LC12:
	.ascii	"PORT\000"
	.align	2
.LC13:
	.ascii	"<sp> b0, b1, b2, b3, b4\000"
	.align	2
.LC14:
	.ascii	"PASV\000"
	.align	2
.LC15:
	.ascii	"(set server in passive mode)\000"
	.align	2
.LC16:
	.ascii	"TYPE\000"
	.align	2
.LC17:
	.ascii	"<sp> [ A | E | I | L ]\000"
	.align	2
.LC18:
	.ascii	"STRU\000"
	.align	2
.LC19:
	.ascii	"(specify file structure)\000"
	.align	2
.LC20:
	.ascii	"MODE\000"
	.align	2
.LC21:
	.ascii	"(specify transfer mode)\000"
	.align	2
.LC22:
	.ascii	"RETR\000"
	.align	2
.LC23:
	.ascii	"<sp> file-name\000"
	.align	2
.LC24:
	.ascii	"STOR\000"
	.align	2
.LC25:
	.ascii	"APPE\000"
	.align	2
.LC26:
	.ascii	"MLFL\000"
	.align	2
.LC27:
	.ascii	"(mail file)\000"
	.align	2
.LC28:
	.ascii	"MAIL\000"
	.align	2
.LC29:
	.ascii	"(mail to user)\000"
	.align	2
.LC30:
	.ascii	"MSND\000"
	.align	2
.LC31:
	.ascii	"(mail send to terminal)\000"
	.align	2
.LC32:
	.ascii	"MSOM\000"
	.align	2
.LC33:
	.ascii	"(mail send to terminal or mailbox)\000"
	.align	2
.LC34:
	.ascii	"MSAM\000"
	.align	2
.LC35:
	.ascii	"(mail send to terminal and mailbox)\000"
	.align	2
.LC36:
	.ascii	"MRSQ\000"
	.align	2
.LC37:
	.ascii	"(mail recipient scheme question)\000"
	.align	2
.LC38:
	.ascii	"MRCP\000"
	.align	2
.LC39:
	.ascii	"(mail recipient)\000"
	.align	2
.LC40:
	.ascii	"ALLO\000"
	.align	2
.LC41:
	.ascii	"allocate storage (vacuously)\000"
	.align	2
.LC42:
	.ascii	"REST\000"
	.align	2
.LC43:
	.ascii	"(restart command)\000"
	.align	2
.LC44:
	.ascii	"RNFR\000"
	.align	2
.LC45:
	.ascii	"RNTO\000"
	.align	2
.LC46:
	.ascii	"ABOR\000"
	.align	2
.LC47:
	.ascii	"(abort operation)\000"
	.align	2
.LC48:
	.ascii	"DELE\000"
	.align	2
.LC49:
	.ascii	"CWD\000"
	.align	2
.LC50:
	.ascii	"[ <sp> directory-name ]\000"
	.align	2
.LC51:
	.ascii	"XCWD\000"
	.align	2
.LC52:
	.ascii	"LIST\000"
	.align	2
.LC53:
	.ascii	"[ <sp> path-name ]\000"
	.align	2
.LC54:
	.ascii	"NLST\000"
	.align	2
.LC55:
	.ascii	"SITE\000"
	.align	2
.LC56:
	.ascii	"site-cmd [ <sp> arguments ]\000"
	.align	2
.LC57:
	.ascii	"SYST\000"
	.align	2
.LC58:
	.ascii	"(get type of operating system)\000"
	.align	2
.LC59:
	.ascii	"STAT\000"
	.align	2
.LC60:
	.ascii	"HELP\000"
	.align	2
.LC61:
	.ascii	"[ <sp> <string> ]\000"
	.align	2
.LC62:
	.ascii	"NOOP\000"
	.align	2
.LC63:
	.ascii	"\000"
	.align	2
.LC64:
	.ascii	"MKD\000"
	.align	2
.LC65:
	.ascii	"<sp> path-name\000"
	.align	2
.LC66:
	.ascii	"XMKD\000"
	.align	2
.LC67:
	.ascii	"RMD\000"
	.align	2
.LC68:
	.ascii	"XRMD\000"
	.align	2
.LC69:
	.ascii	"PWD\000"
	.align	2
.LC70:
	.ascii	"(return current directory)\000"
	.align	2
.LC71:
	.ascii	"XPWD\000"
	.align	2
.LC72:
	.ascii	"CDUP\000"
	.align	2
.LC73:
	.ascii	"(change to parent directory)\000"
	.align	2
.LC74:
	.ascii	"XCUP\000"
	.align	2
.LC75:
	.ascii	"STOU\000"
	.align	2
.LC76:
	.ascii	"SIZE\000"
	.align	2
.LC77:
	.ascii	"MDTM\000"
	.data
	.align	2
	.type	cmdtab, %object
	.size	cmdtab, 768
cmdtab:
	.word	.LC0
	.short	274
	.short	2
	.short	1
	.space	2
	.word	.LC1
	.word	.LC2
	.short	275
	.short	5
	.short	1
	.space	2
	.word	.LC3
	.word	.LC4
	.short	276
	.short	2
	.short	0
	.space	2
	.word	.LC5
	.word	.LC6
	.short	312
	.short	1
	.short	0
	.space	2
	.word	.LC7
	.word	.LC8
	.short	277
	.short	1
	.short	0
	.space	2
	.word	.LC9
	.word	.LC10
	.short	278
	.short	1
	.short	1
	.space	2
	.word	.LC11
	.word	.LC12
	.short	279
	.short	1
	.short	1
	.space	2
	.word	.LC13
	.word	.LC14
	.short	280
	.short	1
	.short	1
	.space	2
	.word	.LC15
	.word	.LC16
	.short	281
	.short	1
	.short	1
	.space	2
	.word	.LC17
	.word	.LC18
	.short	282
	.short	1
	.short	1
	.space	2
	.word	.LC19
	.word	.LC20
	.short	283
	.short	1
	.short	1
	.space	2
	.word	.LC21
	.word	.LC22
	.short	284
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC24
	.short	285
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC25
	.short	286
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC26
	.short	287
	.short	4
	.short	0
	.space	2
	.word	.LC27
	.word	.LC28
	.short	288
	.short	4
	.short	0
	.space	2
	.word	.LC29
	.word	.LC30
	.short	289
	.short	4
	.short	0
	.space	2
	.word	.LC31
	.word	.LC32
	.short	290
	.short	4
	.short	0
	.space	2
	.word	.LC33
	.word	.LC34
	.short	291
	.short	4
	.short	0
	.space	2
	.word	.LC35
	.word	.LC36
	.short	292
	.short	4
	.short	0
	.space	2
	.word	.LC37
	.word	.LC38
	.short	293
	.short	2
	.short	0
	.space	2
	.word	.LC39
	.word	.LC40
	.short	294
	.short	1
	.short	1
	.space	2
	.word	.LC41
	.word	.LC42
	.short	295
	.short	1
	.short	0
	.space	2
	.word	.LC43
	.word	.LC44
	.short	296
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC45
	.short	297
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC46
	.short	298
	.short	1
	.short	1
	.space	2
	.word	.LC47
	.word	.LC48
	.short	299
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC49
	.short	300
	.short	4
	.short	1
	.space	2
	.word	.LC50
	.word	.LC51
	.short	300
	.short	4
	.short	1
	.space	2
	.word	.LC50
	.word	.LC52
	.short	301
	.short	4
	.short	1
	.space	2
	.word	.LC53
	.word	.LC54
	.short	302
	.short	4
	.short	1
	.space	2
	.word	.LC53
	.word	.LC55
	.short	303
	.short	7
	.short	1
	.space	2
	.word	.LC56
	.word	.LC57
	.short	313
	.short	1
	.short	1
	.space	2
	.word	.LC58
	.word	.LC59
	.short	304
	.short	4
	.short	1
	.space	2
	.word	.LC53
	.word	.LC60
	.short	305
	.short	4
	.short	1
	.space	2
	.word	.LC61
	.word	.LC62
	.short	306
	.short	1
	.short	1
	.space	2
	.word	.LC63
	.word	.LC64
	.short	307
	.short	2
	.short	1
	.space	2
	.word	.LC65
	.word	.LC66
	.short	307
	.short	2
	.short	1
	.space	2
	.word	.LC65
	.word	.LC67
	.short	308
	.short	2
	.short	1
	.space	2
	.word	.LC65
	.word	.LC68
	.short	308
	.short	2
	.short	1
	.space	2
	.word	.LC65
	.word	.LC69
	.short	309
	.short	1
	.short	1
	.space	2
	.word	.LC70
	.word	.LC71
	.short	309
	.short	1
	.short	1
	.space	2
	.word	.LC70
	.word	.LC72
	.short	310
	.short	1
	.short	1
	.space	2
	.word	.LC73
	.word	.LC74
	.short	310
	.short	1
	.short	1
	.space	2
	.word	.LC73
	.word	.LC75
	.short	311
	.short	2
	.short	1
	.space	2
	.word	.LC23
	.word	.LC76
	.short	314
	.short	4
	.short	1
	.space	2
	.word	.LC65
	.word	.LC77
	.short	315
	.short	4
	.short	1
	.space	2
	.word	.LC65
	.word	0
	.short	0
	.short	0
	.short	0
	.space	2
	.word	0
	.global	sitetab
	.section	.rodata
	.align	2
.LC78:
	.ascii	"UMASK\000"
	.align	2
.LC79:
	.ascii	"[ <sp> umask ]\000"
	.align	2
.LC80:
	.ascii	"IDLE\000"
	.align	2
.LC81:
	.ascii	"[ <sp> maximum-idle-time ]\000"
	.align	2
.LC82:
	.ascii	"CHMOD\000"
	.align	2
.LC83:
	.ascii	"<sp> mode <sp> file-name\000"
	.data
	.align	2
	.type	sitetab, %object
	.size	sitetab, 80
sitetab:
	.word	.LC78
	.short	316
	.short	1
	.short	1
	.space	2
	.word	.LC79
	.word	.LC80
	.short	317
	.short	1
	.short	1
	.space	2
	.word	.LC81
	.word	.LC82
	.short	318
	.short	8
	.short	1
	.space	2
	.word	.LC83
	.word	.LC60
	.short	305
	.short	4
	.short	1
	.space	2
	.word	.LC61
	.word	0
	.short	0
	.short	0
	.short	0
	.space	2
	.word	0
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	lookup, %function
lookup:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	b	.L3
.L6:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L4
	ldr	r3, [fp, #-8]
	b	.L5
.L4:
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	str	r3, [fp, #-8]
.L3:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L6
	mov	r3, #0
.L5:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	lookup, .-lookup
	.section	.rodata
	.align	2
.LC84:
	.ascii	"command: %s\000"
	.align	2
.LC85:
	.ascii	"%c%c%c\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_line, %function
get_line:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r5, [fp, #-16]
	mov	r4, #0
	b	.L8
.L14:
	mov	r3, r5
	add	r5, r3, #1
	ldr	r2, .L29
	ldrb	r2, [r2, r4]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, .L29
	ldrb	r3, [r3, r4]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L9
	mov	r3, #0
	strb	r3, [r5]
	ldr	r3, .L29+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L10
	ldr	r2, [fp, #-16]
	ldr	r1, .L29+8
	mov	r0, #7
	bl	syslog
.L10:
	ldr	r3, .L29
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	b	.L11
.L9:
	cmp	r4, #0
	bne	.L12
	ldr	r3, .L29
	mov	r2, #0
	strb	r2, [r3]
.L12:
	add	r4, r4, #1
.L8:
	ldr	r3, .L29
	ldrb	r3, [r3, r4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L15
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bgt	.L14
	b	.L15
.L23:
	and	r4, r4, #255
	cmp	r4, #255
	bne	.L27
	ldr	r0, [fp, #-24]
	bl	getc
	mov	r4, r0
	cmn	r4, #1
	beq	.L27
	and	r4, r4, #255
	cmp	r4, #255
	beq	.L28
	cmp	r4, #255
	bgt	.L15
	cmp	r4, #252
	bgt	.L19
	cmp	r4, #251
	bge	.L20
	b	.L18
.L19:
	mov	r3, r4
	sub	r3, r3, #253
	cmp	r3, #1
	bhi	.L15
	b	.L26
.L20:
	ldr	r0, [fp, #-24]
	bl	getc
	mov	r4, r0
	and	r3, r4, #255
	mov	r2, #254
	mov	r1, #255
	ldr	r0, .L29+12
	bl	printf
	ldr	r3, .L29+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	b	.L15
.L26:
	ldr	r0, [fp, #-24]
	bl	getc
	mov	r4, r0
	and	r3, r4, #255
	mov	r2, #252
	mov	r1, #255
	ldr	r0, .L29+12
	bl	printf
	ldr	r3, .L29+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	b	.L15
.L18:
	b	.L15
.L27:
	nop
	b	.L16
.L28:
	nop
.L16:
	mov	r3, r5
	add	r5, r3, #1
	and	r2, r4, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	ble	.L22
	cmp	r4, #10
	beq	.L22
.L15:
	ldr	r0, [fp, #-24]
	bl	getc
	mov	r4, r0
	cmn	r4, #1
	bne	.L23
.L22:
	cmn	r4, #1
	bne	.L24
	ldr	r3, [fp, #-16]
	cmp	r5, r3
	bne	.L24
	mov	r3, #0
	b	.L11
.L24:
	mov	r3, #0
	strb	r3, [r5]
	ldr	r3, .L29+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L25
	ldr	r2, [fp, #-16]
	ldr	r1, .L29+8
	mov	r0, #7
	bl	syslog
.L25:
	ldr	r3, [fp, #-16]
.L11:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L30:
	.align	2
.L29:
	.word	tmpline
	.word	debug
	.word	.LC84
	.word	.LC85
	.word	stdout
	.size	get_line, .-get_line
	.section	.rodata
	.align	2
.LC86:
	.ascii	"Timeout (%d seconds): closing control connection.\000"
	.align	2
.LC87:
	.ascii	"unknown\000"
	.align	2
.LC88:
	.ascii	"User %s timed out after %d seconds at %s\000"
	.align	2
.LC89:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	toolong, %function
toolong:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, .L36
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L36+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L36+8
	ldr	r0, .L36+12
	bl	reply
	sub	r3, fp, #20
	mov	r0, r3
	bl	time
	ldr	r3, .L36+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L32
	ldr	r3, .L36+20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L33
	ldr	r3, .L36+20
	ldr	r3, [r3]
	ldr	r4, [r3]
	b	.L34
.L33:
	ldr	r4, .L36+24
.L34:
	ldr	r3, .L36+4
	ldr	r5, [r3]
	sub	r3, fp, #20
	mov	r0, r3
	bl	ctime
	mov	r3, r0
	str	r3, [sp]
	mov	r3, r5
	mov	r2, r4
	ldr	r1, .L36+28
	mov	r0, #6
	bl	syslog
.L32:
	mov	r0, #1
	bl	dologout
	nop
	ldr	r3, .L36
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L35
	bl	__stack_chk_fail
.L35:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L37:
	.align	2
.L36:
	.word	.LC89
	.word	timeout
	.word	.LC86
	.word	421
	.word	logging
	.word	pw
	.word	.LC87
	.word	.LC88
	.size	toolong, .-toolong
	.section	.rodata
	.align	2
.LC90:
	.ascii	"You could at least say goodbye.\000"
	.align	2
.LC91:
	.ascii	" \012\000"
	.align	2
.LC92:
	.ascii	"Unknown state in scanner.\000"
	.text
	.align	2
	.global	ftp_lex
	.syntax unified
	.arm
	.fpu softvfp
	.type	ftp_lex, %function
ftp_lex:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #8
	ldr	r3, .L92
	ldr	r3, [r3]
	cmp	r3, #8
	ldrls	pc, [pc, r3, asl #2]
	b	.L39
.L41:
	.word	.L48
	.word	.L47
	.word	.L44
	.word	.L46
	.word	.L45
	.word	.L44
	.word	.L43
	.word	.L42
	.word	.L40
.L48:
	ldr	r1, .L92+4
	mov	r0, #14
	bl	signal
	ldr	r3, .L92+8
	ldr	r3, [r3]
	mov	r0, r3
	bl	alarm
	ldr	r3, .L92+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L92+16
	ldr	r0, .L92+20
	bl	get_line
	mov	r3, r0
	cmp	r3, #0
	bne	.L49
	ldr	r1, .L92+24
	mov	r0, #221
	bl	reply
	mov	r0, #0
	bl	dologout
.L49:
	mov	r0, #0
	bl	alarm
	mov	r1, #13
	ldr	r0, .L92+20
	bl	strchr
	mov	r4, r0
	cmp	r4, #0
	beq	.L50
	mov	r3, r4
	add	r4, r3, #1
	mov	r2, #10
	strb	r2, [r3]
	mov	r3, #0
	strb	r3, [r4]
.L50:
	ldr	r1, .L92+28
	ldr	r0, .L92+20
	bl	strpbrk
	mov	r4, r0
	cmp	r4, #0
	beq	.L51
	ldr	r3, .L92+20
	sub	r3, r4, r3
	ldr	r2, .L92+32
	str	r3, [r2]
.L51:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L52
	ldr	r3, .L92+32
	mov	r2, #4
	str	r2, [r3]
.L52:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-17]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	mov	r1, #0
	strb	r1, [r2, r3]
	ldr	r0, .L92+20
	bl	upper
	ldr	r1, .L92+20
	ldr	r0, .L92+36
	bl	lookup
	mov	r4, r0
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r2, [fp, #-17]
	strb	r2, [r1, r3]
	cmp	r4, #0
	beq	.L87
	ldrsh	r3, [r4, #8]
	cmp	r3, #0
	bne	.L54
	ldr	r3, [r4]
	mov	r0, r3
	bl	nack
	mov	r1, #0
	ldr	r0, .L92+40
	bl	longjmp
.L54:
	ldrsh	r3, [r4, #6]
	mov	r2, r3
	ldr	r3, .L92
	str	r2, [r3]
	ldr	r2, .L92+44
	ldr	r3, [r4]
	str	r3, [r2]
	ldrsh	r3, [r4, #4]
	b	.L55
.L42:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L57
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L92+32
	str	r3, [r2]
	ldr	r3, .L92+48
	b	.L55
.L57:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	add	r4, r3, r2
	ldr	r1, .L92+28
	mov	r0, r4
	bl	strpbrk
	mov	r5, r0
	cmp	r5, #0
	beq	.L58
	ldr	r3, .L92+20
	sub	r3, r5, r3
	ldr	r2, .L92+32
	str	r3, [r2]
.L58:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-17]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r0, r4
	bl	upper
	mov	r1, r4
	ldr	r0, .L92+52
	bl	lookup
	mov	r4, r0
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r2, [fp, #-17]
	strb	r2, [r1, r3]
	cmp	r4, #0
	beq	.L59
	ldrsh	r3, [r4, #8]
	cmp	r3, #0
	bne	.L60
	ldr	r3, .L92
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [r4]
	mov	r0, r3
	bl	nack
	mov	r1, #0
	ldr	r0, .L92+40
	bl	longjmp
.L60:
	ldrsh	r3, [r4, #6]
	mov	r2, r3
	ldr	r3, .L92
	str	r2, [r3]
	ldr	r2, .L92+44
	ldr	r3, [r4]
	str	r3, [r2]
	ldrsh	r3, [r4, #4]
	b	.L55
.L59:
	ldr	r3, .L92
	mov	r2, #0
	str	r2, [r3]
	b	.L56
.L45:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L88
	ldr	r3, .L92
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L92+56
	b	.L55
.L88:
	nop
.L44:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L89
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L92+32
	str	r3, [r2]
	ldr	r3, .L92
	ldr	r3, [r3]
	cmp	r3, #4
	bne	.L62
	ldr	r3, .L92
	mov	r2, #3
	str	r2, [r3]
	b	.L63
.L62:
	ldr	r3, .L92
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L92
	str	r3, [r2]
.L63:
	ldr	r3, .L92+48
	b	.L55
.L43:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L46
	ldr	r3, .L92
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L92+56
	b	.L55
.L46:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	add	r4, r3, r2
	mov	r0, r4
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	sub	r2, r3, #1
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L92+32
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	ble	.L90
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L90
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	mov	r1, #0
	strb	r1, [r2, r3]
	ldr	r5, .L92+44
	mov	r0, r4
	bl	copy
	mov	r3, r0
	str	r3, [r5]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	mov	r1, #10
	strb	r1, [r2, r3]
	ldr	r3, .L92
	mov	r2, #1
	str	r2, [r3]
	mov	r3, #272
	b	.L55
.L40:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L65
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L92+32
	str	r3, [r2]
	ldr	r3, .L92+48
	b	.L55
.L65:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r3, [r1, r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L66
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	add	r4, r3, r2
	nop
.L67:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r1, .L92+32
	str	r3, [r1]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r3, [r1, r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L67
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-17]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r0, r4
	bl	atoi
	mov	r3, r0
	ldr	r2, .L92+44
	str	r3, [r2]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r2, [fp, #-17]
	strb	r2, [r1, r3]
	ldr	r3, .L92
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, .L92+60
	b	.L55
.L66:
	ldr	r3, .L92
	mov	r2, #2
	str	r2, [r3]
	b	.L44
.L47:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r3, [r1, r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	beq	.L68
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	add	r4, r3, r2
	nop
.L69:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r1, .L92+32
	str	r3, [r1]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r3, [r1, r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #2048
	cmp	r3, #0
	bne	.L69
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-17]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r2, .L92+20
	mov	r1, #0
	strb	r1, [r2, r3]
	mov	r0, r4
	bl	atoi
	mov	r3, r0
	ldr	r2, .L92+44
	str	r3, [r2]
	ldr	r3, .L92+32
	ldr	r3, [r3]
	ldr	r1, .L92+20
	ldrb	r2, [fp, #-17]
	strb	r2, [r1, r3]
	ldr	r3, .L92+60
	b	.L55
.L68:
	ldr	r3, .L92+32
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L92+32
	str	r2, [r1]
	ldr	r2, .L92+20
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	sub	r3, r3, #10
	cmp	r3, #106
	ldrls	pc, [pc, r3, asl #2]
	b	.L91
.L72:
	.word	.L86
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L85
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L84
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L83
	.word	.L82
	.word	.L81
	.word	.L91
	.word	.L80
	.word	.L79
	.word	.L91
	.word	.L91
	.word	.L78
	.word	.L91
	.word	.L91
	.word	.L77
	.word	.L91
	.word	.L76
	.word	.L91
	.word	.L75
	.word	.L91
	.word	.L74
	.word	.L73
	.word	.L71
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L91
	.word	.L83
	.word	.L82
	.word	.L81
	.word	.L91
	.word	.L80
	.word	.L79
	.word	.L91
	.word	.L91
	.word	.L78
	.word	.L91
	.word	.L91
	.word	.L77
	.word	.L91
	.word	.L76
	.word	.L91
	.word	.L75
	.word	.L91
	.word	.L74
	.word	.L73
	.word	.L71
.L86:
	ldr	r3, .L92
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L92+56
	b	.L55
.L85:
	ldr	r3, .L92+48
	b	.L55
.L84:
	ldr	r3, .L92+64
	b	.L55
.L83:
	ldr	r3, .L92+68
	b	.L55
.L82:
	ldr	r3, .L92+72
	b	.L55
.L81:
	ldr	r3, .L92+76
	b	.L55
.L80:
	mov	r3, #260
	b	.L55
.L79:
	ldr	r3, .L92+80
	b	.L55
.L78:
	ldr	r3, .L92+84
	b	.L55
.L77:
	ldr	r3, .L92+88
	b	.L55
.L76:
	mov	r3, #264
	b	.L55
.L75:
	ldr	r3, .L92+92
	b	.L55
.L74:
	ldr	r3, .L92+96
	b	.L55
.L73:
	ldr	r3, .L92+100
	b	.L55
.L71:
	mov	r3, #268
	b	.L55
.L39:
	ldr	r0, .L92+104
	bl	fatal
	b	.L56
.L87:
	nop
	b	.L56
.L89:
	nop
	b	.L56
.L90:
	nop
	b	.L56
.L91:
	nop
.L56:
	mov	r0, #0
	bl	ftp_error
	ldr	r3, .L92
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, .L92+40
	bl	longjmp
.L55:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L93:
	.align	2
.L92:
	.word	state.7155
	.word	toolong
	.word	timeout
	.word	stdin
	.word	511
	.word	cbuf
	.word	.LC90
	.word	.LC91
	.word	cpos.7154
	.word	cmdtab
	.word	errcatch
	.word	ftp_lval
	.word	269
	.word	sitetab
	.word	270
	.word	273
	.word	271
	.word	257
	.word	258
	.word	259
	.word	261
	.word	262
	.word	263
	.word	265
	.word	266
	.word	267
	.word	.LC92
	.size	ftp_lex, .-ftp_lex
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	upper, %function
upper:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	b	.L95
.L97:
	bl	__ctype_b_loc
	mov	r3, r0
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	and	r3, r3, #512
	cmp	r3, #0
	beq	.L96
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	toupper
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	strb	r2, [r3]
.L96:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L95:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L97
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	upper, .-upper
	.section	.rodata
	.align	2
.LC93:
	.ascii	"Ran out of memory.\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy, %function
copy:
	@ 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	r0, [fp, #-16]
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L99
	ldr	r0, .L102
	bl	fatal
	b	.L100
.L99:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	strcpy
.L100:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L103:
	.align	2
.L102:
	.word	.LC93
	.size	copy, .-copy
	.section	.rodata
	.align	2
.LC94:
	.ascii	"SITE \000"
	.align	2
.LC95:
	.ascii	"(* =>'s unimplemented)\000"
	.align	2
.LC96:
	.ascii	"The following %scommands are recognized %s.\000"
	.global	__aeabi_idiv
	.align	2
.LC97:
	.ascii	"   \000"
	.align	2
.LC98:
	.ascii	"ftp.y\000"
	.align	2
.LC99:
	.ascii	"c->name != 0\000"
	.align	2
.LC100:
	.ascii	"%s%c\000"
	.align	2
.LC101:
	.ascii	"\015\000"
	.align	2
.LC102:
	.ascii	"Direct comments to ftp-bugs@%s.\000"
	.align	2
.LC103:
	.ascii	"Unknown command %s.\000"
	.align	2
.LC104:
	.ascii	"Syntax: %s%s %s\000"
	.align	2
.LC105:
	.ascii	"%s%-*s\011%s; unimplemented.\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	help, %function
help:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, fp, lr}
	add	fp, sp, #24
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	ldr	r3, [fp, #-48]
	ldr	r2, .L127
	cmp	r3, r2
	bne	.L105
	ldr	r3, .L127+4
	str	r3, [fp, #-44]
	b	.L106
.L105:
	ldr	r3, .L127+8
	str	r3, [fp, #-44]
.L106:
	mov	r5, #0
	mov	r8, #0
	ldr	r4, [fp, #-48]
	b	.L107
.L109:
	ldr	r3, [r4]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, r5
	ble	.L108
	ldr	r5, [fp, #-32]
.L108:
	add	r8, r8, #1
	add	r4, r4, #16
.L107:
	ldr	r3, [r4]
	cmp	r3, #0
	bne	.L109
	add	r3, r5, #8
	bic	r5, r3, #7
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L110
	ldr	r3, .L127+12
	ldr	r2, [fp, #-44]
	ldr	r1, .L127+16
	mov	r0, #214
	bl	lreply
	mov	r1, r5
	mov	r0, #76
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L111
	mov	r3, #1
	str	r3, [fp, #-40]
.L111:
	ldr	r3, [fp, #-40]
	add	r3, r8, r3
	sub	r3, r3, #1
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-36]
	mov	r7, #0
	b	.L112
.L122:
	ldr	r0, .L127+20
	bl	printf
	mov	r6, #0
	b	.L113
.L121:
	ldr	r3, [fp, #-36]
	mul	r3, r6, r3
	mov	r2, r3
	mov	r3, r7
	add	r3, r2, r3
	lsl	r3, r3, #4
	ldr	r2, [fp, #-48]
	add	r4, r2, r3
	ldr	r3, [r4]
	cmp	r3, #0
	bne	.L114
	ldr	r3, .L127+24
	mov	r2, #1152
	ldr	r1, .L127+28
	ldr	r0, .L127+32
	bl	__assert_fail
.L114:
	ldr	r1, [r4]
	ldrsh	r3, [r4, #8]
	cmp	r3, #0
	beq	.L115
	mov	r3, #32
	b	.L116
.L115:
	mov	r3, #42
.L116:
	mov	r2, r3
	ldr	r0, .L127+36
	bl	printf
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #4
	add	r2, r4, r3
	mov	r3, r8
	lsl	r3, r3, #4
	ldr	r1, [fp, #-48]
	add	r3, r1, r3
	cmp	r2, r3
	bcs	.L126
	ldr	r3, [r4]
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	add	r3, r3, #1
	mov	r4, r3
	b	.L119
.L120:
	mov	r0, #32
	bl	putchar
	add	r4, r4, #1
.L119:
	cmp	r4, r5
	blt	.L120
	add	r6, r6, #1
.L113:
	ldr	r3, [fp, #-40]
	cmp	r6, r3
	blt	.L121
	b	.L118
.L126:
	nop
.L118:
	ldr	r0, .L127+40
	bl	puts
	add	r7, r7, #1
.L112:
	ldr	r3, [fp, #-36]
	cmp	r7, r3
	blt	.L122
	ldr	r3, .L127+44
	ldr	r3, [r3]
	mov	r0, r3
	bl	fflush
	ldr	r2, .L127+48
	ldr	r1, .L127+52
	mov	r0, #214
	bl	reply
	b	.L104
.L110:
	ldr	r0, [fp, #-52]
	bl	upper
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	lookup
	mov	r4, r0
	cmp	r4, #0
	bne	.L124
	ldr	r2, [fp, #-52]
	ldr	r1, .L127+56
	ldr	r0, .L127+60
	bl	reply
	b	.L104
.L124:
	ldrsh	r3, [r4, #8]
	cmp	r3, #0
	beq	.L125
	ldr	r2, [r4]
	ldr	r3, [r4, #12]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-44]
	ldr	r1, .L127+64
	mov	r0, #214
	bl	reply
	b	.L104
.L125:
	ldr	r3, [r4]
	ldr	r2, [r4, #12]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r5
	ldr	r2, [fp, #-44]
	ldr	r1, .L127+68
	mov	r0, #214
	bl	reply
.L104:
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, fp, pc}
.L128:
	.align	2
.L127:
	.word	sitetab
	.word	.LC94
	.word	.LC63
	.word	.LC95
	.word	.LC96
	.word	.LC97
	.word	__PRETTY_FUNCTION__.7234
	.word	.LC98
	.word	.LC99
	.word	.LC100
	.word	.LC101
	.word	stdout
	.word	hostname
	.word	.LC102
	.word	.LC103
	.word	502
	.word	.LC104
	.word	.LC105
	.size	help, .-help
	.section	.rodata
	.align	2
.LC106:
	.ascii	"%s: not a plain file.\000"
	.align	2
.LC107:
	.ascii	"%lu\000"
	.align	2
.LC108:
	.ascii	"r\000"
	.align	2
.LC109:
	.ascii	"%ld\000"
	.align	2
.LC111:
	.ascii	"SIZE not implemented for Type %c.\000"
	.align	2
.LC110:
	.ascii	"?AEIL\000"
	.align	2
.LC112:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	sizecmd, %function
sizecmd:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #112
	str	r0, [fp, #-120]
	ldr	r3, .L144
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L144+4
	ldr	r3, [r3]
	cmp	r3, #1
	beq	.L130
	cmp	r3, #0
	ble	.L131
	sub	r3, r3, #3
	cmp	r3, #1
	bhi	.L131
	sub	r3, fp, #108
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	stat
	mov	r3, r0
	cmp	r3, #0
	blt	.L132
	ldr	r3, [fp, #-92]
	and	r3, r3, #61440
	cmp	r3, #32768
	beq	.L133
.L132:
	ldr	r2, [fp, #-120]
	ldr	r1, .L144+8
	ldr	r0, .L144+12
	bl	reply
	b	.L129
.L133:
	ldr	r3, [fp, #-64]
	mov	r2, r3
	ldr	r1, .L144+16
	mov	r0, #213
	bl	reply
	b	.L129
.L130:
	ldr	r1, .L144+20
	ldr	r0, [fp, #-120]
	bl	fopen
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-112]
	cmp	r3, #0
	bne	.L136
	ldr	r1, [fp, #-120]
	ldr	r0, .L144+12
	bl	perror_reply
	b	.L129
.L136:
	ldr	r0, [fp, #-112]
	bl	fileno
	mov	r2, r0
	sub	r3, fp, #108
	mov	r1, r3
	mov	r0, r2
	bl	fstat
	mov	r3, r0
	cmp	r3, #0
	blt	.L138
	ldr	r3, [fp, #-92]
	and	r3, r3, #61440
	cmp	r3, #32768
	beq	.L139
.L138:
	ldr	r2, [fp, #-120]
	ldr	r1, .L144+8
	ldr	r0, .L144+12
	bl	reply
	ldr	r0, [fp, #-112]
	bl	fclose
	b	.L129
.L139:
	mov	r4, #0
	b	.L140
.L142:
	cmp	r5, #10
	bne	.L141
	add	r4, r4, #1
.L141:
	add	r4, r4, #1
.L140:
	ldr	r0, [fp, #-112]
	bl	getc
	mov	r5, r0
	cmn	r5, #1
	bne	.L142
	ldr	r0, [fp, #-112]
	bl	fclose
	mov	r2, r4
	ldr	r1, .L144+24
	mov	r0, #213
	bl	reply
	b	.L129
.L131:
	ldr	r3, .L144+4
	ldr	r3, [r3]
	ldr	r2, .L144+28
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, .L144+32
	mov	r0, #504
	bl	reply
.L129:
	ldr	r3, .L144
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L143
	bl	__stack_chk_fail
.L143:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L145:
	.align	2
.L144:
	.word	.LC112
	.word	type
	.word	.LC106
	.word	550
	.word	.LC107
	.word	.LC108
	.word	.LC109
	.word	.LC110
	.word	.LC111
	.size	sizecmd, .-sizecmd
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	yygrowstack, %function
yygrowstack:
	@ 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]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L147
	mov	r3, #500
	str	r3, [fp, #-20]
	b	.L148
.L147:
	ldr	r3, [fp, #-20]
	cmp	r3, #500
	bcc	.L149
	mvn	r3, #0
	b	.L150
.L149:
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #500
	bls	.L148
	mov	r3, #500
	str	r3, [fp, #-20]
.L148:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	sub	r3, r2, r3
	asr	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #1
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L151
	mvn	r3, #0
	b	.L150
.L151:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	realloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L152
	mvn	r3, #0
	b	.L150
.L152:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #-2147483647
	lsl	r3, r3, #1
	add	r2, r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #12]
	mov	r3, #0
.L150:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	yygrowstack, .-yygrowstack
	.section	.rodata
	.align	2
.LC113:
	.ascii	"syntax error\000"
	.align	2
.LC114:
	.ascii	"PORT command successful.\000"
	.align	2
.LC115:
	.ascii	"Type set to A.\000"
	.align	2
.LC116:
	.ascii	"Form must be N.\000"
	.align	2
.LC117:
	.ascii	"Type E not implemented.\000"
	.align	2
.LC118:
	.ascii	"Type set to I.\000"
	.align	2
.LC119:
	.ascii	"Type set to L (byte size 8).\000"
	.align	2
.LC120:
	.ascii	"Byte size must be 8.\000"
	.align	2
.LC121:
	.ascii	"STRU F ok.\000"
	.align	2
.LC122:
	.ascii	"Unimplemented STRU type.\000"
	.align	2
.LC123:
	.ascii	"MODE S ok.\000"
	.align	2
.LC124:
	.ascii	"Unimplemented MODE type.\000"
	.align	2
.LC125:
	.ascii	"ALLO command ignored.\000"
	.align	2
.LC126:
	.ascii	"w\000"
	.align	2
.LC127:
	.ascii	"a\000"
	.align	2
.LC128:
	.ascii	".\000"
	.align	2
.LC129:
	.ascii	"/bin/ls -lgA\000"
	.align	2
.LC130:
	.ascii	"/bin/ls -lgA %s\000"
	.align	2
.LC131:
	.ascii	"Bad sequence of commands.\000"
	.align	2
.LC132:
	.ascii	"ABOR command successful.\000"
	.align	2
.LC133:
	.ascii	"NOOP command successful.\000"
	.align	2
.LC134:
	.ascii	"..\000"
	.align	2
.LC135:
	.ascii	"Current UMASK is %03o\000"
	.align	2
.LC136:
	.ascii	"Bad UMASK value\000"
	.align	2
.LC137:
	.ascii	"UMASK set to %03o (was %03o)\000"
	.align	2
.LC138:
	.ascii	"CHMOD: Mode value must be between 0 and 0777\000"
	.align	2
.LC139:
	.ascii	"CHMOD command successful.\000"
	.align	2
.LC140:
	.ascii	"Current IDLE time limit is %d seconds; max %d\000"
	.align	2
.LC141:
	.ascii	"Maximum IDLE time must be between 30 and %d seconds"
	.ascii	"\000"
	.align	2
.LC142:
	.ascii	"Maximum IDLE time set to %d seconds\000"
	.align	2
.LC143:
	.ascii	"UNIX Type: L%d\000"
	.align	2
.LC144:
	.ascii	"%s\000"
	.align	2
.LC145:
	.ascii	"%04d%02d%02d%02d%02d%02d\000"
	.align	2
.LC146:
	.ascii	"Goodbye.\000"
	.align	2
.LC147:
	.ascii	"~\000"
	.align	2
.LC148:
	.ascii	"Please login with USER and PASS.\000"
	.align	2
.LC149:
	.ascii	"yacc stack overflow\000"
	.align	2
.LC150:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ftp_parse
	.syntax unified
	.arm
	.fpu softvfp
	.type	ftp_parse, %function
ftp_parse:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #136
	ldr	r3, .L362
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, .L362+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L362+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L362+12
	mvn	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-132]
	ldr	r3, .L362+16
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L154
	ldr	r0, .L362+16
	bl	yygrowstack
	mov	r3, r0
	cmp	r3, #0
	bne	.L330
.L154:
	ldr	r3, .L362+16
	ldr	r3, [r3, #4]
	ldr	r2, .L362+16
	str	r3, [r2, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #16]
	ldr	r2, .L362+16
	str	r3, [r2, #20]
	mov	r3, #0
	str	r3, [fp, #-132]
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
.L156:
	ldr	r2, .L362+20
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	bne	.L331
	ldr	r3, .L362+12
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L159
	bl	ftp_lex
	mov	r3, r0
	ldr	r2, .L362+12
	str	r3, [r2]
	ldr	r3, .L362+12
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L159
	ldr	r3, .L362+12
	mov	r2, #0
	str	r2, [r3]
.L159:
	ldr	r2, .L362+24
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L160
	ldr	r3, .L362+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-136]
	add	r3, r2, r3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	blt	.L160
	ldr	r3, [fp, #-136]
	cmp	r3, #190
	bgt	.L160
	ldr	r2, .L362+308
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L362+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L160
	ldr	r3, .L362+16
	ldr	r2, [r3, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #12]
	cmp	r2, r3
	bcc	.L161
	ldr	r0, .L362+16
	bl	yygrowstack
	mov	r3, r0
	cmp	r3, #0
	bne	.L332
.L161:
	ldr	r2, .L362+312
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	add	r3, r3, #2
	ldr	r2, .L362+16
	str	r3, [r2, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	ldr	r1, .L362+312
	ldr	r2, [fp, #-136]
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrsh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	add	r3, r3, #4
	ldr	r2, .L362+16
	str	r3, [r2, #20]
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	ldr	r2, .L362+28
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, .L362+12
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, .L362+8
	ldr	r3, [r3]
	cmp	r3, #0
	ble	.L156
	ldr	r3, .L362+8
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L362+8
	str	r3, [r2]
	b	.L156
.L160:
	ldr	r2, .L362+32
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L163
	ldr	r3, .L362+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-136]
	add	r3, r2, r3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	blt	.L163
	ldr	r3, [fp, #-136]
	cmp	r3, #190
	bgt	.L163
	ldr	r2, .L362+308
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L362+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L163
	ldr	r2, .L362+312
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-136]
	b	.L158
.L163:
	ldr	r3, .L362+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L333
	ldr	r0, .L362+36
	bl	ftp_error
	nop
.L166:
	ldr	r3, .L362+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L362+4
	str	r3, [r2]
	b	.L165
.L333:
	nop
.L165:
	ldr	r3, .L362+8
	ldr	r3, [r3]
	cmp	r3, #2
	bgt	.L167
	ldr	r3, .L362+8
	mov	r2, #3
	str	r2, [r3]
.L172:
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	ldrsh	r3, [r3]
	ldr	r2, .L362+24
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L168
	ldr	r3, [fp, #-136]
	add	r3, r3, #256
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	blt	.L168
	ldr	r3, [fp, #-136]
	cmp	r3, #190
	bgt	.L168
	ldr	r2, .L362+308
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	cmp	r3, #256
	bne	.L168
	ldr	r3, .L362+16
	ldr	r2, [r3, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #12]
	cmp	r2, r3
	bcc	.L169
	ldr	r0, .L362+16
	bl	yygrowstack
	mov	r3, r0
	cmp	r3, #0
	bne	.L334
.L169:
	ldr	r2, .L362+312
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	add	r3, r3, #2
	ldr	r2, .L362+16
	str	r3, [r2, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	ldr	r1, .L362+312
	ldr	r2, [fp, #-136]
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrsh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	add	r3, r3, #4
	ldr	r2, .L362+16
	str	r3, [r2, #20]
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	ldr	r2, .L362+28
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L156
.L168:
	ldr	r3, .L362+16
	ldr	r2, [r3, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #4]
	cmp	r2, r3
	bls	.L335
	ldr	r3, .L362+16
	ldr	r3, [r3, #8]
	sub	r3, r3, #2
	ldr	r2, .L362+16
	str	r3, [r2, #8]
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r2, .L362+16
	str	r3, [r2, #20]
	b	.L172
.L167:
	ldr	r3, .L362+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L336
	ldr	r3, .L362+12
	mvn	r2, #0
	str	r2, [r3]
	b	.L156
.L331:
	nop
.L158:
	ldr	r2, .L362+40
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	beq	.L174
	ldr	r3, .L362+16
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-128]
	rsb	r3, r3, #1
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, .L362+324
	str	r3, [r2]
	b	.L175
.L174:
	ldr	r3, .L362+324
	mov	r2, #0
	str	r2, [r3]
.L175:
	ldr	r3, [fp, #-136]
	sub	r3, r3, #2
	cmp	r3, #71
	ldrls	pc, [pc, r3, asl #2]
	b	.L176
.L178:
	.word	.L244
	.word	.L176
	.word	.L243
	.word	.L242
	.word	.L241
	.word	.L240
	.word	.L239
	.word	.L238
	.word	.L237
	.word	.L236
	.word	.L235
	.word	.L234
	.word	.L233
	.word	.L232
	.word	.L231
	.word	.L230
	.word	.L229
	.word	.L228
	.word	.L227
	.word	.L226
	.word	.L225
	.word	.L224
	.word	.L223
	.word	.L222
	.word	.L221
	.word	.L220
	.word	.L219
	.word	.L218
	.word	.L217
	.word	.L216
	.word	.L215
	.word	.L214
	.word	.L213
	.word	.L212
	.word	.L211
	.word	.L210
	.word	.L209
	.word	.L208
	.word	.L207
	.word	.L206
	.word	.L205
	.word	.L204
	.word	.L203
	.word	.L202
	.word	.L201
	.word	.L200
	.word	.L176
	.word	.L199
	.word	.L176
	.word	.L176
	.word	.L198
	.word	.L197
	.word	.L196
	.word	.L195
	.word	.L194
	.word	.L193
	.word	.L192
	.word	.L191
	.word	.L190
	.word	.L189
	.word	.L188
	.word	.L187
	.word	.L186
	.word	.L185
	.word	.L184
	.word	.L183
	.word	.L182
	.word	.L181
	.word	.L180
	.word	.L176
	.word	.L179
	.word	.L177
.L244:
	ldr	r3, .L362+236
	mov	r2, #0
	str	r2, [r3]
	b	.L176
.L243:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	user
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L176
.L242:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	pass
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L176
.L241:
	ldr	r3, .L362+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L362+48
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L245
	ldr	r3, .L362+48
	ldr	r3, [r3]
	mov	r0, r3
	bl	close
	ldr	r3, .L362+48
	mvn	r2, #0
	str	r2, [r3]
.L245:
	ldr	r1, .L362+52
	mov	r0, #200
	bl	reply
	b	.L176
.L240:
	bl	passive
	b	.L176
.L239:
	ldr	r3, .L362+260
	ldr	r3, [r3]
	sub	r3, r3, #1
	cmp	r3, #3
	ldrls	pc, [pc, r3, asl #2]
	b	.L337
.L248:
	.word	.L251
	.word	.L250
	.word	.L249
	.word	.L247
.L251:
	ldr	r3, .L362+256
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L252
	ldr	r1, .L362+56
	mov	r0, #200
	bl	reply
	ldr	r3, .L362+260
	ldr	r3, [r3]
	ldr	r2, .L362+60
	str	r3, [r2]
	ldr	r3, .L362+256
	ldr	r3, [r3]
	ldr	r2, .L362+64
	str	r3, [r2]
	b	.L246
.L252:
	ldr	r1, .L362+68
	mov	r0, #504
	bl	reply
	b	.L246
.L250:
	ldr	r1, .L362+72
	mov	r0, #504
	bl	reply
	b	.L246
.L249:
	ldr	r1, .L362+76
	mov	r0, #200
	bl	reply
	ldr	r3, .L362+260
	ldr	r3, [r3]
	ldr	r2, .L362+60
	str	r3, [r2]
	b	.L246
.L247:
	ldr	r3, .L362+264
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L254
	ldr	r1, .L362+80
	mov	r0, #200
	bl	reply
	ldr	r3, .L362+260
	ldr	r3, [r3]
	ldr	r2, .L362+60
	str	r3, [r2]
	b	.L337
.L254:
	ldr	r1, .L362+84
	mov	r0, #504
	bl	reply
	b	.L337
.L246:
	b	.L337
.L238:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L255
	ldr	r1, .L362+88
	mov	r0, #200
	bl	reply
	nop
	b	.L176
.L255:
	ldr	r1, .L362+92
	mov	r0, #504
	bl	reply
	b	.L176
.L237:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L257
	ldr	r1, .L362+96
	mov	r0, #200
	bl	reply
	nop
	b	.L176
.L257:
	ldr	r1, .L362+100
	ldr	r0, .L362+104
	bl	reply
	b	.L176
.L236:
	ldr	r1, .L362+108
	mov	r0, #202
	bl	reply
	b	.L176
.L235:
	ldr	r1, .L362+108
	mov	r0, #202
	bl	reply
	b	.L176
.L234:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L259
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L259
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, #0
	bl	retrieve
.L259:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L338
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L338
.L233:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L261
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L261
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, #0
	ldr	r1, .L362+208
	mov	r0, r3
	bl	store
.L261:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L339
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L339
.L232:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L263
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L263
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, #0
	ldr	r1, .L362+112
	mov	r0, r3
	bl	store
.L263:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L340
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L340
.L231:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L341
	ldr	r0, .L362+116
	bl	send_file_list
	b	.L341
.L230:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L266
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L266
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	send_file_list
.L266:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L342
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L342
.L229:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L343
	ldr	r1, .L362+240
	ldr	r0, .L362+120
	bl	retrieve
	b	.L343
.L228:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L269
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L269
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L362+124
	bl	retrieve
.L269:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L344
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L344
.L227:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L271
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L271
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	statfilecmd
.L271:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L345
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L345
.L226:
	bl	statcmd
	b	.L176
.L225:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L273
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L273
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	remove
.L273:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L346
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L346
.L224:
	ldr	r3, .L362+236
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L275
	ldr	r3, .L362+236
	ldr	r2, [r3]
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	renamecmd
	ldr	r3, .L362+236
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	ldr	r3, .L362+236
	mov	r2, #0
	str	r2, [r3]
	b	.L276
.L275:
	ldr	r1, .L362+128
	ldr	r0, .L362+132
	bl	reply
.L276:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L176
.L223:
	ldr	r1, .L362+136
	mov	r0, #225
	bl	reply
	b	.L176
.L222:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L347
	ldr	r3, .L362+140
	ldr	r3, [r3]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	cwd
	b	.L347
.L221:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L278
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L278
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	cwd
.L278:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L348
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L348
.L220:
	mov	r1, #0
	ldr	r0, .L362+144
	bl	help
	b	.L176
.L219:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r4, r3
	mov	r2, #4
	ldr	r1, .L362+148
	mov	r0, r4
	bl	strncasecmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L280
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	add	r3, r3, #4
	mov	r4, r3
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L281
	add	r4, r4, #1
.L281:
	ldrb	r3, [r4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L282
	mov	r1, r4
	ldr	r0, .L362+152
	bl	help
	b	.L176
.L282:
	mov	r1, #0
	ldr	r0, .L362+152
	bl	help
	b	.L176
.L280:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L362+144
	bl	help
	b	.L176
.L218:
	ldr	r1, .L362+156
	mov	r0, #200
	bl	reply
	b	.L176
.L217:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L284
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L284
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	makedir
.L284:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L349
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L349
.L216:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L286
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L286
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	removedir
.L286:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L350
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L350
.L215:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L351
	bl	pwd
	b	.L351
.L214:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L352
	ldr	r0, .L362+160
	bl	cwd
	b	.L352
.L213:
	mov	r1, #0
	ldr	r0, .L362+152
	bl	help
	b	.L176
.L212:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L362+152
	bl	help
	b	.L176
.L211:
	ldr	r3, .L362+16
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L353
	mov	r0, #0
	bl	umask
	mov	r3, r0
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	mov	r0, r3
	bl	umask
	ldr	r2, [fp, #-120]
	ldr	r1, .L362+164
	mov	r0, #200
	bl	reply
	b	.L353
.L363:
	.align	2
.L362:
	.word	.LC150
	.word	ftp_nerrs
	.word	ftp_errflag
	.word	ftp_char
	.word	yystack
	.word	ftp_defred
	.word	ftp_sindex
	.word	ftp_lval
	.word	ftp_rindex
	.word	.LC113
	.word	ftp_len
	.word	usedefault
	.word	pdata
	.word	.LC114
	.word	.LC115
	.word	type
	.word	form
	.word	.LC116
	.word	.LC117
	.word	.LC118
	.word	.LC119
	.word	.LC120
	.word	.LC121
	.word	.LC122
	.word	.LC123
	.word	.LC124
	.word	502
	.word	.LC125
	.word	.LC127
	.word	.LC128
	.word	.LC129
	.word	.LC130
	.word	.LC131
	.word	503
	.word	.LC132
	.word	pw
	.word	cmdtab
	.word	.LC55
	.word	sitetab
	.word	.LC133
	.word	.LC134
	.word	.LC135
	.word	.LC136
	.word	.LC137
	.word	.LC138
	.word	.LC139
	.word	.LC140
	.word	maxtimeout
	.word	.LC141
	.word	501
	.word	timeout
	.word	.LC142
	.word	.LC126
	.word	.LC143
	.word	.LC144
	.word	.LC106
	.word	.LC145
	.word	.LC146
	.word	ftp_errflag
	.word	fromname
	.word	.LC63
	.word	data_dest+4
	.word	data_dest+2
	.word	data_dest
	.word	cmd_form
	.word	cmd_type
	.word	cmd_bytesz
	.word	.LC147
	.word	globerr
	.word	550
	.word	1717986919
	.word	logged_in
	.word	.LC148
	.word	530
	.word	ftp_lhs
	.word	ftp_char
	.word	ftp_gindex
	.word	ftp_check
	.word	ftp_table
	.word	ftp_dgoto
	.word	yystack
	.word	ftp_val
	.word	.LC149
	.word	.LC150
.L210:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L354
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmn	r3, #1
	beq	.L292
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #512
	blt	.L293
.L292:
	ldr	r1, .L362+168
	ldr	r0, .L362+196
	bl	reply
	b	.L354
.L293:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	umask
	mov	r3, r0
	str	r3, [fp, #-124]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-124]
	ldr	r1, .L362+172
	mov	r0, #200
	bl	reply
	b	.L354
.L209:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #20
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L294
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L294
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #512
	blt	.L295
	ldr	r1, .L362+176
	ldr	r0, .L362+196
	bl	reply
	b	.L294
.L295:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	chmod
	mov	r3, r0
	cmp	r3, #0
	bge	.L296
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L362+276
	bl	perror_reply
	b	.L294
.L296:
	ldr	r1, .L362+180
	mov	r0, #200
	bl	reply
.L294:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L355
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L355
.L208:
	ldr	r3, .L362+200
	ldr	r2, [r3]
	ldr	r3, .L362+188
	ldr	r3, [r3]
	ldr	r1, .L362+184
	mov	r0, #200
	bl	reply
	b	.L176
.L207:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #29
	ble	.L298
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, .L362+188
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L299
.L298:
	ldr	r3, .L362+188
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L362+192
	ldr	r0, .L362+196
	bl	reply
	b	.L176
.L299:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3, #-4]
	ldr	r2, .L362+200
	str	r3, [r2]
	ldr	r3, .L362+200
	ldr	r3, [r3]
	mov	r0, r3
	bl	alarm
	ldr	r3, .L362+200
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L362+204
	mov	r0, #200
	bl	reply
	b	.L176
.L206:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L301
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L301
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, #1
	ldr	r1, .L362+208
	mov	r0, r3
	bl	store
.L301:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L356
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L356
.L205:
	mov	r2, #8
	ldr	r1, .L362+212
	mov	r0, #215
	bl	reply
	b	.L176
.L204:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L303
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L303
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	sizecmd
.L303:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L357
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L357
.L203:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L305
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L305
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #116
	mov	r1, r3
	mov	r0, r2
	bl	stat
	mov	r3, r0
	cmp	r3, #0
	bge	.L306
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L362+216
	ldr	r0, .L362+276
	bl	perror_reply
	b	.L305
.L306:
	ldr	r3, [fp, #-100]
	and	r3, r3, #61440
	cmp	r3, #32768
	beq	.L308
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L362+220
	ldr	r0, .L362+276
	bl	reply
	b	.L305
.L308:
	sub	r3, fp, #116
	add	r3, r3, #64
	mov	r0, r3
	bl	gmtime
	mov	r4, r0
	ldr	r3, [r4, #20]
	add	r2, r3, #1888
	add	r2, r2, #12
	ldr	r3, [r4, #16]
	add	lr, r3, #1
	ldr	r3, [r4, #12]
	ldr	r1, [r4, #8]
	ldr	r0, [r4, #4]
	ldr	ip, [r4]
	str	ip, [sp, #12]
	str	r0, [sp, #8]
	str	r1, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	ldr	r1, .L362+224
	mov	r0, #213
	bl	reply
.L305:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L358
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L358
.L202:
	ldr	r1, .L362+228
	mov	r0, #221
	bl	reply
	mov	r0, #0
	bl	dologout
	b	.L176
.L201:
	ldr	r3, .L362+232
	mov	r2, #0
	str	r2, [r3]
	b	.L176
.L200:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L359
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L359
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	renamefrom
	mov	r3, r0
	ldr	r2, .L362+236
	str	r3, [r2]
	ldr	r3, .L362+236
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L359
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L359
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #4
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L359
.L199:
	ldr	r3, .L362+324
	ldr	r2, .L362+240
	str	r2, [r3]
	b	.L176
.L198:
	ldr	r4, .L362+244
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #40
	ldr	r3, [r3]
	and	r3, r3, #255
	strb	r3, [r4]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #32
	ldr	r2, [r3]
	add	r3, r4, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #24
	ldr	r2, [r3]
	add	r3, r4, #2
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #16
	ldr	r2, [r3]
	add	r3, r4, #3
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r4, .L362+248
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	sub	r3, r3, #8
	ldr	r3, [r3]
	and	r3, r3, #255
	strb	r3, [r4]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r2, [r3]
	add	r3, r4, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, .L362+252
	mov	r2, #2
	strh	r2, [r3]	@ movhi
	b	.L176
.L197:
	ldr	r3, .L362+324
	mov	r2, #1
	str	r2, [r3]
	b	.L176
.L196:
	ldr	r3, .L362+324
	mov	r2, #2
	str	r2, [r3]
	b	.L176
.L195:
	ldr	r3, .L362+324
	mov	r2, #3
	str	r2, [r3]
	b	.L176
.L194:
	ldr	r3, .L362+260
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L362+256
	mov	r2, #1
	str	r2, [r3]
	b	.L176
.L193:
	ldr	r3, .L362+260
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	ldr	r2, .L362+256
	str	r3, [r2]
	b	.L176
.L192:
	ldr	r3, .L362+260
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, .L362+256
	mov	r2, #1
	str	r2, [r3]
	b	.L176
.L191:
	ldr	r3, .L362+260
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	ldr	r2, .L362+256
	str	r3, [r2]
	b	.L176
.L190:
	ldr	r3, .L362+260
	mov	r2, #3
	str	r2, [r3]
	b	.L176
.L189:
	ldr	r3, .L362+260
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, .L362+264
	mov	r2, #8
	str	r2, [r3]
	b	.L176
.L188:
	ldr	r3, .L362+260
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	ldr	r2, .L362+264
	str	r3, [r2]
	b	.L176
.L187:
	ldr	r3, .L362+260
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	ldr	r2, .L362+264
	str	r3, [r2]
	b	.L176
.L186:
	ldr	r3, .L362+324
	mov	r2, #1
	str	r2, [r3]
	b	.L176
.L185:
	ldr	r3, .L362+324
	mov	r2, #2
	str	r2, [r3]
	b	.L176
.L184:
	ldr	r3, .L362+324
	mov	r2, #3
	str	r2, [r3]
	b	.L176
.L183:
	ldr	r3, .L362+324
	mov	r2, #1
	str	r2, [r3]
	b	.L176
.L182:
	ldr	r3, .L362+324
	mov	r2, #2
	str	r2, [r3]
	b	.L176
.L181:
	ldr	r3, .L362+324
	mov	r2, #3
	str	r2, [r3]
	b	.L176
.L180:
	ldr	r3, .L362+284
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L311
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L311
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, .L362+268
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #0
	bne	.L311
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	mov	r0, r3
	bl	glob
	mov	r3, r0
	ldr	r2, .L362+324
	ldr	r3, [r3]
	str	r3, [r2]
	ldr	r3, .L362+272
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L312
	ldr	r3, .L362+272
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L362+276
	bl	reply
	ldr	r3, .L362+324
	mov	r2, #0
	str	r2, [r3]
.L312:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	mov	r0, r3
	bl	free
	b	.L176
.L311:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r3, [r3]
	ldr	r2, .L362+324
	str	r3, [r2]
	b	.L176
.L179:
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r4, [r3]
	mov	r7, #1
	mov	r6, #0
	b	.L314
.L317:
	ldr	r3, .L362+280
	smull	r2, r3, r4, r3
	asr	r2, r3, #2
	asr	r3, r4, #31
	sub	r5, r2, r3
	mov	r3, r5
	lsl	r3, r3, #2
	add	r3, r3, r5
	lsl	r3, r3, #1
	sub	r5, r4, r3
	cmp	r5, #7
	ble	.L315
	mvn	r6, #0
	b	.L316
.L315:
	mul	r3, r7, r5
	add	r6, r6, r3
	lsl	r7, r7, #3
	ldr	r3, .L362+280
	smull	r2, r3, r4, r3
	asr	r2, r3, #2
	asr	r3, r4, #31
	sub	r3, r2, r3
	mov	r4, r3
.L314:
	cmp	r4, #0
	bne	.L317
.L316:
	ldr	r3, .L362+324
	str	r6, [r3]
	b	.L176
.L177:
	ldr	r3, .L362+284
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L318
	ldr	r3, .L362+324
	mov	r2, #1
	str	r2, [r3]
	b	.L176
.L318:
	ldr	r1, .L362+288
	ldr	r0, .L362+292
	bl	reply
	ldr	r3, .L362+324
	mov	r2, #0
	str	r2, [r3]
	b	.L176
.L337:
	nop
	b	.L176
.L338:
	nop
	b	.L176
.L339:
	nop
	b	.L176
.L340:
	nop
	b	.L176
.L341:
	nop
	b	.L176
.L342:
	nop
	b	.L176
.L343:
	nop
	b	.L176
.L344:
	nop
	b	.L176
.L345:
	nop
	b	.L176
.L346:
	nop
	b	.L176
.L347:
	nop
	b	.L176
.L348:
	nop
	b	.L176
.L349:
	nop
	b	.L176
.L350:
	nop
	b	.L176
.L351:
	nop
	b	.L176
.L352:
	nop
	b	.L176
.L353:
	nop
	b	.L176
.L354:
	nop
	b	.L176
.L355:
	nop
	b	.L176
.L356:
	nop
	b	.L176
.L357:
	nop
	b	.L176
.L358:
	nop
	b	.L176
.L359:
	nop
.L176:
	ldr	r3, .L362+320
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #1
	rsb	r3, r3, #0
	add	r3, r2, r3
	ldr	r2, .L362+320
	str	r3, [r2, #8]
	ldr	r3, .L362+320
	ldr	r3, [r3, #8]
	ldrsh	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, .L362+320
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #2
	rsb	r3, r3, #0
	add	r3, r2, r3
	ldr	r2, .L362+320
	str	r3, [r2, #20]
	ldr	r2, .L362+296
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	bne	.L320
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	bne	.L320
	mov	r3, #1
	str	r3, [fp, #-132]
	ldr	r3, .L362+320
	ldr	r3, [r3, #8]
	add	r3, r3, #2
	ldr	r2, .L362+320
	str	r3, [r2, #8]
	ldr	r3, .L362+320
	ldr	r3, [r3, #8]
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	add	r3, r3, #4
	ldr	r2, .L362+320
	str	r3, [r2, #20]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r2, .L362+324
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, .L362+300
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L321
	bl	ftp_lex
	mov	r3, r0
	ldr	r2, .L362+300
	str	r3, [r2]
	ldr	r3, .L362+300
	ldr	r3, [r3]
	cmp	r3, #0
	bge	.L321
	ldr	r3, .L362+300
	mov	r2, #0
	str	r2, [r3]
.L321:
	ldr	r3, .L362+300
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L360
	b	.L156
.L320:
	ldr	r2, .L362+304
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L324
	ldr	r2, [fp, #-136]
	ldr	r3, [fp, #-132]
	add	r3, r2, r3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	blt	.L324
	ldr	r3, [fp, #-136]
	cmp	r3, #190
	bgt	.L324
	ldr	r2, .L362+308
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-132]
	cmp	r3, r2
	bne	.L324
	ldr	r2, .L362+312
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-132]
	b	.L325
.L324:
	ldr	r2, .L362+316
	ldr	r3, [fp, #-128]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-132]
.L325:
	ldr	r3, .L362+320
	ldr	r2, [r3, #8]
	ldr	r3, .L362+320
	ldr	r3, [r3, #12]
	cmp	r2, r3
	bcc	.L326
	ldr	r0, .L362+320
	bl	yygrowstack
	mov	r3, r0
	cmp	r3, #0
	bne	.L361
.L326:
	ldr	r3, .L362+320
	ldr	r3, [r3, #8]
	add	r3, r3, #2
	ldr	r2, .L362+320
	str	r3, [r2, #8]
	ldr	r3, .L362+320
	ldr	r3, [r3, #8]
	ldr	r2, [fp, #-132]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	add	r3, r3, #4
	ldr	r2, .L362+320
	str	r3, [r2, #20]
	ldr	r3, .L362+320
	ldr	r3, [r3, #20]
	ldr	r2, .L362+324
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L156
.L330:
	nop
	b	.L155
.L332:
	nop
	b	.L155
.L334:
	nop
	b	.L155
.L361:
	nop
.L155:
	ldr	r0, .L362+328
	bl	ftp_error
	b	.L171
.L335:
	nop
	b	.L171
.L336:
	nop
.L171:
	mov	r3, #1
	b	.L327
.L360:
	nop
.L323:
	mov	r3, #0
.L327:
	ldr	r2, .L362+332
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L328
	bl	__stack_chk_fail
.L328:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
	.size	ftp_parse, .-ftp_parse
	.local	state.7155
	.comm	state.7155,4,4
	.local	cpos.7154
	.comm	cpos.7154,4,4
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.7234, %object
	.size	__PRETTY_FUNCTION__.7234, 5
__PRETTY_FUNCTION__.7234:
	.ascii	"help\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
