	.text
	.section	.text.f883b,"ax",@progbits
	.hidden	f883b
	.globl	f883b
	.type	f883b,@function
f883b:                                  # @f883b
	.param  	i32, i32, i32, i32, i32
	.local  	i32, i32
# BB#0:                                 # %entry
	i32.const	$6=, 0
.LBB0_1:                                # %for.body
                                        # =>This Inner Loop Header: Depth=1
	loop    	                # label0:
	i32.add 	$push12=, $0, $6
	i32.load16_s	$push29=, 0($1)
	tee_local	$push28=, $5=, $pop29
	i32.const	$push27=, 1
	i32.const	$push26=, 1
	i32.lt_s	$push0=, $5, $pop26
	i32.select	$push1=, $pop28, $pop27, $pop0
	i32.load	$push2=, 0($2)
	i32.const	$push25=, 31
	i32.and 	$push3=, $pop2, $pop25
	i32.shr_s	$push4=, $pop1, $pop3
	i32.const	$push24=, 1
	i32.xor 	$push5=, $pop4, $pop24
	i32.const	$push23=, 32
	i32.add 	$push6=, $pop5, $pop23
	i32.const	$push22=, 7
	i32.shr_u	$push7=, $pop6, $pop22
	i32.const	$push21=, 251
	i32.or  	$push8=, $pop7, $pop21
	i64.extend_u/i32	$push9=, $pop8
	i64.load	$push10=, 0($3)
	i64.and 	$push11=, $pop9, $pop10
	i64.store8	0($pop12), $pop11
	i32.const	$push20=, 8
	i32.add 	$3=, $3, $pop20
	i32.const	$push19=, 4
	i32.add 	$2=, $2, $pop19
	i32.const	$push18=, 2
	i32.add 	$1=, $1, $pop18
	i32.const	$push17=, 1
	i32.add 	$push16=, $6, $pop17
	tee_local	$push15=, $6=, $pop16
	i32.const	$push14=, 96
	i32.ne  	$push13=, $pop15, $pop14
	br_if   	0, $pop13       # 0: up to label0
# BB#2:                                 # %for.end
	end_loop
                                        # fallthrough-return
	.endfunc
.Lfunc_end0:
	.size	f883b, .Lfunc_end0-f883b

	.section	.text.main,"ax",@progbits
	.hidden	main
	.globl	main
	.type	main,@function
main:                                   # @main
	.result 	i32
	.local  	i32, i32, i32, i32, i32
# BB#0:                                 # %entry
	i32.const	$4=, 0
	i32.const	$3=, arg1
	i32.const	$2=, arg2
	i32.const	$1=, arg3
.LBB1_1:                                # %for.body
                                        # =>This Inner Loop Header: Depth=1
	loop    	                # label1:
	i32.const	$push34=, arg4
	i32.add 	$push0=, $4, $pop34
	i32.store8	0($pop0), $4
	i32.const	$push33=, 255
	i32.and 	$push32=, $4, $pop33
	tee_local	$push31=, $0=, $pop32
	i32.store	0($2), $pop31
	i32.store16	0($3), $0
	i64.extend_u/i32	$push1=, $4
	i64.const	$push30=, 255
	i64.and 	$push2=, $pop1, $pop30
	i64.store	0($1), $pop2
	i32.const	$push29=, 8
	i32.add 	$1=, $1, $pop29
	i32.const	$push28=, 4
	i32.add 	$2=, $2, $pop28
	i32.const	$push27=, 2
	i32.add 	$3=, $3, $pop27
	i32.const	$push26=, 1
	i32.add 	$push25=, $4, $pop26
	tee_local	$push24=, $4=, $pop25
	i32.const	$push23=, 96
	i32.ne  	$push3=, $pop24, $pop23
	br_if   	0, $pop3        # 0: up to label1
# BB#2:                                 # %for.body.i.preheader
	end_loop
	i32.const	$4=, result
	i32.const	$3=, arg3
	i32.const	$2=, arg2
	i32.const	$1=, -192
