	.file	"591350.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 32
	.type	MISTY1_SBOX_S7, @object
	.size	MISTY1_SBOX_S7, 128
MISTY1_SBOX_S7:
	.string	"\03323Z;\020\027T[\032rsk,fI\037$\023l7.?J]\017@V%Q\034\004\013F \r{5DB+\036A\024Ky\025o\016U\t6t\fgS(\n~8\002\007`)\031\022e/09\bh_x*LdEu=YH\003W|Ob<\035!^'jpM:\001mnc\030w#\005&v"
	.ascii	"1-z\177aP\"\021\006G\026RNq>iC4\\X}"
	.align 32
	.type	MISTY1_SBOX_S9, @object
	.size	MISTY1_SBOX_S9, 1024
MISTY1_SBOX_S9:
	.value	451
	.value	203
	.value	339
	.value	415
	.value	483
	.value	233
	.value	251
	.value	53
	.value	385
	.value	185
	.value	279
	.value	491
	.value	307
	.value	9
	.value	45
	.value	211
	.value	199
	.value	330
	.value	55
	.value	126
	.value	235
	.value	356
	.value	403
	.value	472
	.value	163
	.value	286
	.value	85
	.value	44
	.value	29
	.value	418
	.value	355
	.value	280
	.value	331
	.value	338
	.value	466
	.value	15
	.value	43
	.value	48
	.value	314
	.value	229
	.value	273
	.value	312
	.value	398
	.value	99
	.value	227
	.value	200
	.value	500
	.value	27
	.value	1
	.value	157
	.value	248
	.value	416
	.value	365
	.value	499
	.value	28
	.value	326
	.value	125
	.value	209
	.value	130
	.value	490
	.value	387
	.value	301
	.value	244
	.value	414
	.value	467
	.value	221
	.value	482
	.value	296
	.value	480
	.value	236
	.value	89
	.value	145
	.value	17
	.value	303
	.value	38
	.value	220
	.value	176
	.value	396
	.value	271
	.value	503
	.value	231
	.value	364
	.value	182
	.value	249
	.value	216
	.value	337
	.value	257
	.value	332
	.value	259
	.value	184
	.value	340
	.value	299
	.value	430
	.value	23
	.value	113
	.value	12
	.value	71
	.value	88
	.value	127
	.value	420
	.value	308
	.value	297
	.value	132
	.value	349
	.value	413
	.value	434
	.value	419
	.value	72
	.value	124
	.value	81
	.value	458
	.value	35
	.value	317
	.value	423
	.value	357
	.value	59
	.value	66
	.value	218
	.value	402
	.value	206
	.value	193
	.value	107
	.value	159
	.value	497
	.value	300
	.value	388
	.value	250
	.value	406
	.value	481
	.value	361
	.value	381
	.value	49
	.value	384
	.value	266
	.value	148
	.value	474
	.value	390
	.value	318
	.value	284
	.value	96
	.value	373
	.value	463
	.value	103
	.value	281
	.value	101
	.value	104
	.value	153
	.value	336
	.value	8
	.value	7
	.value	380
	.value	183
	.value	36
	.value	25
	.value	222
	.value	295
	.value	219
	.value	228
	.value	425
	.value	82
	.value	265
	.value	144
	.value	412
	.value	449
	.value	40
	.value	435
	.value	309
	.value	362
	.value	374
	.value	223
	.value	485
	.value	392
	.value	197
	.value	366
	.value	478
	.value	433
	.value	195
	.value	479
	.value	54
	.value	238
	.value	494
	.value	240
	.value	147
	.value	73
	.value	154
	.value	438
	.value	105
	.value	129
	.value	293
	.value	11
	.value	94
	.value	180
	.value	329
	.value	455
	.value	372
	.value	62
	.value	315
	.value	439
	.value	142
	.value	454
	.value	174
	.value	16
	.value	149
	.value	495
	.value	78
	.value	242
	.value	509
	.value	133
	.value	253
	.value	246
	.value	160
	.value	367
	.value	131
	.value	138
	.value	342
	.value	155
	.value	316
	.value	263
	.value	359
	.value	152
	.value	464
	.value	489
	.value	3
	.value	510
	.value	189
	.value	290
	.value	137
	.value	210
	.value	399
	.value	18
	.value	51
	.value	106
	.value	322
	.value	237
	.value	368
	.value	283
	.value	226
	.value	335
	.value	344
	.value	305
	.value	327
	.value	93
	.value	275
	.value	461
	.value	121
	.value	353
	.value	421
	.value	377
	.value	158
	.value	436
	.value	204
	.value	34
	.value	306
	.value	26
	.value	232
	.value	4
	.value	391
	.value	493
	.value	407
	.value	57
	.value	447
	.value	471
	.value	39
	.value	395
	.value	198
	.value	156
	.value	208
	.value	334
	.value	108
	.value	52
	.value	498
	.value	110
	.value	202
	.value	37
	.value	186
	.value	401
	.value	254
	.value	19
	.value	262
	.value	47
	.value	429
	.value	370
	.value	475
	.value	192
	.value	267
	.value	470
	.value	245
	.value	492
	.value	269
	.value	118
	.value	276
	.value	427
	.value	117
	.value	268
	.value	484
	.value	345
	.value	84
	.value	287
	.value	75
	.value	196
	.value	446
	.value	247
	.value	41
	.value	164
	.value	14
	.value	496
	.value	119
	.value	77
	.value	378
	.value	134
	.value	139
	.value	179
	.value	369
	.value	191
	.value	270
	.value	260
	.value	151
	.value	347
	.value	352
	.value	360
	.value	215
	.value	187
	.value	102
	.value	462
	.value	252
	.value	146
	.value	453
	.value	111
	.value	22
	.value	74
	.value	161
	.value	313
	.value	175
	.value	241
	.value	400
	.value	10
	.value	426
	.value	323
	.value	379
	.value	86
	.value	397
	.value	358
	.value	212
	.value	507
	.value	333
	.value	404
	.value	410
	.value	135
	.value	504
	.value	291
	.value	167
	.value	440
	.value	321
	.value	60
	.value	505
	.value	320
	.value	42
	.value	341
	.value	282
	.value	417
	.value	408
	.value	213
	.value	294
	.value	431
	.value	97
	.value	302
	.value	343
	.value	476
	.value	114
	.value	394
	.value	170
	.value	150
	.value	277
	.value	239
	.value	69
	.value	123
	.value	141
	.value	325
	.value	83
	.value	95
	.value	376
	.value	178
	.value	46
	.value	32
	.value	469
	.value	63
	.value	457
	.value	487
	.value	428
	.value	68
	.value	56
	.value	20
	.value	177
	.value	363
	.value	171
	.value	181
	.value	90
	.value	386
	.value	456
	.value	468
	.value	24
	.value	375
	.value	100
	.value	207
	.value	109
	.value	256
	.value	409
	.value	304
	.value	346
	.value	5
	.value	288
	.value	443
	.value	445
	.value	224
	.value	79
	.value	214
	.value	319
	.value	452
	.value	298
	.value	21
	.value	6
	.value	255
	.value	411
	.value	166
	.value	67
	.value	136
	.value	80
	.value	351
	.value	488
	.value	289
	.value	115
	.value	382
	.value	188
	.value	194
	.value	201
	.value	371
	.value	393
	.value	501
	.value	116
	.value	460
	.value	486
	.value	424
	.value	405
	.value	31
	.value	65
	.value	13
	.value	442
	.value	50
	.value	61
	.value	465
	.value	128
	.value	168
	.value	87
	.value	441
	.value	354
	.value	328
	.value	217
	.value	261
	.value	98
	.value	122
	.value	33
	.value	511
	.value	274
	.value	264
	.value	448
	.value	169
	.value	285
	.value	432
	.value	422
	.value	205
	.value	243
	.value	92
	.value	258
	.value	91
	.value	473
	.value	324
	.value	502
	.value	173
	.value	165
	.value	58
	.value	459
	.value	310
	.value	383
	.value	70
	.value	225
	.value	30
	.value	477
	.value	230
	.value	311
	.value	506
	.value	389
	.value	140
	.value	143
	.value	64
	.value	437
	.value	190
	.value	120
	.value	0
	.value	172
	.value	272
	.value	350
	.value	292
	.value	2
	.value	444
	.value	162
	.value	234
	.value	112
	.value	508
	.value	278
	.value	348
	.value	76
	.value	450
	.globl	EK
	.bss
	.align 32
	.type	EK, @object
	.size	EK, 200