.LBB1_3:                                # %for.body.i
                                        # =>This Inner Loop Header: Depth=1
	loop    	                # label2:
	i32.const	$push50=, arg1+192
	i32.add 	$push4=, $1, $pop50
	i32.load16_s	$push49=, 0($pop4)
	tee_local	$push48=, $0=, $pop49
	i32.const	$push47=, 1
	i32.const	$push46=, 1
	i32.lt_s	$push5=, $0, $pop46
	i32.select	$push6=, $pop48, $pop47, $pop5
	i32.load	$push7=, 0($2)
	i32.const	$push45=, 31
	i32.and 	$push8=, $pop7, $pop45
	i32.shr_s	$push9=, $pop6, $pop8
	i32.const	$push44=, 1
	i32.xor 	$push10=, $pop9, $pop44
	i32.const	$push43=, 32
	i32.add 	$push11=, $pop10, $pop43
	i32.const	$push42=, 7
	i32.shr_u	$push12=, $pop11, $pop42
	i32.const	$push41=, 251
	i32.or  	$push13=, $pop12, $pop41
	i64.extend_u/i32	$push14=, $pop13
	i64.load	$push15=, 0($3)
	i64.and 	$push16=, $pop14, $pop15
	i64.store8	0($4), $pop16
	i32.const	$push40=, 4
	i32.add 	$2=, $2, $pop40
	i32.const	$push39=, 8
	i32.add 	$3=, $3, $pop39
	i32.const	$push38=, 1
	i32.add 	$4=, $4, $pop38
	i32.const	$push37=, 2
	i32.add 	$push36=, $1, $pop37
	tee_local	$push35=, $1=, $pop36
	br_if   	0, $pop35       # 0: up to label2
# BB#4:                                 # %for.body10.preheader
	end_loop
	i32.const	$4=, 0
	i32.const	$3=, .Lmain.correct
.LBB1_5:                                # %for.body10
                                        # =>This Inner Loop Header: Depth=1
	block   	
	loop    	                # label4:
	i32.const	$push51=, result
	i32.add 	$push17=, $4, $pop51
	i32.load8_s	$push18=, 0($pop17)
	i32.load	$push19=, 0($3)
	i32.ne  	$push20=, $pop18, $pop19
	br_if   	1, $pop20       # 1: down to label3
# BB#6:                                 # %for.cond7
                                        #   in Loop: Header=BB1_5 Depth=1
	i32.const	$push56=, 4
	i32.add 	$3=, $3, $pop56
	i32.const	$push55=, 1
	i32.add 	$push54=, $4, $pop55
	tee_local	$push53=, $4=, $pop54
	i32.const	$push52=, 95
	i32.le_s	$push21=, $pop53, $pop52
	br_if   	0, $pop21       # 0: up to label4
# BB#7:                                 # %for.end18
	end_loop
	i32.const	$push22=, 0
	return  	$pop22
.LBB1_8:                                # %if.then
	end_block                       # label3:
	call    	abort@FUNCTION
	unreachable
	.endfunc
.Lfunc_end1:
	.size	main, .Lfunc_end1-main

	.type	.Lmain.correct,@object  # @main.correct
	.section	.rodata..Lmain.correct,"a",@progbits
	.p2align	4
.Lmain.correct:
	.int32	0                       # 0x0
	.int32	1                       # 0x1
	.int32	2                       # 0x2
	.int32	3                       # 0x3
	.int32	0                       # 0x0
	.int32	1                       # 0x1
	.int32	2                       # 0x2
	.int32	3                       # 0x3
	.int32	8                       # 0x8
	.int32	9                       # 0x9
	.int32	10                      # 0xa
	.int32	11                      # 0xb
	.int32	8                       # 0x8
	.int32	9                       # 0x9
	.int32	10                      # 0xa
	.int32	11                      # 0xb
	.int32	16                      # 0x10
	.int32	17                      # 0x11
	.int32	18                      # 0x12
	.int32	19                      # 0x13
	.int32	16                      # 0x10
	.int32	17                      # 0x11
	.int32	18                      # 0x12
	.int32	19                      # 0x13
	.int32	24                      # 0x18
	.int32	25                      # 0x19
	.int32	26                      # 0x1a
	.int32	27                      # 0x1b
	.int32	24                      # 0x18
	.int32	25                      # 0x19
	.int32	26                      # 0x1a
	.int32	27                      # 0x1b
	.int32	32                      # 0x20
	.int32	33                      # 0x21
	.int32	34                      # 0x22
	.int32	35                      # 0x23
	.int32	32                      # 0x20
	.int32	33                      # 0x21
	.int32	34                      # 0x22
	.int32	35                      # 0x23
	.int32	40                      # 0x28
	.int32	41                      # 0x29
	.int32	42                      # 0x2a
	.int32	43                      # 0x2b
	.int32	40                      # 0x28
	.int32	41                      # 0x29
	.int32	42                      # 0x2a
	.int32	43                      # 0x2b
	.int32	48                      # 0x30
	.int32	49                      # 0x31
	.int32	50                      # 0x32
	.int32	51                      # 0x33
	.int32	48                      # 0x30
	.int32	49                      # 0x31
	.int32	50                      # 0x32
	.int32	51                      # 0x33
	.int32	56                      # 0x38
	.int32	57                      # 0x39
	.int32	58                      # 0x3a
	.int32	59                      # 0x3b
	.int32	56                      # 0x38
	.int32	57                      # 0x39
	.int32	58                      # 0x3a
	.int32	59                      # 0x3b
	.int32	64                      # 0x40
	.int32	65                      # 0x41
	.int32	66                      # 0x42
	.int32	67                      # 0x43
	.int32	64                      # 0x40
	.int32	65                      # 0x41
	.int32	66                      # 0x42
	.int32	67                      # 0x43
	.int32	72                      # 0x48
	.int32	73                      # 0x49
	.int32	74                      # 0x4a
	.int32	75                      # 0x4b
	.int32	72                      # 0x48
	.int32	73                      # 0x49
	.int32	74                      # 0x4a
	.int32	75                      # 0x4b
	.int32	80                      # 0x50
	.int32	81                      # 0x51
	.int32	82                      # 0x52
	.int32	83                      # 0x53
	.int32	80                      # 0x50
	.int32	81                      # 0x51
	.int32	82                      # 0x52
	.int32	83                      # 0x53
	.int32	88                      # 0x58
	.int32	89                      # 0x59
	.int32	90                      # 0x5a
	.int32	91                      # 0x5b
	.int32	88                      # 0x58
	.int32	89                      # 0x59
	.int32	90                      # 0x5a
	.int32	91                      # 0x5b
	.size	.Lmain.correct, 384

	.hidden	arg4                    # @arg4
	.type	arg4,@object
	.section	.bss.arg4,"aw",@nobits
	.globl	arg4
	.p2align	4
arg4:
	.skip	96
	.size	arg4, 96

	.hidden	arg1                    # @arg1
	.type	arg1,@object
	.section	.bss.arg1,"aw",@nobits
	.globl	arg1
	.p2align	4
arg1:
	.skip	192
	.size	arg1, 192

	.hidden	arg2                    # @arg2
	.type	arg2,@object
	.section	.bss.arg2,"aw",@nobits
	.globl	arg2
	.p2align	4
arg2:
	.skip	384
	.size	arg2, 384

	.hidden	arg3                    # @arg3
	.type	arg3,@object
	.section	.bss.arg3,"aw",@nobits
	.globl	arg3
	.p2align	4
arg3:
	.skip	768
	.size	arg3, 768

	.hidden	result                  # @result
	.type	result,@object
	.section	.bss.result,"aw",@nobits
	.globl	result
	.p2align	4
result:
	.skip	96
	.size	result, 96


	.functype	abort, void