EK:
	.zero	200
	.globl	DK
	.align 32
	.type	DK, @object
	.size	DK, 200
DK:
	.zero	200
	.globl	key
	.data
	.align 16
	.type	key, @object
	.size	key, 16
key:
	.ascii	"\021\177\336n3\270\377\314\315f\253\373\317\213T\363"
	.globl	in
	.align 16
	.type	in, @object
	.size	in, 16
in:
	.ascii	"4\364\335\276\373\307\037-=\370\257\355.\3378\217"
	.globl	out
	.bss
	.align 16
	.type	out, @object
	.size	out, 16
out:
	.zero	16
	.globl	input
	.align 2
	.type	input, @object
	.size	input, 2
input:
	.zero	2
	.globl	key7
	.align 2
	.type	key7, @object
	.size	key7, 2
key7:
	.zero	2
	.globl	key9
	.align 2
	.type	key9, @object
	.size	key9, 2
key9:
	.zero	2
	.globl	D9
	.align 2
	.type	D9, @object
	.size	D9, 2
D9:
	.zero	2
	.globl	D7
	.align 2
	.type	D7, @object
	.size	D7, 2
D7:
	.zero	2
	.globl	Result
	.align 2
	.type	Result, @object
	.size	Result, 2
Result:
	.zero	2
	.text
	.globl	FI
	.type	FI, @function
FI:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movzx	eax, WORD PTR input[rip]
	shr	ax, 7
	mov	WORD PTR D9[rip], ax
	movzx	eax, WORD PTR input[rip]
	and	eax, 127
	mov	WORD PTR D7[rip], ax
	movzx	eax, WORD PTR D9[rip]
	movzx	eax, ax
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, MISTY1_SBOX_S9[rip]
	movzx	edx, WORD PTR [rdx+rax]
	movzx	eax, WORD PTR D7[rip]
	xor	eax, edx
	mov	WORD PTR D9[rip], ax
	movzx	eax, WORD PTR D7[rip]
	movzx	eax, ax
	cdqe
	lea	rdx, MISTY1_SBOX_S7[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	edx, al
	movzx	eax, WORD PTR key7[rip]
	xor	eax, edx
	mov	edx, eax
	movzx	eax, WORD PTR D9[rip]
	xor	eax, edx
	and	eax, 127
	mov	WORD PTR D7[rip], ax
	movzx	edx, WORD PTR D9[rip]
	movzx	eax, WORD PTR key9[rip]
	xor	eax, edx
	movzx	eax, ax
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, MISTY1_SBOX_S9[rip]
	movzx	edx, WORD PTR [rdx+rax]
	movzx	eax, WORD PTR D7[rip]
	xor	eax, edx
	mov	WORD PTR D9[rip], ax
	movzx	eax, WORD PTR D7[rip]
	movzx	eax, ax
	sal	eax, 9
	mov	edx, eax
	movzx	eax, WORD PTR D9[rip]
	or	eax, edx
	mov	WORD PTR Result[rip], ax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	FI, .-FI
	.globl	encrypt
	.type	encrypt, @function
encrypt:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR i.26[rip], 0
	jmp	.L3
.L14:
	lea	rax, in[rip]
	mov	QWORD PTR p.25[rip], rax
	mov	DWORD PTR j.24[rip], 0
	jmp	.L4
.L5:
	movzx	eax, WORD PTR B0.23[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.25[rip]
	mov	edx, DWORD PTR j.24[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B0.23[rip], ax
	mov	eax, DWORD PTR j.24[rip]
	add	eax, 1
	mov	DWORD PTR j.24[rip], eax
.L4:
	mov	eax, DWORD PTR j.24[rip]
	cmp	eax, 1
	jbe	.L5
	lea	rax, in[rip+2]
	mov	QWORD PTR p.25[rip], rax
	mov	DWORD PTR j.24[rip], 0
	jmp	.L6
.L7:
	movzx	eax, WORD PTR B1.22[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.25[rip]
	mov	edx, DWORD PTR j.24[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B1.22[rip], ax
	mov	eax, DWORD PTR j.24[rip]
	add	eax, 1
	mov	DWORD PTR j.24[rip], eax
.L6:
	mov	eax, DWORD PTR j.24[rip]
	cmp	eax, 2
	jne	.L7
	lea	rax, in[rip+4]
	mov	QWORD PTR p.25[rip], rax
	mov	DWORD PTR j.24[rip], 0
	jmp	.L8
.L9:
	movzx	eax, WORD PTR B2.21[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.25[rip]
	mov	edx, DWORD PTR j.24[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B2.21[rip], ax
	mov	eax, DWORD PTR j.24[rip]
	add	eax, 1
	mov	DWORD PTR j.24[rip], eax
.L8:
	mov	eax, DWORD PTR j.24[rip]
	cmp	eax, 2
	jne	.L9
	lea	rax, in[rip+6]
	mov	QWORD PTR p.25[rip], rax
	mov	DWORD PTR j.24[rip], 0
	jmp	.L10
.L11:
	movzx	eax, WORD PTR B3.20[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.25[rip]
	mov	edx, DWORD PTR j.24[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B3.20[rip], ax
	mov	eax, DWORD PTR j.24[rip]
	add	eax, 1
	mov	DWORD PTR j.24[rip], eax
.L10:
	mov	eax, DWORD PTR j.24[rip]
	cmp	eax, 2
	jne	.L11
	mov	DWORD PTR j.24[rip], 0
	jmp	.L12
.L13:
	mov	eax, DWORD PTR j.24[rip]
	sal	eax, 3
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, EK[rip]
	add	rax, rdx
	mov	QWORD PTR RK.19[rip], rax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B0.23[rip]
	and	edx, eax
	movzx	eax, WORD PTR B1.22[rip]
	xor	eax, edx
	mov	WORD PTR B1.22[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 2
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B1.22[rip]
	or	edx, eax
	movzx	eax, WORD PTR B0.23[rip]
	xor	eax, edx
	mov	WORD PTR B0.23[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 4
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B2.21[rip]
	and	edx, eax
	movzx	eax, WORD PTR B3.20[rip]
	xor	eax, edx
	mov	WORD PTR B3.20[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 6
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B3.20[rip]
	or	edx, eax
	movzx	eax, WORD PTR B2.21[rip]
	xor	eax, edx
	mov	WORD PTR B2.21[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 8
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B0.23[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 12[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	edx, WORD PTR Result[rip]
	movzx	eax, WORD PTR B1.22[rip]
	xor	eax, edx
	movzx	eax, ax
	mov	DWORD PTR T0.18[rip], eax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 14
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B1.22[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 16[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 18[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR T0.18[rip]
	xor	eax, edx
	mov	DWORD PTR T1.17[rip], eax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 20
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR T0.18[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 22[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 24[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR T1.17[rip]
	xor	eax, edx
	mov	DWORD PTR T0.18[rip], eax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 26
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR T1.17[rip]
	xor	edx, eax
	movzx	eax, WORD PTR B2.21[rip]
	xor	eax, edx
	mov	WORD PTR B2.21[rip], ax
	mov	eax, DWORD PTR T0.18[rip]
	mov	edx, eax
	movzx	eax, WORD PTR B3.20[rip]
	xor	eax, edx
	mov	WORD PTR B3.20[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 28
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B2.21[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 30[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 32[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	edx, WORD PTR Result[rip]
	movzx	eax, WORD PTR B3.20[rip]
	xor	eax, edx
	movzx	eax, ax
	mov	DWORD PTR T0.18[rip], eax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 34
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B3.20[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 36[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 38[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR T0.18[rip]
	xor	eax, edx
	mov	DWORD PTR T1.17[rip], eax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 40
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR T0.18[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 42[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.19[rip]
	movzx	eax, WORD PTR 44[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR T1.17[rip]
	xor	eax, edx
	mov	DWORD PTR T0.18[rip], eax
	mov	rax, QWORD PTR RK.19[rip]
	add	rax, 46
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR T1.17[rip]
	xor	edx, eax
	movzx	eax, WORD PTR B0.23[rip]
	xor	eax, edx
	mov	WORD PTR B0.23[rip], ax
	mov	eax, DWORD PTR T0.18[rip]
	mov	edx, eax
	movzx	eax, WORD PTR B1.22[rip]
	xor	eax, edx
	mov	WORD PTR B1.22[rip], ax
	mov	eax, DWORD PTR j.24[rip]
	add	eax, 3
	mov	DWORD PTR j.24[rip], eax
.L12:
	mov	eax, DWORD PTR j.24[rip]
	cmp	eax, 12
	jne	.L13
	movzx	edx, WORD PTR EK[rip+192]
	movzx	eax, WORD PTR B0.23[rip]
	and	edx, eax
	movzx	eax, WORD PTR B1.22[rip]
	xor	eax, edx
	mov	WORD PTR B1.22[rip], ax
	movzx	edx, WORD PTR EK[rip+194]
	movzx	eax, WORD PTR B1.22[rip]
	or	edx, eax
	movzx	eax, WORD PTR B0.23[rip]
	xor	eax, edx
	mov	WORD PTR B0.23[rip], ax
	movzx	edx, WORD PTR EK[rip+196]
	movzx	eax, WORD PTR B2.21[rip]
	and	edx, eax
	movzx	eax, WORD PTR B3.20[rip]
	xor	eax, edx
	mov	WORD PTR B3.20[rip], ax
	movzx	edx, WORD PTR EK[rip+198]
	movzx	eax, WORD PTR B3.20[rip]
	or	edx, eax
	movzx	eax, WORD PTR B2.21[rip]
	xor	eax, edx
	mov	WORD PTR B2.21[rip], ax
	lea	rax, out[rip]
	mov	QWORD PTR p1.16[rip], rax
	mov	rax, QWORD PTR p1.16[rip]
	movzx	edx, WORD PTR B2.21[rip]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR p1.16[rip]
	lea	rdx, 2[rax]
	movzx	eax, WORD PTR B3.20[rip]
	mov	WORD PTR [rdx], ax
	mov	rax, QWORD PTR p1.16[rip]
	lea	rdx, 4[rax]
	movzx	eax, WORD PTR B0.23[rip]
	mov	WORD PTR [rdx], ax
	mov	rax, QWORD PTR p1.16[rip]
	lea	rdx, 6[rax]
	movzx	eax, WORD PTR B1.22[rip]
	mov	WORD PTR [rdx], ax
	mov	eax, DWORD PTR i.26[rip]
	add	eax, 1
	mov	DWORD PTR i.26[rip], eax
.L3:
	mov	eax, DWORD PTR i.26[rip]
	cmp	eax, 1
	jne	.L14
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	encrypt, .-encrypt
	.globl	decrypt
	.type	decrypt, @function
decrypt:
.LFB8:
	.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	DWORD PTR i.15[rip], 0
	jmp	.L16
.L27:
	lea	rax, in[rip+4]
	mov	QWORD PTR p.14[rip], rax
	mov	DWORD PTR j.13[rip], 0
	jmp	.L17
.L18:
	movzx	eax, WORD PTR B0.12[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.14[rip]
	mov	edx, DWORD PTR j.13[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B0.12[rip], ax
	mov	eax, DWORD PTR i.15[rip]
	add	eax, 1
	mov	DWORD PTR i.15[rip], eax
.L17:
	mov	eax, DWORD PTR j.13[rip]
	cmp	eax, 2
	jne	.L18
	lea	rax, in[rip+6]
	mov	QWORD PTR p.14[rip], rax
	mov	DWORD PTR j.13[rip], 0
	jmp	.L19
.L20:
	movzx	eax, WORD PTR B1.11[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.14[rip]
	mov	edx, DWORD PTR j.13[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B1.11[rip], ax
	mov	eax, DWORD PTR j.13[rip]
	add	eax, 1
	mov	DWORD PTR j.13[rip], eax
.L19:
	mov	eax, DWORD PTR j.13[rip]
	cmp	eax, 2
	jne	.L20
	lea	rax, in[rip]
	mov	QWORD PTR p.14[rip], rax
	mov	DWORD PTR j.13[rip], 0
	jmp	.L21
.L22:
	movzx	eax, WORD PTR B2.10[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.14[rip]
	mov	edx, DWORD PTR j.13[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B2.10[rip], ax
	mov	eax, DWORD PTR j.13[rip]
	add	eax, 1
	mov	DWORD PTR j.13[rip], eax
.L21:
	mov	eax, DWORD PTR j.13[rip]
	cmp	eax, 2
	jne	.L22
	lea	rax, in[rip+2]
	mov	QWORD PTR p.14[rip], rax
	mov	DWORD PTR j.13[rip], 0
	jmp	.L23
.L24:
	movzx	eax, WORD PTR B3.9[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.14[rip]
	mov	edx, DWORD PTR j.13[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR B3.9[rip], ax
	mov	eax, DWORD PTR j.13[rip]
	add	eax, 1
	mov	DWORD PTR j.13[rip], eax
.L23:
	mov	eax, DWORD PTR j.13[rip]
	cmp	eax, 2
	jne	.L24
	mov	DWORD PTR j.13[rip], 0
	jmp	.L25
.L26:
	mov	eax, DWORD PTR j.13[rip]
	sal	eax, 3
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, DK[rip]
	add	rax, rdx
	mov	QWORD PTR RK.8[rip], rax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B3.9[rip]
	or	edx, eax
	movzx	eax, WORD PTR B2.10[rip]
	xor	eax, edx
	mov	WORD PTR B2.10[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 2
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B2.10[rip]
	and	edx, eax
	movzx	eax, WORD PTR B3.9[rip]
	xor	eax, edx
	mov	WORD PTR B3.9[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 4
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B1.11[rip]
	or	edx, eax
	movzx	eax, WORD PTR B0.12[rip]
	xor	eax, edx
	mov	WORD PTR B0.12[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 6
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B0.12[rip]
	and	edx, eax
	movzx	eax, WORD PTR B1.11[rip]
	xor	eax, edx
	mov	WORD PTR B1.11[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 8
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B2.10[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 12[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	edx, WORD PTR Result[rip]
	movzx	eax, WORD PTR B3.9[rip]
	xor	eax, edx
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 14
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B3.9[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 16[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 18[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	eax, ax
	xor	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 20
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 22[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 24[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	eax, ax
	xor	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 26
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	xor	edx, eax
	movzx	eax, WORD PTR B0.12[rip]
	xor	eax, edx
	mov	WORD PTR B0.12[rip], ax
	mov	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	movzx	eax, WORD PTR B1.11[rip]
	xor	eax, edx
	mov	WORD PTR B1.11[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 28
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B0.12[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 30[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 32[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	edx, WORD PTR Result[rip]
	movzx	eax, WORD PTR B1.11[rip]
	xor	eax, edx
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 34
	movzx	edx, WORD PTR [rax]
	movzx	eax, WORD PTR B1.11[rip]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 36[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 38[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	eax, ax
	xor	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 40
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -8[rbp]
	xor	eax, edx
	mov	WORD PTR input[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 42[rax]
	mov	WORD PTR key7[rip], ax
	mov	rax, QWORD PTR RK.8[rip]
	movzx	eax, WORD PTR 44[rax]
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	movzx	eax, WORD PTR Result[rip]
	movzx	eax, ax
	xor	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR RK.8[rip]
	add	rax, 46
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	xor	edx, eax
	movzx	eax, WORD PTR B2.10[rip]
	xor	eax, edx
	mov	WORD PTR B2.10[rip], ax
	mov	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	movzx	eax, WORD PTR B3.9[rip]
	xor	eax, edx
	mov	WORD PTR B3.9[rip], ax
	mov	eax, DWORD PTR j.13[rip]
	add	eax, 3
	mov	DWORD PTR j.13[rip], eax
.L25:
	mov	eax, DWORD PTR j.13[rip]
	cmp	eax, 12
	jne	.L26
	movzx	edx, WORD PTR DK[rip+192]
	movzx	eax, WORD PTR B3.9[rip]
	or	edx, eax
	movzx	eax, WORD PTR B2.10[rip]
	xor	eax, edx
	mov	WORD PTR B2.10[rip], ax
	movzx	edx, WORD PTR DK[rip+194]
	movzx	eax, WORD PTR B2.10[rip]
	and	edx, eax
	movzx	eax, WORD PTR B3.9[rip]
	xor	eax, edx
	mov	WORD PTR B3.9[rip], ax
	movzx	edx, WORD PTR DK[rip+196]
	movzx	eax, WORD PTR B1.11[rip]
	or	edx, eax
	movzx	eax, WORD PTR B0.12[rip]
	xor	eax, edx
	mov	WORD PTR B0.12[rip], ax
	movzx	edx, WORD PTR DK[rip+198]
	movzx	eax, WORD PTR B0.12[rip]
	and	edx, eax
	movzx	eax, WORD PTR B1.11[rip]
	xor	eax, edx
	mov	WORD PTR B1.11[rip], ax
	lea	rax, out[rip]
	mov	QWORD PTR p1.7[rip], rax
	mov	rax, QWORD PTR p1.7[rip]
	movzx	edx, WORD PTR B0.12[rip]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR p1.7[rip]
	lea	rdx, 2[rax]
	movzx	eax, WORD PTR B1.11[rip]
	mov	WORD PTR [rdx], ax
	mov	rax, QWORD PTR p1.7[rip]
	lea	rdx, 4[rax]
	movzx	eax, WORD PTR B2.10[rip]
	mov	WORD PTR [rdx], ax
	mov	rax, QWORD PTR p1.7[rip]
	lea	rdx, 6[rax]
	movzx	eax, WORD PTR B3.9[rip]
	mov	WORD PTR [rdx], ax
	mov	eax, DWORD PTR i.15[rip]
	add	eax, 1
	mov	DWORD PTR i.15[rip], eax
.L16:
	mov	eax, DWORD PTR i.15[rip]
	cmp	eax, 1
	jne	.L27
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	decrypt, .-decrypt
	.globl	key_schedule
	.type	key_schedule, @function
key_schedule:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR i.6[rip], 0
	jmp	.L29
.L32:
	mov	WORD PTR tmp.5[rip], 0
	mov	eax, DWORD PTR i.6[rip]
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, key[rip]
	add	rax, rdx
	mov	QWORD PTR p.4[rip], rax
	mov	DWORD PTR j.3[rip], 0
	jmp	.L30
.L31:
	movzx	eax, WORD PTR tmp.5[rip]
	movzx	eax, ax
	sal	eax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR p.4[rip]
	mov	edx, DWORD PTR j.3[rip]
	mov	edx, edx
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	or	eax, ecx
	mov	WORD PTR tmp.5[rip], ax
	mov	eax, DWORD PTR j.3[rip]
	add	eax, 1
	mov	DWORD PTR j.3[rip], eax
.L30:
	mov	eax, DWORD PTR j.3[rip]
	cmp	eax, 2
	jne	.L31
	mov	edx, DWORD PTR i.6[rip]
	movzx	eax, WORD PTR tmp.5[rip]
	mov	edx, edx
	lea	rcx, [rdx+rdx]
	lea	rdx, KS.2[rip]
	mov	WORD PTR [rcx+rdx], ax
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 1
	mov	DWORD PTR i.6[rip], eax
.L29:
	mov	eax, DWORD PTR i.6[rip]
	cmp	eax, 8
	jne	.L32
	mov	DWORD PTR i.6[rip], 0
	jmp	.L33
.L34:
	mov	eax, DWORD PTR i.6[rip]
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	mov	WORD PTR input[rip], ax
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 1
	and	eax, 7
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	shr	ax, 9
	mov	WORD PTR key7[rip], ax
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 1
	and	eax, 7
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	and	ax, 511
	mov	WORD PTR key9[rip], ax
	mov	eax, 0
	call	FI
	mov	eax, DWORD PTR i.6[rip]
	lea	edx, 8[rax]
	movzx	eax, WORD PTR Result[rip]
	mov	edx, edx
	lea	rcx, [rdx+rdx]
	lea	rdx, KS.2[rip]
	mov	WORD PTR [rcx+rdx], ax
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 8
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	mov	edx, DWORD PTR i.6[rip]
	add	edx, 16
	shr	ax, 9
	mov	ecx, eax
	mov	eax, edx
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	mov	WORD PTR [rdx+rax], cx
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 8
	mov	eax, eax
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	mov	edx, DWORD PTR i.6[rip]
	add	edx, 24
	and	ax, 511
	mov	ecx, eax
	mov	eax, edx
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	mov	WORD PTR [rdx+rax], cx
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 1
	mov	DWORD PTR i.6[rip], eax
.L33:
	mov	eax, DWORD PTR i.6[rip]
	cmp	eax, 8
	jne	.L34
	mov	DWORD PTR i.6[rip], 0
	jmp	.L35
.L36:
	mov	eax, DWORD PTR i.6[rip]
	mov	edx, eax
	lea	rax, EK_ORDER.1[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	ecx, DWORD PTR i.6[rip]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	mov	edx, ecx
	lea	rcx, [rdx+rdx]
	lea	rdx, EK[rip]
	mov	WORD PTR [rcx+rdx], ax
	mov	eax, DWORD PTR i.6[rip]
	mov	edx, eax
	lea	rax, DK_ORDER.0[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	ecx, DWORD PTR i.6[rip]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, KS.2[rip]
	movzx	eax, WORD PTR [rdx+rax]
	mov	edx, ecx
	lea	rcx, [rdx+rdx]
	lea	rdx, DK[rip]
	mov	WORD PTR [rcx+rdx], ax
	mov	eax, DWORD PTR i.6[rip]
	add	eax, 1
	mov	DWORD PTR i.6[rip], eax
.L35:
	mov	eax, DWORD PTR i.6[rip]
	cmp	eax, 100
	jne	.L36
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	key_schedule, .-key_schedule
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	call	key_schedule
	mov	eax, 0
	call	encrypt
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.local	i.26
	.comm	i.26,4,4
	.local	p.25
	.comm	p.25,8,8
	.local	j.24
	.comm	j.24,4,4
	.local	B0.23
	.comm	B0.23,2,2
	.local	B1.22
	.comm	B1.22,2,2
	.local	B2.21
	.comm	B2.21,2,2
	.local	B3.20
	.comm	B3.20,2,2
	.local	RK.19
	.comm	RK.19,8,8
	.local	T0.18
	.comm	T0.18,4,4
	.local	T1.17
	.comm	T1.17,4,4
	.local	p1.16
	.comm	p1.16,8,8
	.local	i.15
	.comm	i.15,4,4
	.local	p.14
	.comm	p.14,8,8
	.local	j.13
	.comm	j.13,4,4
	.local	B0.12
	.comm	B0.12,2,2
	.local	B1.11
	.comm	B1.11,2,2
	.local	B2.10
	.comm	B2.10,2,2
	.local	B3.9
	.comm	B3.9,2,2
	.local	RK.8
	.comm	RK.8,8,8
	.local	p1.7
	.comm	p1.7,8,8
	.local	i.6
	.comm	i.6,4,4
	.local	tmp.5
	.comm	tmp.5,2,2
	.local	p.4
	.comm	p.4,8,8
	.local	j.3
	.comm	j.3,4,4
	.local	KS.2
	.comm	KS.2,64,32
	.section	.rodata
	.align 32
	.type	EK_ORDER.1, @object
	.size	EK_ORDER.1, 100
EK_ORDER.1:
	.string	""
	.string	"\016\n\004"
	.string	"\025\035\002\021\031\007\023\033\004\001\026\036\003\022\032"
	.string	"\024\034\005\001\017\013\005\002\027\037\004\023\033\001\025\035\006\003\020\030\005\024\034\002\026\036\007\002\b\f\006\004\021\031\006\025\035\003\027\037"
	.string	"\005\022\032\007\026\036\004\020\030\001\003\t\r\007\006\023\033"
	.string	"\027\037\005\021\031\002\007\024\034\001\020\030\006\022\032\003\004\n\016"
	.align 32
	.type	DK_ORDER.0, @object
	.size	DK_ORDER.0, 100
DK_ORDER.0:
	.string	""
	.string	"\016\n\004\007\024\034\001\020\030\006\022\032\003\006\023\033"
	.string	"\027\037\005\021\031\002\007\r\t\003\005\022\032\007\026\036\004\020\030\001\004\021\031\006\025\035\003\027\037"
	.string	"\006\f\b\002\003\020\030\005\024\034\002\026\036\007\002\027\037\004\023\033\001\025\035\006\005\013\017\001\001\026\036\003\022\032"
	.string	"\024\034\005"
	.string	"\025\035\002\021\031\007\023\033\004\004\n\016"
	.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	"591350.c"
	.text
	.section	.rodata
	.align	2
	.type	MISTY1_SBOX_S7, %object
	.size	MISTY1_SBOX_S7, 128
MISTY1_SBOX_S7:
	.ascii	"\03323Z;\020\027T[\032rsk,fI\037$\023l7.?J]\017@V%Q"
	.ascii	"\034\004\013F \015{5DB+\036A\024Ky\025o\016U\0116t\014"
	.ascii	"gS(\012~8\002\007`)\031\022e/09\010h_x*LdEu=YH\003W"
	.ascii	"|Ob<\035!^'jpM:\001mnc\030w#\005&v\0001-z\177aP\"\021"
	.ascii	"\006G\026RNq>iC4\\X}"
	.align	2
	.type	MISTY1_SBOX_S9, %object
	.size	MISTY1_SBOX_S9, 1024
MISTY1_SBOX_S9:
	.short	451
	.short	203
	.short	339
	.short	415
	.short	483
	.short	233
	.short	251
	.short	53
	.short	385
	.short	185
	.short	279
	.short	491
	.short	307
	.short	9
	.short	45
	.short	211
	.short	199
	.short	330
	.short	55
	.short	126
	.short	235
	.short	356
	.short	403
	.short	472
	.short	163
	.short	286
	.short	85
	.short	44
	.short	29
	.short	418
	.short	355
	.short	280
	.short	331
	.short	338
	.short	466
	.short	15
	.short	43
	.short	48
	.short	314
	.short	229
	.short	273
	.short	312
	.short	398
	.short	99
	.short	227
	.short	200
	.short	500
	.short	27
	.short	1
	.short	157
	.short	248
	.short	416
	.short	365
	.short	499
	.short	28
	.short	326
	.short	125
	.short	209
	.short	130
	.short	490
	.short	387
	.short	301
	.short	244
	.short	414
	.short	467
	.short	221
	.short	482
	.short	296
	.short	480
	.short	236
	.short	89
	.short	145
	.short	17
	.short	303
	.short	38
	.short	220
	.short	176
	.short	396
	.short	271
	.short	503
	.short	231
	.short	364
	.short	182
	.short	249
	.short	216
	.short	337
	.short	257
	.short	332
	.short	259
	.short	184
	.short	340
	.short	299
	.short	430
	.short	23
	.short	113
	.short	12
	.short	71
	.short	88
	.short	127
	.short	420
	.short	308
	.short	297
	.short	132
	.short	349
	.short	413
	.short	434
	.short	419
	.short	72
	.short	124
	.short	81
	.short	458
	.short	35
	.short	317
	.short	423
	.short	357
	.short	59
	.short	66
	.short	218
	.short	402
	.short	206
	.short	193
	.short	107
	.short	159
	.short	497
	.short	300
	.short	388
	.short	250
	.short	406
	.short	481
	.short	361
	.short	381
	.short	49
	.short	384
	.short	266
	.short	148
	.short	474
	.short	390
	.short	318
	.short	284
	.short	96
	.short	373
	.short	463
	.short	103
	.short	281
	.short	101
	.short	104
	.short	153
	.short	336
	.short	8
	.short	7
	.short	380
	.short	183
	.short	36
	.short	25
	.short	222
	.short	295
	.short	219
	.short	228
	.short	425
	.short	82
	.short	265
	.short	144
	.short	412
	.short	449
	.short	40
	.short	435
	.short	309
	.short	362
	.short	374
	.short	223
	.short	485
	.short	392
	.short	197
	.short	366
	.short	478
	.short	433
	.short	195
	.short	479
	.short	54
	.short	238
	.short	494
	.short	240
	.short	147
	.short	73
	.short	154
	.short	438
	.short	105
	.short	129
	.short	293
	.short	11
	.short	94
	.short	180
	.short	329
	.short	455
	.short	372
	.short	62
	.short	315
	.short	439
	.short	142
	.short	454
	.short	174
	.short	16
	.short	149
	.short	495
	.short	78
	.short	242
	.short	509
	.short	133
	.short	253
	.short	246
	.short	160
	.short	367
	.short	131
	.short	138
	.short	342
	.short	155
	.short	316
	.short	263
	.short	359
	.short	152
	.short	464
	.short	489
	.short	3
	.short	510
	.short	189
	.short	290
	.short	137
	.short	210
	.short	399
	.short	18
	.short	51
	.short	106
	.short	322
	.short	237
	.short	368
	.short	283
	.short	226
	.short	335
	.short	344
	.short	305
	.short	327
	.short	93
	.short	275
	.short	461
	.short	121
	.short	353
	.short	421
	.short	377
	.short	158
	.short	436
	.short	204
	.short	34
	.short	306
	.short	26
	.short	232
	.short	4
	.short	391
	.short	493
	.short	407
	.short	57
	.short	447
	.short	471
	.short	39
	.short	395
	.short	198
	.short	156
	.short	208
	.short	334
	.short	108
	.short	52
	.short	498
	.short	110
	.short	202
	.short	37
	.short	186
	.short	401
	.short	254
	.short	19
	.short	262
	.short	47
	.short	429
	.short	370
	.short	475
	.short	192
	.short	267
	.short	470
	.short	245
	.short	492
	.short	269
	.short	118
	.short	276
	.short	427
	.short	117
	.short	268
	.short	484
	.short	345
	.short	84
	.short	287
	.short	75
	.short	196
	.short	446
	.short	247
	.short	41
	.short	164
	.short	14
	.short	496
	.short	119
	.short	77
	.short	378
	.short	134
	.short	139
	.short	179
	.short	369
	.short	191
	.short	270
	.short	260
	.short	151
	.short	347
	.short	352
	.short	360
	.short	215
	.short	187
	.short	102
	.short	462
	.short	252
	.short	146
	.short	453
	.short	111
	.short	22
	.short	74
	.short	161
	.short	313
	.short	175
	.short	241
	.short	400
	.short	10
	.short	426
	.short	323
	.short	379
	.short	86
	.short	397
	.short	358
	.short	212
	.short	507
	.short	333
	.short	404
	.short	410
	.short	135
	.short	504
	.short	291
	.short	167
	.short	440
	.short	321
	.short	60
	.short	505
	.short	320
	.short	42
	.short	341
	.short	282
	.short	417
	.short	408
	.short	213
	.short	294
	.short	431
	.short	97
	.short	302
	.short	343
	.short	476
	.short	114
	.short	394
	.short	170
	.short	150
	.short	277
	.short	239
	.short	69
	.short	123
	.short	141
	.short	325
	.short	83
	.short	95
	.short	376
	.short	178
	.short	46
	.short	32
	.short	469
	.short	63
	.short	457
	.short	487
	.short	428
	.short	68
	.short	56
	.short	20
	.short	177
	.short	363
	.short	171
	.short	181
	.short	90
	.short	386
	.short	456
	.short	468
	.short	24
	.short	375
	.short	100
	.short	207
	.short	109
	.short	256
	.short	409
	.short	304
	.short	346
	.short	5
	.short	288
	.short	443
	.short	445
	.short	224
	.short	79
	.short	214
	.short	319
	.short	452
	.short	298
	.short	21
	.short	6
	.short	255
	.short	411
	.short	166
	.short	67
	.short	136
	.short	80
	.short	351
	.short	488
	.short	289
	.short	115
	.short	382
	.short	188
	.short	194
	.short	201
	.short	371
	.short	393
	.short	501
	.short	116
	.short	460
	.short	486
	.short	424
	.short	405
	.short	31
	.short	65
	.short	13
	.short	442
	.short	50
	.short	61
	.short	465
	.short	128
	.short	168
	.short	87
	.short	441
	.short	354
	.short	328
	.short	217
	.short	261
	.short	98
	.short	122
	.short	33
	.short	511
	.short	274
	.short	264
	.short	448
	.short	169
	.short	285
	.short	432
	.short	422
	.short	205
	.short	243
	.short	92
	.short	258
	.short	91
	.short	473
	.short	324
	.short	502
	.short	173
	.short	165
	.short	58
	.short	459
	.short	310
	.short	383
	.short	70
	.short	225
	.short	30
	.short	477
	.short	230
	.short	311
	.short	506
	.short	389
	.short	140
	.short	143
	.short	64
	.short	437
	.short	190
	.short	120
	.short	0
	.short	172
	.short	272
	.short	350
	.short	292
	.short	2
	.short	444
	.short	162
	.short	234
	.short	112
	.short	508
	.short	278
	.short	348
	.short	76
	.short	450
	.global	EK
	.bss
	.align	2
	.type	EK, %object
	.size	EK, 200
EK:
	.space	200
	.global	DK
	.align	2
	.type	DK, %object
	.size	DK, 200
DK:
	.space	200
	.global	key
	.data
	.align	2
	.type	key, %object
	.size	key, 16
key:
	.ascii	"\021\177\336n3\270\377\314\315f\253\373\317\213T\363"
	.global	in
	.align	2
	.type	in, %object
	.size	in, 16
in:
	.ascii	"4\364\335\276\373\307\037-=\370\257\355.\3378\217"
	.global	out
	.bss
	.align	2
	.type	out, %object
	.size	out, 16
out:
	.space	16
	.comm	input,2,2
	.comm	key7,2,2
	.comm	key9,2,2
	.comm	D9,2,2
	.comm	D7,2,2
	.comm	Result,2,2
	.text
	.align	2
	.global	FI
	.syntax unified
	.arm
	.fpu softvfp
	.type	FI, %function
FI:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L2
	ldrh	r3, [r3]
	lsr	r3, r3, #7
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+4
	strh	r3, [r2]	@ movhi
	ldr	r3, .L2
	ldrh	r3, [r3]
	and	r3, r3, #127
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+8
	strh	r3, [r2]	@ movhi
	ldr	r3, .L2+4
	ldrh	r3, [r3]
	ldr	r2, .L2+12
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r2, [r3]
	ldr	r3, .L2+8
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+4
	strh	r3, [r2]	@ movhi
	ldr	r3, .L2+8
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L2+16
	ldrb	r3, [r3, r2]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L2+20
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L2+4
	ldrh	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #127
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+8
	strh	r3, [r2]	@ movhi
	ldr	r3, .L2+4
	ldrh	r2, [r3]
	ldr	r3, .L2+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+12
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r2, [r3]
	ldr	r3, .L2+8
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+4
	strh	r3, [r2]	@ movhi
	ldr	r3, .L2+8
	ldrh	r3, [r3]
	lsl	r3, r3, #9
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L2+4
	ldrh	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L2+28
	strh	r3, [r2]	@ movhi
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3:
	.align	2
.L2:
	.word	input
	.word	D9
	.word	D7
	.word	MISTY1_SBOX_S9
	.word	MISTY1_SBOX_S7
	.word	key7
	.word	key9
	.word	Result
	.size	FI, .-FI
	.align	2
	.global	encrypt
	.syntax unified
	.arm
	.fpu softvfp
	.type	encrypt, %function
encrypt:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L17
	mov	r2, #0
	str	r2, [r3]
	b	.L5
.L16:
	ldr	r3, .L17+4
	ldr	r2, .L17+8
	str	r2, [r3]
	ldr	r3, .L17+12
	mov	r2, #0
	str	r2, [r3]
	b	.L6
.L7:
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L17+4
	ldr	r1, [r3]
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L17+12
	str	r3, [r2]
.L6:
	ldr	r3, .L17+12
	ldr	r3, [r3]
	cmp	r3, #1
	bls	.L7
	ldr	r2, .L17+20
	ldr	r3, .L17+4
	str	r2, [r3]
	ldr	r3, .L17+12
	mov	r2, #0
	str	r2, [r3]
	b	.L8
.L9:
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L17+4
	ldr	r1, [r3]
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L17+12
	str	r3, [r2]
.L8:
	ldr	r3, .L17+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L9
	ldr	r2, .L17+28
	ldr	r3, .L17+4
	str	r2, [r3]
	ldr	r3, .L17+12
	mov	r2, #0
	str	r2, [r3]
	b	.L10
.L11:
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L17+4
	ldr	r1, [r3]
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L17+12
	str	r3, [r2]
.L10:
	ldr	r3, .L17+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L11
	ldr	r2, .L17+36
	ldr	r3, .L17+4
	str	r2, [r3]
	ldr	r3, .L17+12
	mov	r2, #0
	str	r2, [r3]
	b	.L12
.L13:
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L17+4
	ldr	r1, [r3]
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L17+12
	str	r3, [r2]
.L12:
	ldr	r3, .L17+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L13
	ldr	r3, .L17+12
	mov	r2, #0
	str	r2, [r3]
	b	.L14
.L15:
	ldr	r3, .L17+12
	ldr	r3, [r3]
	lsl	r3, r3, #3
	lsl	r3, r3, #1
	ldr	r2, .L17+44
	add	r3, r3, r2
	ldr	r2, .L17+48
	str	r3, [r2]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r2, [r3]
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #2
	ldrh	r2, [r3]
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #4
	ldrh	r2, [r3]
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #6
	ldrh	r2, [r3]
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #8
	ldrh	r2, [r3]
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #10]
	ldr	r2, .L17+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #12]
	ldr	r2, .L17+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L17+64
	ldrh	r2, [r3]
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L17+68
	str	r2, [r3]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #14
	ldrh	r2, [r3]
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #16]
	ldr	r2, .L17+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #18]
	ldr	r2, .L17+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L17+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L17+68
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L17+72
	str	r3, [r2]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #20
	ldrh	r2, [r3]
	ldr	r3, .L17+68
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #22]
	ldr	r2, .L17+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #24]
	ldr	r2, .L17+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L17+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L17+72
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L17+68
	str	r3, [r2]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #26
	ldrh	r2, [r3]
	ldr	r3, .L17+72
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+68
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #28
	ldrh	r2, [r3]
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #30]
	ldr	r2, .L17+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #32]
	ldr	r2, .L17+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L17+64
	ldrh	r2, [r3]
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L17+68
	str	r2, [r3]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #34
	ldrh	r2, [r3]
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #36]
	ldr	r2, .L17+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #38]
	ldr	r2, .L17+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L17+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L17+68
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L17+72
	str	r3, [r2]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #40
	ldrh	r2, [r3]
	ldr	r3, .L17+68
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #42]
	ldr	r2, .L17+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #44]
	ldr	r2, .L17+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L17+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L17+72
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L17+68
	str	r3, [r2]
	ldr	r3, .L17+48
	ldr	r3, [r3]
	add	r3, r3, #46
	ldrh	r2, [r3]
	ldr	r3, .L17+72
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+68
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+12
	ldr	r3, [r3]
	add	r3, r3, #3
	ldr	r2, .L17+12
	str	r3, [r2]
.L14:
	ldr	r3, .L17+12
	ldr	r3, [r3]
	cmp	r3, #12
	bne	.L15
	ldr	r3, .L17+44
	ldrh	r2, [r3, #192]
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+44
	ldrh	r2, [r3, #194]
	ldr	r3, .L17+24
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+44
	ldrh	r2, [r3, #196]
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+44
	ldrh	r2, [r3, #198]
	ldr	r3, .L17+40
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L17+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L17+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L17+76
	ldr	r2, .L17+80
	str	r2, [r3]
	ldr	r3, .L17+76
	ldr	r3, [r3]
	ldr	r2, .L17+32
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L17+76
	ldr	r3, [r3]
	add	r3, r3, #2
	ldr	r2, .L17+40
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L17+76
	ldr	r3, [r3]
	add	r3, r3, #4
	ldr	r2, .L17+16
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L17+76
	ldr	r3, [r3]
	add	r3, r3, #6
	ldr	r2, .L17+24
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L17
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L17
	str	r3, [r2]
.L5:
	ldr	r3, .L17
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L16
	nop
	nop
	pop	{fp, pc}
.L18:
	.align	2
.L17:
	.word	i.5162
	.word	p.5160
	.word	in
	.word	j.5163
	.word	B0.5156
	.word	in+2
	.word	B1.5157
	.word	in+4
	.word	B2.5158
	.word	in+6
	.word	B3.5159
	.word	EK
	.word	RK.5176
	.word	input
	.word	key7
	.word	key9
	.word	Result
	.word	T0.5177
	.word	T1.5178
	.word	p1.5161
	.word	out
	.size	encrypt, .-encrypt
	.align	2
	.global	decrypt
	.syntax unified
	.arm
	.fpu softvfp
	.type	decrypt, %function
decrypt:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L32
	mov	r2, #0
	str	r2, [r3]
	b	.L20
.L31:
	ldr	r2, .L32+4
	ldr	r3, .L32+8
	str	r2, [r3]
	ldr	r3, .L32+12
	mov	r2, #0
	str	r2, [r3]
	b	.L21
.L22:
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L32+8
	ldr	r1, [r3]
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L32
	str	r3, [r2]
.L21:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L22
	ldr	r2, .L32+20
	ldr	r3, .L32+8
	str	r2, [r3]
	ldr	r3, .L32+12
	mov	r2, #0
	str	r2, [r3]
	b	.L23
.L24:
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L32+8
	ldr	r1, [r3]
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L32+12
	str	r3, [r2]
.L23:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L24
	ldr	r3, .L32+8
	ldr	r2, .L32+28
	str	r2, [r3]
	ldr	r3, .L32+12
	mov	r2, #0
	str	r2, [r3]
	b	.L25
.L26:
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L32+8
	ldr	r1, [r3]
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L32+12
	str	r3, [r2]
.L25:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L26
	ldr	r2, .L32+36
	ldr	r3, .L32+8
	str	r2, [r3]
	ldr	r3, .L32+12
	mov	r2, #0
	str	r2, [r3]
	b	.L27
.L28:
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L32+8
	ldr	r1, [r3]
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L32+12
	str	r3, [r2]
.L27:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L28
	ldr	r3, .L32+12
	mov	r2, #0
	str	r2, [r3]
	b	.L29
.L30:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	lsl	r3, r3, #3
	lsl	r3, r3, #1
	ldr	r2, .L32+44
	add	r3, r3, r2
	ldr	r2, .L32+48
	str	r3, [r2]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r2, [r3]
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #2
	ldrh	r2, [r3]
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #4
	ldrh	r2, [r3]
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #6
	ldrh	r2, [r3]
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #8
	ldrh	r2, [r3]
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #10]
	ldr	r2, .L32+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #12]
	ldr	r2, .L32+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L32+64
	ldrh	r2, [r3]
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #14
	ldrh	r2, [r3]
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #16]
	ldr	r2, .L32+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #18]
	ldr	r2, .L32+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L32+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #20
	ldrh	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #22]
	ldr	r2, .L32+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #24]
	ldr	r2, .L32+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L32+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	eor	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #26
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+16
	strh	r3, [r2]	@ movhi
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #28
	ldrh	r2, [r3]
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #30]
	ldr	r2, .L32+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #32]
	ldr	r2, .L32+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L32+64
	ldrh	r2, [r3]
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #34
	ldrh	r2, [r3]
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #36]
	ldr	r2, .L32+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #38]
	ldr	r2, .L32+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L32+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #40
	ldrh	r2, [r3]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+52
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #42]
	ldr	r2, .L32+56
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+48
	ldr	r3, [r3]
	ldrh	r3, [r3, #44]
	ldr	r2, .L32+60
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L32+64
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	eor	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, .L32+48
	ldr	r3, [r3]
	add	r3, r3, #46
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+32
	strh	r3, [r2]	@ movhi
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+12
	ldr	r3, [r3]
	add	r3, r3, #3
	ldr	r2, .L32+12
	str	r3, [r2]
.L29:
	ldr	r3, .L32+12
	ldr	r3, [r3]
	cmp	r3, #12
	bne	.L30
	ldr	r3, .L32+44
	ldrh	r2, [r3, #192]
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+32
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+44
	ldrh	r2, [r3, #194]
	ldr	r3, .L32+32
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+40
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+40
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+44
	ldrh	r2, [r3, #196]
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+16
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+44
	ldrh	r2, [r3, #198]
	ldr	r3, .L32+16
	ldrh	r3, [r3]
	and	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L32+24
	ldrh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L32+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L32+68
	ldr	r2, .L32+72
	str	r2, [r3]
	ldr	r3, .L32+68
	ldr	r3, [r3]
	ldr	r2, .L32+16
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L32+68
	ldr	r3, [r3]
	add	r3, r3, #2
	ldr	r2, .L32+24
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L32+68
	ldr	r3, [r3]
	add	r3, r3, #4
	ldr	r2, .L32+32
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L32+68
	ldr	r3, [r3]
	add	r3, r3, #6
	ldr	r2, .L32+40
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, .L32
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L32
	str	r3, [r2]
.L20:
	ldr	r3, .L32
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L31
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L33:
	.align	2
.L32:
	.word	i.5187
	.word	in+4
	.word	p.5193
	.word	j.5188
	.word	B0.5189
	.word	in+6
	.word	B1.5190
	.word	in
	.word	B2.5191
	.word	in+2
	.word	B3.5192
	.word	DK
	.word	RK.5207
	.word	input
	.word	key7
	.word	key9
	.word	Result
	.word	p1.5194
	.word	out
	.size	decrypt, .-decrypt
	.align	2
	.global	key_schedule
	.syntax unified
	.arm
	.fpu softvfp
	.type	key_schedule, %function
key_schedule:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L43
	mov	r2, #0
	str	r2, [r3]
	b	.L35
.L38:
	ldr	r3, .L43+4
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L43+8
	add	r3, r3, r2
	ldr	r2, .L43+12
	str	r3, [r2]
	ldr	r3, .L43+16
	mov	r2, #0
	str	r2, [r3]
	b	.L36
.L37:
	ldr	r3, .L43+4
	ldrh	r3, [r3]
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L43+12
	ldr	r1, [r3]
	ldr	r3, .L43+16
	ldr	r3, [r3]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L43+4
	strh	r3, [r2]	@ movhi
	ldr	r3, .L43+16
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L43+16
	str	r3, [r2]
.L36:
	ldr	r3, .L43+16
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L37
	ldr	r3, .L43
	ldr	r3, [r3]
	ldr	r2, .L43+4
	ldrh	r2, [r2]
	ldr	r1, .L43+20
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L43
	str	r3, [r2]
.L35:
	ldr	r3, .L43
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L38
	ldr	r3, .L43
	mov	r2, #0
	str	r2, [r3]
	b	.L39
.L40:
	ldr	r3, .L43
	ldr	r3, [r3]
	ldr	r2, .L43+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	ldr	r2, .L43+24
	strh	r3, [r2]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #1
	and	r3, r3, #7
	ldr	r2, .L43+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	lsr	r3, r3, #9
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L43+28
	strh	r3, [r2]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #1
	and	r3, r3, #7
	ldr	r2, .L43+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L43+32
	strh	r3, [r2]	@ movhi
	bl	FI
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #8
	ldr	r2, .L43+36
	ldrh	r2, [r2]
	ldr	r1, .L43+20
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #8
	ldr	r2, .L43+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r2, [r3]
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #16
	lsr	r2, r2, #9
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, .L43+20
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #8
	ldr	r2, .L43+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	ldr	r2, .L43
	ldr	r2, [r2]
	add	r1, r2, #24
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r0, .L43+20
	lsl	r3, r1, #1
	add	r3, r0, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L43
	str	r3, [r2]
.L39:
	ldr	r3, .L43
	ldr	r3, [r3]
	cmp	r3, #8
	bne	.L40
	ldr	r3, .L43
	mov	r2, #0
	str	r2, [r3]
	b	.L41
.L42:
	ldr	r3, .L43
	ldr	r3, [r3]
	ldr	r2, .L43+40
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L43
	ldr	r3, [r3]
	ldr	r1, .L43+20
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrh	r2, [r2]
	ldr	r1, .L43+44
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	ldr	r2, .L43+48
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L43
	ldr	r3, [r3]
	ldr	r1, .L43+20
	lsl	r2, r2, #1
	add	r2, r1, r2
	ldrh	r2, [r2]
	ldr	r1, .L43+52
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, .L43
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L43
	str	r3, [r2]
.L41:
	ldr	r3, .L43
	ldr	r3, [r3]
	cmp	r3, #100
	bne	.L42
	nop
	nop
	pop	{fp, pc}
.L44:
	.align	2
.L43:
	.word	i.5218
	.word	tmp.5222
	.word	key
	.word	p.5220
	.word	j.5219
	.word	KS.5221
	.word	input
	.word	key7
	.word	key9
	.word	Result
	.word	EK_ORDER.5232
	.word	EK
	.word	DK_ORDER.5233
	.word	DK
	.size	key_schedule, .-key_schedule
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	key_schedule
	bl	encrypt
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
	.size	main, .-main
	.local	i.5162
	.comm	i.5162,4,4
	.local	p.5160
	.comm	p.5160,4,4
	.local	j.5163
	.comm	j.5163,4,4
	.local	B0.5156
	.comm	B0.5156,2,2
	.local	B1.5157
	.comm	B1.5157,2,2
	.local	B2.5158
	.comm	B2.5158,2,2
	.local	B3.5159
	.comm	B3.5159,2,2
	.local	RK.5176
	.comm	RK.5176,4,4
	.local	T0.5177
	.comm	T0.5177,4,4
	.local	T1.5178
	.comm	T1.5178,4,4
	.local	p1.5161
	.comm	p1.5161,4,4
	.local	i.5187
	.comm	i.5187,4,4
	.local	p.5193
	.comm	p.5193,4,4
	.local	j.5188
	.comm	j.5188,4,4
	.local	B0.5189
	.comm	B0.5189,2,2
	.local	B1.5190
	.comm	B1.5190,2,2
	.local	B2.5191
	.comm	B2.5191,2,2
	.local	B3.5192
	.comm	B3.5192,2,2
	.local	RK.5207
	.comm	RK.5207,4,4
	.local	p1.5194
	.comm	p1.5194,4,4
	.local	i.5218
	.comm	i.5218,4,4
	.local	tmp.5222
	.comm	tmp.5222,2,2
	.local	p.5220
	.comm	p.5220,4,4
	.local	j.5219
	.comm	j.5219,4,4
	.local	KS.5221
	.comm	KS.5221,64,4
	.section	.rodata
	.align	2
	.type	EK_ORDER.5232, %object
	.size	EK_ORDER.5232, 100
EK_ORDER.5232:
	.ascii	"\000\016\012\004\000\025\035\002\021\031\007\023\033"
	.ascii	"\004\001\026\036\003\022\032\000\024\034\005\001\017"
	.ascii	"\013\005\002\027\037\004\023\033\001\025\035\006\003"
	.ascii	"\020\030\005\024\034\002\026\036\007\002\010\014\006"
	.ascii	"\004\021\031\006\025\035\003\027\037\000\005\022\032"
	.ascii	"\007\026\036\004\020\030\001\003\011\015\007\006\023"
	.ascii	"\033\000\027\037\005\021\031\002\007\024\034\001\020"
	.ascii	"\030\006\022\032\003\004\012\016\000"
	.align	2
	.type	DK_ORDER.5233, %object
	.size	DK_ORDER.5233, 100
DK_ORDER.5233:
	.ascii	"\000\016\012\004\007\024\034\001\020\030\006\022\032"
	.ascii	"\003\006\023\033\000\027\037\005\021\031\002\007\015"
	.ascii	"\011\003\005\022\032\007\026\036\004\020\030\001\004"
	.ascii	"\021\031\006\025\035\003\027\037\000\006\014\010\002"
	.ascii	"\003\020\030\005\024\034\002\026\036\007\002\027\037"
	.ascii	"\004\023\033\001\025\035\006\005\013\017\001\001\026"
	.ascii	"\036\003\022\032\000\024\034\005\000\025\035\002\021"
	.ascii	"\031\007\023\033\004\004\012\016\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
