	.file	"167625.c"
	.intel_syntax noprefix
	.text
	.globl	aes_sbox
	.section	.rodata
	.align 32
	.type	aes_sbox, @object
	.size	aes_sbox, 256
aes_sbox:
	.ascii	"c|w{\362ko\3050\001g+\376\327\253v"
	.ascii	"\312\202\311}\372YG\360\255\324\242\257\234\244r\300"
	.ascii	"\267\375\223&6?\367\3144\245\345\361q\3301\025"
	.ascii	"\004\307#\303\030\226\005\232\007\022\200\342\353'\262u"
	.ascii	"\t\203,\032\033nZ\240R;\326\263)\343/\204"
	.string	"S\321"
	.ascii	"\355 \374\261[j\313\2769JLX\317"
	.ascii	"\320\357\252\373CM3\205E\371\002\177P<\237\250"
	.ascii	"Q\243@\217\222\2358\365\274\266\332!\020\377\363\322"
	.ascii	"\315\f\023\354_\227D\027\304\247~=d]\031s"
	.ascii	"`\201O\334\"*\220\210F\356\270\024\336^\013\333"
	.ascii	"\3402:\nI\006$\\\302\323\254b\221\225\344y"
	.ascii	"\347\3107m\215\325N\251lV\364\352ez\256\b"
	.ascii	"\272x%.\034\246\264\306\350\335t\037K\275\213\212"
	.ascii	"p>\265fH\003\366\016a5W\271\206\301\035\236"
	.ascii	"\341\370\230\021i\331\216\224\233\036\207\351\316U(\337"
	.ascii	"\214\241\211\r\277\346BhA\231-\017\260T\273\026"
	.globl	aes_invsbox
	.align 32
	.type	aes_invsbox, @object
	.size	aes_invsbox, 256
aes_invsbox:
	.ascii	"R\tj\32506\2458\277@\243\236\201\363\327\373"
	.ascii	"|\3439\202\233/\377\2074\216CD\304\336\351\313"
	.ascii	"T{\2242\246\302#=\356L\225\013B\372\303N"
	.ascii	"\b.\241f(\331$\262v[\242Im\213\321%"
	.ascii	"r\370\366d\206h\230\026\324\244\\\314]e\266\222"
	.ascii	"lpHP\375\355\271\332^\025FW\247\215\235\204"
	.string	"\220\330\253"
	.ascii	"\214\274\323\n\367\344X\005\270\263E\006"
	.ascii	"\320,\036\217\312?\017\002\301\257\275\003\001\023\212k"
	.ascii	":\221\021AOg\334\352\227\362\317\316\360\264\346s"
	.ascii	"\226\254t\"\347\2555\205\342\3717\350\034u\337n"
	.ascii	"G\361\032q\035)\305\211o\267b\016\252\030\276\033"
	.ascii	"\374V>K\306\322y \232\333\300\376x\315Z\364"
	.ascii	"\037\335\2503\210\007\3071\261\022\020Y'\200\354_"
	.ascii	"`Q\177\251\031\265J\r-\345z\237\223\311\234\357"
	.ascii	"\240\340;M\256*\365\260\310\353\273<\203S\231a"
	.ascii	"\027+\004~\272w\326&\341i\024cU!\f}"
	.globl	gf_mul
	.data
	.align 32
	.type	gf_mul, @object
	.size	gf_mul, 1536
gf_mul:
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.ascii	"\002\003\t\013\r\016"
	.ascii	"\004\006\022\026\032\034"
	.ascii	"\006\005\033\035\027\022"
	.ascii	"\b\f$,48"
	.ascii	"\n\017-'96"
	.ascii	"\f\n6:.$"
	.ascii	"\016\t?1#*"
	.ascii	"\020\030HXhp"
	.ascii	"\022\033ASe~"
	.ascii	"\024\036ZNrl"
	.ascii	"\026\035SE\177b"
	.ascii	"\030\024lt\\H"
	.ascii	"\032\027e\177QF"
	.ascii	"\034\022~bFT"
	.ascii	"\036\021wiKZ"
	.ascii	" 0\220\260\320\340"
	.ascii	"\"3\231\273\335\356"
	.ascii	"$6\202\246\312\374"
	.ascii	"&5\213\255\307\362"
	.ascii	"(<\264\234\344\330"
	.ascii	"*?\275\227\351\326"
	.ascii	",:\246\212\376\304"
	.ascii	".9\257\201\363\312"
	.ascii	"0(\330\350\270\220"
	.ascii	"2+\321\343\265\236"
	.ascii	"4.\312\376\242\214"
	.ascii	"6-\303\365\257\202"
	.ascii	"8$\374\304\214\250"
	.ascii	":'\365\317\201\246"
	.ascii	"<\"\356\322\226\264"
	.ascii	">!\347\331\233\272"
	.ascii	"@`;{\273\333"
	.ascii	"Bc2p\266\325"
	.ascii	"Df)m\241\307"
	.ascii	"Fe f\254\311"
	.ascii	"Hl\037W\217\343"
	.ascii	"Jo\026\\\202\355"
	.ascii	"Lj\rA\225\377"
	.ascii	"Ni\004J\230\361"
	.ascii	"Pxs#\323\253"
	.ascii	"R{z(\336\245"
	.ascii	"T~a5\311\267"
	.ascii	"V}h>\304\271"
	.ascii	"XtW\017\347\223"
	.ascii	"Zw^\004\352\235"
	.ascii	"\\rE\031\375\217"
	.ascii	"^qL\022\360\201"
	.ascii	"`P\253\313k;"
	.ascii	"bS\242\300f5"
	.ascii	"dV\271\335q'"
	.ascii	"fU\260\326|)"
	.ascii	"h\\\217\347_\003"
	.ascii	"j_\206\354R\r"
	.ascii	"lZ\235\361E\037"
	.ascii	"nY\224\372H\021"
	.ascii	"pH\343\223\003K"
	.ascii	"rK\352\230\016E"
	.ascii	"tN\361\205\031W"
	.ascii	"vM\370\216\024Y"
	.ascii	"xD\307\2777s"
	.ascii	"zG\316\264:}"
	.ascii	"|B\325\251-o"
	.ascii	"~A\334\242 a"
	.ascii	"\200\300v\366m\255"
	.ascii	"\202\303\177\375`\243"
	.ascii	"\204\306d\340w\261"
	.ascii	"\206\305m\353z\277"
	.ascii	"\210\314R\332Y\225"
	.ascii	"\212\317[\321T\233"
	.ascii	"\214\312@\314C\211"
	.ascii	"\216\311I\307N\207"
	.ascii	"\220\330>\256\005\335"
	.ascii	"\222\3337\245\b\323"
	.ascii	"\224\336,\270\037\301"
	.ascii	"\226\335%\263\022\317"
	.ascii	"\230\324\032\2021\345"
	.ascii	"\232\327\023\211<\353"
	.ascii	"\234\322\b\224+\371"
	.ascii	"\236\321\001\237&\367"
	.ascii	"\240\360\346F\275M"
	.ascii	"\242\363\357M\260C"
	.ascii	"\244\366\364P\247Q"
	.ascii	"\246\365\375[\252_"
	.ascii	"\250\374\302j\211u"
	.ascii	"\252\377\313a\204{"
	.ascii	"\254\372\320|\223i"
	.ascii	"\256\371\331w\236g"
	.ascii	"\260\350\256\036\325="
	.ascii	"\262\353\247\025\3303"
	.ascii	"\264\356\274\b\317!"
	.ascii	"\266\355\265\003\302/"
	.ascii	"\270\344\2122\341\005"
	.ascii	"\272\347\2039\354\013"
	.ascii	"\274\342\230$\373\031"
	.ascii	"\276\341\221/\366\027"
	.ascii	"\300\240M\215\326v"
	.ascii	"\302\243D\206\333x"
	.ascii	"\304\246_\233\314j"
	.ascii	"\306\245V\220\301d"
	.ascii	"\310\254i\241\342N"
	.ascii	"\312\257`\252\357@"
	.ascii	"\314\252{\267\370R"
	.ascii	"\316\251r\274\365\\"
	.ascii	"\320\270\005\325\276\006"
	.ascii	"\322\273\f\336\263\b"
	.ascii	"\324\276\027\303\244\032"
	.ascii	"\326\275\036\310\251\024"
	.ascii	"\330\264!\371\212>"
	.ascii	"\332\267(\362\2070"
	.ascii	"\334\2623\357\220\""
	.ascii	"\336\261:\344\235,"
	.ascii	"\340\220\335=\006\226"
	.ascii	"\342\223\3246\013\230"
	.ascii	"\344\226\317+\034\212"
	.ascii	"\346\225\306 \021\204"
	.ascii	"\350\234\371\0212\256"
	.ascii	"\352\237\360\032?\240"
	.ascii	"\354\232\353\007(\262"
	.ascii	"\356\231\342\f%\274"
	.ascii	"\360\210\225en\346"
	.ascii	"\362\213\234nc\350"
	.ascii	"\364\216\207st\372"
	.ascii	"\366\215\216xy\364"
	.ascii	"\370\204\261IZ\336"
	.ascii	"\372\207\270BW\320"
	.ascii	"\374\202\243_@\302"
	.ascii	"\376\201\252TM\314"
	.ascii	"\033\233\354\367\332A"
	.ascii	"\031\230\345\374\327O"
	.ascii	"\037\235\376\341\300]"
	.ascii	"\035\236\367\352\315S"
	.ascii	"\023\227\310\333\356y"
	.ascii	"\021\224\301\320\343w"
	.ascii	"\027\221\332\315\364e"
	.ascii	"\025\222\323\306\371k"
	.ascii	"\013\203\244\257\2621"
	.ascii	"\t\200\255\244\277?"
	.ascii	"\017\205\266\271\250-"
	.ascii	"\r\206\277\262\245#"
	.ascii	"\003\217\200\203\206\t"
	.ascii	"\001\214\211\210\213\007"
	.ascii	"\007\211\222\225\234\025"
	.ascii	"\005\212\233\236\221\033"
	.ascii	";\253|G\n\241"
	.ascii	"9\250uL\007\257"
	.ascii	"?\255nQ\020\275"
	.ascii	"=\256gZ\035\263"
	.ascii	"3\247Xk>\231"
	.ascii	"1\244Q`3\227"
	.ascii	"7\241J}$\205"
	.ascii	"5\242Cv)\213"
	.ascii	"+\2634\037b\321"
	.ascii	")\260=\024o\337"
	.ascii	"/\265&\tx\315"
	.ascii	"-\266/\002u\303"
	.ascii	"#\277\0203V\351"
	.ascii	"!\274\0318[\347"
	.ascii	"'\271\002%L\365"
	.ascii	"%\272\013.A\373"
	.ascii	"[\373\327\214a\232"
	.ascii	"Y\370\336\207l\224"
	.ascii	"_\375\305\232{\206"
	.ascii	"]\376\314\221v\210"
	.ascii	"S\367\363\240U\242"
	.ascii	"Q\364\372\253X\254"
	.ascii	"W\361\341\266O\276"
	.ascii	"U\362\350\275B\260"
	.ascii	"K\343\237\324\t\352"
	.ascii	"I\340\226\337\004\344"
	.ascii	"O\345\215\302\023\366"
	.ascii	"M\346\204\311\036\370"
	.ascii	"C\357\273\370=\322"
	.ascii	"A\354\262\3630\334"
	.ascii	"G\351\251\356'\316"
	.ascii	"E\352\240\345*\300"
	.ascii	"{\313G<\261z"
	.ascii	"y\310N7\274t"
	.ascii	"\177\315U*\253f"
	.ascii	"}\316\\!\246h"
	.ascii	"s\307c\020\205B"
	.ascii	"q\304j\033\210L"
	.ascii	"w\301q\006\237^"
	.ascii	"u\302x\r\222P"
	.ascii	"k\323\017d\331\n"
	.ascii	"i\320\006o\324\004"
	.ascii	"o\325\035r\303\026"
	.ascii	"m\326\024y\316\030"
	.ascii	"c\337+H\3552"
	.ascii	"a\334\"C\340<"
	.ascii	"g\3319^\367."
	.ascii	"e\3320U\372 "
	.ascii	"\233[\232\001\267\354"
	.ascii	"\231X\223\n\272\342"
	.ascii	"\237]\210\027\255\360"
	.ascii	"\235^\201\034\240\376"
	.ascii	"\223W\276-\203\324"
	.ascii	"\221T\267&\216\332"
	.ascii	"\227Q\254;\231\310"
	.ascii	"\225R\2450\224\306"
	.ascii	"\213C\322Y\337\234"
	.ascii	"\211@\333R\322\222"
	.ascii	"\217E\300O\305\200"
	.ascii	"\215F\311D\310\216"
	.ascii	"\203O\366u\353\244"
	.ascii	"\201L\377~\346\252"
	.ascii	"\207I\344c\361\270"
	.ascii	"\205J\355h\374\266"
	.ascii	"\273k\n\261g\f"
	.ascii	"\271h\003\272j\002"
	.ascii	"\277m\030\247}\020"
	.ascii	"\275n\021\254p\036"
	.ascii	"\263g.\235S4"
	.ascii	"\261d'\226^:"
	.ascii	"\267a<\213I("
	.ascii	"\265b5\200D&"
	.ascii	"\253sB\351\017|"
	.ascii	"\251pK\342\002r"
	.ascii	"\257uP\377\025`"
	.ascii	"\255vY\364\030n"
	.ascii	"\243\177f\305;D"
	.ascii	"\241|o\3166J"
	.ascii	"\247yt\323!X"
	.ascii	"\245z}\330,V"
	.ascii	"\333;\241z\f7"
	.ascii	"\3318\250q\0019"
	.ascii	"\337=\263l\026+"
	.ascii	"\335>\272g\033%"
	.ascii	"\3237\205V8\017"
	.ascii	"\3214\214]5\001"
	.ascii	"\3271\227@\"\023"
	.ascii	"\3252\236K/\035"
	.ascii	"\313#\351\"dG"
	.ascii	"\311 \340)iI"
	.ascii	"\317%\3734~["
	.ascii	"\315&\362?sU"
	.ascii	"\303/\315\016P\177"
	.ascii	"\301,\304\005]q"
	.ascii	"\307)\337\030Jc"
	.ascii	"\305*\326\023Gm"
	.ascii	"\373\0131\312\334\327"
	.ascii	"\371\b8\301\321\331"
	.ascii	"\377\r#\334\306\313"
	.ascii	"\375\016*\327\313\305"
	.ascii	"\363\007\025\346\350\357"
	.ascii	"\361\004\034\355\345\341"
	.ascii	"\367\001\007\360\362\363"
	.ascii	"\365\002\016\373\377\375"
	.ascii	"\353\023y\222\264\247"
	.ascii	"\351\020p\231\271\251"
	.ascii	"\357\025k\204\256\273"
	.ascii	"\355\026b\217\243\265"
	.ascii	"\343\037]\276\200\237"
	.ascii	"\341\034T\265\215\221"
	.ascii	"\347\031O\250\232\203"
	.ascii	"\345\032F\243\227\215"
	.text
	.globl	AddRoundKey
	.type	AddRoundKey, @function
AddRoundKey:
.LFB0:
	.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	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	shr	rax, 24
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	shr	rax, 16
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	shr	rax, 8
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -12[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	shr	rax, 24
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	shr	rax, 16
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	shr	rax, 8
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -12[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	shr	rax, 24
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	shr	rax, 16
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	shr	rax, 8
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 16
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -12[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	shr	rax, 24
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	shr	rax, 16
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	shr	rax, 8
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -12[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L2
	call	__stack_chk_fail@PLT
.L2:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	AddRoundKey, .-AddRoundKey
	.globl	SubBytes
	.type	SubBytes, @function
SubBytes:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR 1[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR 2[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR 3[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR 1[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR 2[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR 3[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR 1[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR 2[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR 3[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	SubBytes, .-SubBytes
	.globl	InvSubBytes
	.type	InvSubBytes, @function
InvSubBytes:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_invsbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_invsbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_invsbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, aes_invsbox[rip]
	add	rax, rdx
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR 1[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR 2[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movzx	edx, BYTE PTR 3[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 4
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR 1[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR 2[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movzx	edx, BYTE PTR 3[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 8
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR [rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 1[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR 1[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 2[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR 2[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -8[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 3[rax]
	shr	al, 4
	movzx	eax, al
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movzx	edx, BYTE PTR 3[rdx]
	movzx	edx, dl
	mov	ecx, edx
	and	ecx, 15
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 12
	movsx	rcx, ecx
	cdqe
	sal	rax, 4
	add	rcx, rax
	lea	rax, aes_invsbox[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	InvSubBytes, .-InvSubBytes
	.globl	ShiftRows
	.type	ShiftRows, @function
ShiftRows:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 4
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 4
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 4
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 8
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 8
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 12
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 12
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 12
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR 1[rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	ShiftRows, .-ShiftRows
	.globl	InvShiftRows
	.type	InvShiftRows, @function
InvShiftRows:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 4
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 4
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 4
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 8
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 8
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 12
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 12
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	rdx, QWORD PTR -24[rbp]
	add	rdx, 12
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	mov	edx, DWORD PTR -4[rbp]
	mov	BYTE PTR 2[rax], dl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	InvShiftRows, .-InvShiftRows
	.globl	MixColumns
	.type	MixColumns, @function
MixColumns:
.LFB5:
	.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 fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR [rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 1[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR 2[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 2[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	xor	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -9[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -12[rbp]
	mov	BYTE PTR 3[rdx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 3[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -11[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	edx, BYTE PTR -10[rbp]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L8
	call	__stack_chk_fail@PLT
.L8:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	MixColumns, .-MixColumns
	.globl	InvMixColumns
	.type	InvMixColumns, @function
InvMixColumns:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 4[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR [rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 8[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR [rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR [rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR [rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 4[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 1[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 8[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 1[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 1[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 1[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 2[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 4[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 2[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 8[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 2[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 2[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 2[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -11[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -10[rbp], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 3[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 4[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 3[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 8[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 3[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	movzx	eax, BYTE PTR -12[rbp]
	movzx	eax, al
	mov	rdx, QWORD PTR -24[rbp]
	lea	rcx, 12[rdx]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	mov	BYTE PTR 3[rcx], al
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -11[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+4]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -10[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+2]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	movzx	ecx, BYTE PTR 3[rax]
	movzx	eax, BYTE PTR -9[rbp]
	movzx	eax, al
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, gf_mul[rip+5]
	movzx	edx, BYTE PTR [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	BYTE PTR 3[rax], dl
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L10
	call	__stack_chk_fail@PLT
.L10:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	InvMixColumns, .-InvMixColumns
	.globl	SubWord
	.type	SubWord, @function
SubWord:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 4
	and	eax, 15
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 15
	sal	rdx, 4
	add	rdx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 12
	and	eax, 15
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 8
	and	eax, 15
	sal	rdx, 4
	add	rdx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	add	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 20
	and	eax, 15
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 16
	and	eax, 15
	sal	rdx, 4
	add	rdx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 28
	and	eax, 15
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	shr	rax, 24
	and	eax, 15
	sal	rdx, 4
	add	rdx, rax
	lea	rax, aes_sbox[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	SubWord, .-SubWord
	.globl	KeyExpansion
	.type	KeyExpansion, @function
KeyExpansion:
.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, 192
	mov	QWORD PTR -168[rbp], rdi
	mov	QWORD PTR -176[rbp], rsi
	mov	DWORD PTR -180[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -140[rbp], 4
	mov	QWORD PTR -128[rbp], 16777216
	mov	QWORD PTR -120[rbp], 33554432
	mov	QWORD PTR -112[rbp], 67108864
	mov	QWORD PTR -104[rbp], 134217728
	mov	QWORD PTR -96[rbp], 268435456
	mov	QWORD PTR -88[rbp], 536870912
	mov	QWORD PTR -80[rbp], 1073741824
	mov	eax, 2147483648
	mov	QWORD PTR -72[rbp], rax
	mov	QWORD PTR -64[rbp], 452984832
	mov	QWORD PTR -56[rbp], 905969664
	mov	QWORD PTR -48[rbp], 1811939328
	mov	eax, 3623878656
	mov	QWORD PTR -40[rbp], rax
	mov	eax, 2868903936
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], 1291845632
	mov	eax, 2583691264
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -180[rbp], 256
	je	.L14
	cmp	DWORD PTR -180[rbp], 256
	jg	.L27
	cmp	DWORD PTR -180[rbp], 128
	je	.L16
	cmp	DWORD PTR -180[rbp], 192
	je	.L17
	jmp	.L27
.L16:
	mov	DWORD PTR -152[rbp], 10
	mov	DWORD PTR -148[rbp], 4
	jmp	.L18
.L17:
	mov	DWORD PTR -152[rbp], 12
	mov	DWORD PTR -148[rbp], 6
	jmp	.L18
.L14:
	mov	DWORD PTR -152[rbp], 14
	mov	DWORD PTR -148[rbp], 8
	nop
.L18:
	mov	DWORD PTR -144[rbp], 0
	jmp	.L20
.L21:
	mov	eax, DWORD PTR -144[rbp]
	sal	eax, 2
	movsx	rdx, eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	mov	edx, eax
	mov	eax, DWORD PTR -144[rbp]
	sal	eax, 2
	cdqe
	lea	rcx, 1[rax]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	or	edx, eax
	mov	eax, DWORD PTR -144[rbp]
	sal	eax, 2
	cdqe
	lea	rcx, 2[rax]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	eax, DWORD PTR -144[rbp]
	sal	eax, 2
	cdqe
	lea	rcx, 3[rax]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -176[rbp]
	add	rdx, rax
	movsx	rax, ecx
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -144[rbp], 1
.L20:
	mov	eax, DWORD PTR -144[rbp]
	cmp	eax, DWORD PTR -148[rbp]
	jl	.L21
	mov	eax, DWORD PTR -148[rbp]
	mov	DWORD PTR -144[rbp], eax
	jmp	.L22
.L25:
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR -144[rbp]
	cdq
	idiv	DWORD PTR -148[rbp]
	mov	eax, edx
	test	eax, eax
	jne	.L23
	mov	rax, QWORD PTR -136[rbp]
	sal	rax, 8
	mov	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	shr	rax, 24
	or	rax, rdx
	mov	rdi, rax
	call	SubWord
	mov	rcx, rax
	mov	eax, DWORD PTR -144[rbp]
	sub	eax, 1
	cdq
	idiv	DWORD PTR -148[rbp]
	cdqe
	mov	rax, QWORD PTR -128[rbp+rax*8]
	xor	rax, rcx
	mov	QWORD PTR -136[rbp], rax
	jmp	.L24
.L23:
	cmp	DWORD PTR -148[rbp], 6
	jle	.L24
	mov	eax, DWORD PTR -144[rbp]
	cdq
	idiv	DWORD PTR -148[rbp]
	mov	eax, edx
	cmp	eax, 4
	jne	.L24
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	SubWord
	mov	QWORD PTR -136[rbp], rax
.L24:
	mov	eax, DWORD PTR -144[rbp]
	sub	eax, DWORD PTR -148[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -144[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -176[rbp]
	add	rdx, rcx
	xor	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -144[rbp], 1
.L22:
	mov	eax, DWORD PTR -152[rbp]
	add	eax, 1
	imul	eax, DWORD PTR -140[rbp]
	cmp	DWORD PTR -144[rbp], eax
	jl	.L25
	jmp	.L13
.L27:
	nop
.L13:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L26
	call	__stack_chk_fail@PLT
.L26:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	KeyExpansion, .-KeyExpansion
	.globl	aes_decrypt
	.type	aes_decrypt, @function
aes_decrypt:
.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, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -60[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -32[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 1[rax]
	mov	BYTE PTR -28[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 2[rax]
	mov	BYTE PTR -24[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 3[rax]
	mov	BYTE PTR -20[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 4[rax]
	mov	BYTE PTR -31[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 5[rax]
	mov	BYTE PTR -27[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 6[rax]
	mov	BYTE PTR -23[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 7[rax]
	mov	BYTE PTR -19[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 8[rax]
	mov	BYTE PTR -30[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 9[rax]
	mov	BYTE PTR -26[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 10[rax]
	mov	BYTE PTR -22[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 11[rax]
	mov	BYTE PTR -18[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 12[rax]
	mov	BYTE PTR -29[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 13[rax]
	mov	BYTE PTR -25[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 14[rax]
	mov	BYTE PTR -21[rbp], al
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 15[rax]
	mov	BYTE PTR -17[rbp], al
	cmp	DWORD PTR -60[rbp], 128
	jle	.L29
	cmp	DWORD PTR -60[rbp], 192
	jle	.L30
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 448[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 416[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 384[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	jmp	.L31
.L30:
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 384[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
.L31:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 352[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 320[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	jmp	.L32
.L29:
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 320[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
.L32:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 288[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 256[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 224[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 192[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 160[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 128[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 96[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 64[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, 32[rax]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvMixColumns
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvShiftRows
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	InvSubBytes
	mov	rdx, QWORD PTR -56[rbp]
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	AddRoundKey
	movzx	edx, BYTE PTR -32[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 1[rax]
	movzx	eax, BYTE PTR -28[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 2[rax]
	movzx	eax, BYTE PTR -24[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 3[rax]
	movzx	eax, BYTE PTR -20[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 4[rax]
	movzx	eax, BYTE PTR -31[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 5[rax]
	movzx	eax, BYTE PTR -27[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 6[rax]
	movzx	eax, BYTE PTR -23[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 7[rax]
	movzx	eax, BYTE PTR -19[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -30[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 9[rax]
	movzx	eax, BYTE PTR -26[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 10[rax]
	movzx	eax, BYTE PTR -22[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 11[rax]
	movzx	eax, BYTE PTR -18[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 12[rax]
	movzx	eax, BYTE PTR -29[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 13[rax]
	movzx	eax, BYTE PTR -25[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 14[rax]
	movzx	eax, BYTE PTR -21[rbp]
	mov	BYTE PTR [rdx], al
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 15[rax]
	movzx	eax, BYTE PTR -17[rbp]
	mov	BYTE PTR [rdx], al
	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	aes_decrypt, .-aes_decrypt
	.section	.rodata
.LC0:
	.string	"\r"
	.text
	.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
	sub	rsp, 608
	mov	DWORD PTR -596[rbp], edi
	mov	QWORD PTR -608[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movabs	rax, 8603657889541918976
	movabs	rdx, -4822678189205112
	mov	QWORD PTR -80[rbp], rax
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], rdx
	mov	DWORD PTR -580[rbp], 0
	mov	DWORD PTR -572[rbp], 93
	mov	DWORD PTR -580[rbp], 0
	jmp	.L35
.L40:
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -580[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -576[rbp], eax
	cmp	DWORD PTR -576[rbp], 59
	jg	.L36
	sub	DWORD PTR -576[rbp], 48
	jmp	.L37
.L36:
	sub	DWORD PTR -576[rbp], 87
.L37:
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 8
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -580[rbp]
	cdqe
	add	rax, 1
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -572[rbp], eax
	cmp	DWORD PTR -572[rbp], 59
	jg	.L38
	sub	DWORD PTR -572[rbp], 48
	jmp	.L39
.L38:
	sub	DWORD PTR -572[rbp], 87
.L39:
	mov	eax, DWORD PTR -576[rbp]
	sal	eax, 4
	mov	edx, eax
	mov	eax, DWORD PTR -572[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -580[rbp]
	mov	ecx, eax
	shr	ecx, 31
	add	eax, ecx
	sar	eax
	cdqe
	mov	BYTE PTR -64[rbp+rax], dl
	add	DWORD PTR -580[rbp], 2
.L35:
	cmp	DWORD PTR -580[rbp], 31
	jle	.L40
	lea	rcx, -560[rbp]
	lea	rax, -48[rbp]
	mov	edx, 256
	mov	rsi, rcx
	mov	rdi, rax
	call	KeyExpansion
	lea	rdx, -560[rbp]
	lea	rsi, -80[rbp]
	lea	rax, -64[rbp]
	mov	ecx, 256
	mov	rdi, rax
	call	aes_decrypt
	mov	QWORD PTR -568[rbp], 0
	jmp	.L41
.L42:
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -568[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	add	QWORD PTR -568[rbp], 1
.L41:
	cmp	QWORD PTR -568[rbp], 15
	jle	.L42
	lea	rdi, .LC0[rip]
	call	puts@PLT
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L44
	call	__stack_chk_fail@PLT
.L44:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"167625.c"
	.text
	.global	aes_sbox
	.section	.rodata
	.align	2
	.type	aes_sbox, %object
	.size	aes_sbox, 256
aes_sbox:
	.ascii	"c|w{\362ko\3050\001g+\376\327\253v"
	.ascii	"\312\202\311}\372YG\360\255\324\242\257\234\244r\300"
	.ascii	"\267\375\223&6?\367\3144\245\345\361q\3301\025"
	.ascii	"\004\307#\303\030\226\005\232\007\022\200\342\353'\262"
	.ascii	"u"
	.ascii	"\011\203,\032\033nZ\240R;\326\263)\343/\204"
	.ascii	"S\321\000\355 \374\261[j\313\2769JLX\317"
	.ascii	"\320\357\252\373CM3\205E\371\002\177P<\237\250"
	.ascii	"Q\243@\217\222\2358\365\274\266\332!\020\377\363\322"
	.ascii	"\315\014\023\354_\227D\027\304\247~=d]\031s"
	.ascii	"`\201O\334\"*\220\210F\356\270\024\336^\013\333"
	.ascii	"\3402:\012I\006$\\\302\323\254b\221\225\344y"
	.ascii	"\347\3107m\215\325N\251lV\364\352ez\256\010"
	.ascii	"\272x%.\034\246\264\306\350\335t\037K\275\213\212"
	.ascii	"p>\265fH\003\366\016a5W\271\206\301\035\236"
	.ascii	"\341\370\230\021i\331\216\224\233\036\207\351\316U("
	.ascii	"\337"
	.ascii	"\214\241\211\015\277\346BhA\231-\017\260T\273\026"
	.global	aes_invsbox
	.align	2
	.type	aes_invsbox, %object
	.size	aes_invsbox, 256
aes_invsbox:
	.ascii	"R\011j\32506\2458\277@\243\236\201\363\327\373"
	.ascii	"|\3439\202\233/\377\2074\216CD\304\336\351\313"
	.ascii	"T{\2242\246\302#=\356L\225\013B\372\303N"
	.ascii	"\010.\241f(\331$\262v[\242Im\213\321%"
	.ascii	"r\370\366d\206h\230\026\324\244\\\314]e\266\222"
	.ascii	"lpHP\375\355\271\332^\025FW\247\215\235\204"
	.ascii	"\220\330\253\000\214\274\323\012\367\344X\005\270\263"
	.ascii	"E\006"
	.ascii	"\320,\036\217\312?\017\002\301\257\275\003\001\023\212"
	.ascii	"k"
	.ascii	":\221\021AOg\334\352\227\362\317\316\360\264\346s"
	.ascii	"\226\254t\"\347\2555\205\342\3717\350\034u\337n"
	.ascii	"G\361\032q\035)\305\211o\267b\016\252\030\276\033"
	.ascii	"\374V>K\306\322y \232\333\300\376x\315Z\364"
	.ascii	"\037\335\2503\210\007\3071\261\022\020Y'\200\354_"
	.ascii	"`Q\177\251\031\265J\015-\345z\237\223\311\234\357"
	.ascii	"\240\340;M\256*\365\260\310\353\273<\203S\231a"
	.ascii	"\027+\004~\272w\326&\341i\024cU!\014}"
	.global	gf_mul
	.data
	.align	2
	.type	gf_mul, %object
	.size	gf_mul, 1536
gf_mul:
	.ascii	"\000\000\000\000\000\000"
	.ascii	"\002\003\011\013\015\016"
	.ascii	"\004\006\022\026\032\034"
	.ascii	"\006\005\033\035\027\022"
	.ascii	"\010\014$,48"
	.ascii	"\012\017-'96"
	.ascii	"\014\0126:.$"
	.ascii	"\016\011?1#*"
	.ascii	"\020\030HXhp"
	.ascii	"\022\033ASe~"
	.ascii	"\024\036ZNrl"
	.ascii	"\026\035SE\177b"
	.ascii	"\030\024lt\\H"
	.ascii	"\032\027e\177QF"
	.ascii	"\034\022~bFT"
	.ascii	"\036\021wiKZ"
	.ascii	" 0\220\260\320\340"
	.ascii	"\"3\231\273\335\356"
	.ascii	"$6\202\246\312\374"
	.ascii	"&5\213\255\307\362"
	.ascii	"(<\264\234\344\330"
	.ascii	"*?\275\227\351\326"
	.ascii	",:\246\212\376\304"
	.ascii	".9\257\201\363\312"
	.ascii	"0(\330\350\270\220"
	.ascii	"2+\321\343\265\236"
	.ascii	"4.\312\376\242\214"
	.ascii	"6-\303\365\257\202"
	.ascii	"8$\374\304\214\250"
	.ascii	":'\365\317\201\246"
	.ascii	"<\"\356\322\226\264"
	.ascii	">!\347\331\233\272"
	.ascii	"@`;{\273\333"
	.ascii	"Bc2p\266\325"
	.ascii	"Df)m\241\307"
	.ascii	"Fe f\254\311"
	.ascii	"Hl\037W\217\343"
	.ascii	"Jo\026\\\202\355"
	.ascii	"Lj\015A\225\377"
	.ascii	"Ni\004J\230\361"
	.ascii	"Pxs#\323\253"
	.ascii	"R{z(\336\245"
	.ascii	"T~a5\311\267"
	.ascii	"V}h>\304\271"
	.ascii	"XtW\017\347\223"
	.ascii	"Zw^\004\352\235"
	.ascii	"\\rE\031\375\217"
	.ascii	"^qL\022\360\201"
	.ascii	"`P\253\313k;"
	.ascii	"bS\242\300f5"
	.ascii	"dV\271\335q'"
	.ascii	"fU\260\326|)"
	.ascii	"h\\\217\347_\003"
	.ascii	"j_\206\354R\015"
	.ascii	"lZ\235\361E\037"
	.ascii	"nY\224\372H\021"
	.ascii	"pH\343\223\003K"
	.ascii	"rK\352\230\016E"
	.ascii	"tN\361\205\031W"
	.ascii	"vM\370\216\024Y"
	.ascii	"xD\307\2777s"
	.ascii	"zG\316\264:}"
	.ascii	"|B\325\251-o"
	.ascii	"~A\334\242 a"
	.ascii	"\200\300v\366m\255"
	.ascii	"\202\303\177\375`\243"
	.ascii	"\204\306d\340w\261"
	.ascii	"\206\305m\353z\277"
	.ascii	"\210\314R\332Y\225"
	.ascii	"\212\317[\321T\233"
	.ascii	"\214\312@\314C\211"
	.ascii	"\216\311I\307N\207"
	.ascii	"\220\330>\256\005\335"
	.ascii	"\222\3337\245\010\323"
	.ascii	"\224\336,\270\037\301"
	.ascii	"\226\335%\263\022\317"
	.ascii	"\230\324\032\2021\345"
	.ascii	"\232\327\023\211<\353"
	.ascii	"\234\322\010\224+\371"
	.ascii	"\236\321\001\237&\367"
	.ascii	"\240\360\346F\275M"
	.ascii	"\242\363\357M\260C"
	.ascii	"\244\366\364P\247Q"
	.ascii	"\246\365\375[\252_"
	.ascii	"\250\374\302j\211u"
	.ascii	"\252\377\313a\204{"
	.ascii	"\254\372\320|\223i"
	.ascii	"\256\371\331w\236g"
	.ascii	"\260\350\256\036\325="
	.ascii	"\262\353\247\025\3303"
	.ascii	"\264\356\274\010\317!"
	.ascii	"\266\355\265\003\302/"
	.ascii	"\270\344\2122\341\005"
	.ascii	"\272\347\2039\354\013"
	.ascii	"\274\342\230$\373\031"
	.ascii	"\276\341\221/\366\027"
	.ascii	"\300\240M\215\326v"
	.ascii	"\302\243D\206\333x"
	.ascii	"\304\246_\233\314j"
	.ascii	"\306\245V\220\301d"
	.ascii	"\310\254i\241\342N"
	.ascii	"\312\257`\252\357@"
	.ascii	"\314\252{\267\370R"
	.ascii	"\316\251r\274\365\\"
	.ascii	"\320\270\005\325\276\006"
	.ascii	"\322\273\014\336\263\010"
	.ascii	"\324\276\027\303\244\032"
	.ascii	"\326\275\036\310\251\024"
	.ascii	"\330\264!\371\212>"
	.ascii	"\332\267(\362\2070"
	.ascii	"\334\2623\357\220\""
	.ascii	"\336\261:\344\235,"
	.ascii	"\340\220\335=\006\226"
	.ascii	"\342\223\3246\013\230"
	.ascii	"\344\226\317+\034\212"
	.ascii	"\346\225\306 \021\204"
	.ascii	"\350\234\371\0212\256"
	.ascii	"\352\237\360\032?\240"
	.ascii	"\354\232\353\007(\262"
	.ascii	"\356\231\342\014%\274"
	.ascii	"\360\210\225en\346"
	.ascii	"\362\213\234nc\350"
	.ascii	"\364\216\207st\372"
	.ascii	"\366\215\216xy\364"
	.ascii	"\370\204\261IZ\336"
	.ascii	"\372\207\270BW\320"
	.ascii	"\374\202\243_@\302"
	.ascii	"\376\201\252TM\314"
	.ascii	"\033\233\354\367\332A"
	.ascii	"\031\230\345\374\327O"
	.ascii	"\037\235\376\341\300]"
	.ascii	"\035\236\367\352\315S"
	.ascii	"\023\227\310\333\356y"
	.ascii	"\021\224\301\320\343w"
	.ascii	"\027\221\332\315\364e"
	.ascii	"\025\222\323\306\371k"
	.ascii	"\013\203\244\257\2621"
	.ascii	"\011\200\255\244\277?"
	.ascii	"\017\205\266\271\250-"
	.ascii	"\015\206\277\262\245#"
	.ascii	"\003\217\200\203\206\011"
	.ascii	"\001\214\211\210\213\007"
	.ascii	"\007\211\222\225\234\025"
	.ascii	"\005\212\233\236\221\033"
	.ascii	";\253|G\012\241"
	.ascii	"9\250uL\007\257"
	.ascii	"?\255nQ\020\275"
	.ascii	"=\256gZ\035\263"
	.ascii	"3\247Xk>\231"
	.ascii	"1\244Q`3\227"
	.ascii	"7\241J}$\205"
	.ascii	"5\242Cv)\213"
	.ascii	"+\2634\037b\321"
	.ascii	")\260=\024o\337"
	.ascii	"/\265&\011x\315"
	.ascii	"-\266/\002u\303"
	.ascii	"#\277\0203V\351"
	.ascii	"!\274\0318[\347"
	.ascii	"'\271\002%L\365"
	.ascii	"%\272\013.A\373"
	.ascii	"[\373\327\214a\232"
	.ascii	"Y\370\336\207l\224"
	.ascii	"_\375\305\232{\206"
	.ascii	"]\376\314\221v\210"
	.ascii	"S\367\363\240U\242"
	.ascii	"Q\364\372\253X\254"
	.ascii	"W\361\341\266O\276"
	.ascii	"U\362\350\275B\260"
	.ascii	"K\343\237\324\011\352"
	.ascii	"I\340\226\337\004\344"
	.ascii	"O\345\215\302\023\366"
	.ascii	"M\346\204\311\036\370"
	.ascii	"C\357\273\370=\322"
	.ascii	"A\354\262\3630\334"
	.ascii	"G\351\251\356'\316"
	.ascii	"E\352\240\345*\300"
	.ascii	"{\313G<\261z"
	.ascii	"y\310N7\274t"
	.ascii	"\177\315U*\253f"
	.ascii	"}\316\\!\246h"
	.ascii	"s\307c\020\205B"
	.ascii	"q\304j\033\210L"
	.ascii	"w\301q\006\237^"
	.ascii	"u\302x\015\222P"
	.ascii	"k\323\017d\331\012"
	.ascii	"i\320\006o\324\004"
	.ascii	"o\325\035r\303\026"
	.ascii	"m\326\024y\316\030"
	.ascii	"c\337+H\3552"
	.ascii	"a\334\"C\340<"
	.ascii	"g\3319^\367."
	.ascii	"e\3320U\372 "
	.ascii	"\233[\232\001\267\354"
	.ascii	"\231X\223\012\272\342"
	.ascii	"\237]\210\027\255\360"
	.ascii	"\235^\201\034\240\376"
	.ascii	"\223W\276-\203\324"
	.ascii	"\221T\267&\216\332"
	.ascii	"\227Q\254;\231\310"
	.ascii	"\225R\2450\224\306"
	.ascii	"\213C\322Y\337\234"
	.ascii	"\211@\333R\322\222"
	.ascii	"\217E\300O\305\200"
	.ascii	"\215F\311D\310\216"
	.ascii	"\203O\366u\353\244"
	.ascii	"\201L\377~\346\252"
	.ascii	"\207I\344c\361\270"
	.ascii	"\205J\355h\374\266"
	.ascii	"\273k\012\261g\014"
	.ascii	"\271h\003\272j\002"
	.ascii	"\277m\030\247}\020"
	.ascii	"\275n\021\254p\036"
	.ascii	"\263g.\235S4"
	.ascii	"\261d'\226^:"
	.ascii	"\267a<\213I("
	.ascii	"\265b5\200D&"
	.ascii	"\253sB\351\017|"
	.ascii	"\251pK\342\002r"
	.ascii	"\257uP\377\025`"
	.ascii	"\255vY\364\030n"
	.ascii	"\243\177f\305;D"
	.ascii	"\241|o\3166J"
	.ascii	"\247yt\323!X"
	.ascii	"\245z}\330,V"
	.ascii	"\333;\241z\0147"
	.ascii	"\3318\250q\0019"
	.ascii	"\337=\263l\026+"
	.ascii	"\335>\272g\033%"
	.ascii	"\3237\205V8\017"
	.ascii	"\3214\214]5\001"
	.ascii	"\3271\227@\"\023"
	.ascii	"\3252\236K/\035"
	.ascii	"\313#\351\"dG"
	.ascii	"\311 \340)iI"
	.ascii	"\317%\3734~["
	.ascii	"\315&\362?sU"
	.ascii	"\303/\315\016P\177"
	.ascii	"\301,\304\005]q"
	.ascii	"\307)\337\030Jc"
	.ascii	"\305*\326\023Gm"
	.ascii	"\373\0131\312\334\327"
	.ascii	"\371\0108\301\321\331"
	.ascii	"\377\015#\334\306\313"
	.ascii	"\375\016*\327\313\305"
	.ascii	"\363\007\025\346\350\357"
	.ascii	"\361\004\034\355\345\341"
	.ascii	"\367\001\007\360\362\363"
	.ascii	"\365\002\016\373\377\375"
	.ascii	"\353\023y\222\264\247"
	.ascii	"\351\020p\231\271\251"
	.ascii	"\357\025k\204\256\273"
	.ascii	"\355\026b\217\243\265"
	.ascii	"\343\037]\276\200\237"
	.ascii	"\341\034T\265\215\221"
	.ascii	"\347\031O\250\232\203"
	.ascii	"\345\032F\243\227\215"
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	AddRoundKey
	.syntax unified
	.arm
	.fpu softvfp
	.type	AddRoundKey, %function
AddRoundKey:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, .L3
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	lsr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	lsr	r3, r3, #16
	and	r3, r3, #255
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	lsr	r3, r3, #8
	and	r3, r3, #255
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	and	r3, r3, #255
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsr	r3, r3, #16
	and	r3, r3, #255
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	lsr	r3, r3, #8
	and	r3, r3, #255
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	ldr	r3, [r3]
	and	r3, r3, #255
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsr	r3, r3, #16
	and	r3, r3, #255
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	lsr	r3, r3, #8
	and	r3, r3, #255
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	ldr	r3, [r3]
	and	r3, r3, #255
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsr	r3, r3, #24
	and	r3, r3, #255
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsr	r3, r3, #16
	and	r3, r3, #255
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	ldr	r3, [r3]
	lsr	r3, r3, #8
	and	r3, r3, #255
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	ldr	r3, [r3]
	and	r3, r3, #255
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	nop
	ldr	r3, .L3
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L2
	bl	__stack_chk_fail
.L2:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4:
	.align	2
.L3:
	.word	.LC1
	.size	AddRoundKey, .-AddRoundKey
	.align	2
	.global	SubBytes
	.syntax unified
	.arm
	.fpu softvfp
	.type	SubBytes, %function
SubBytes:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L6
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L6
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L6
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L6
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L6
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L7:
	.align	2
.L6:
	.word	aes_sbox
	.size	SubBytes, .-SubBytes
	.align	2
	.global	InvSubBytes
	.syntax unified
	.arm
	.fpu softvfp
	.type	InvSubBytes, %function
InvSubBytes:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L9
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L9
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L9
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L9
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #4
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #8
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #15
	ldr	r3, [fp, #-8]
	add	r3, r3, #12
	ldr	r0, .L9
	lsl	r1, r1, #4
	add	r1, r0, r1
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L10:
	.align	2
.L9:
	.word	aes_invsbox
	.size	InvSubBytes, .-InvSubBytes
	.align	2
	.global	ShiftRows
	.syntax unified
	.arm
	.fpu softvfp
	.type	ShiftRows, %function
ShiftRows:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r2, [r2, #3]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3, #1]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ShiftRows, .-ShiftRows
	.align	2
	.global	InvShiftRows
	.syntax unified
	.arm
	.fpu softvfp
	.type	InvShiftRows, %function
InvShiftRows:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r2, [r2, #2]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldr	r2, [fp, #-8]
	and	r2, r2, #255
	strb	r2, [r3, #2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	InvShiftRows, .-InvShiftRows
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	MixColumns
	.syntax unified
	.arm
	.fpu softvfp
	.type	MixColumns, %function
MixColumns:
	@ 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	r3, .L15
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L15+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L15+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L15+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L15+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L15+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	nop
	ldr	r3, .L15
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L14
	bl	__stack_chk_fail
.L14:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L16:
	.align	2
.L15:
	.word	.LC2
	.word	gf_mul
	.size	MixColumns, .-MixColumns
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	InvMixColumns
	.syntax unified
	.arm
	.fpu softvfp
	.type	InvMixColumns, %function
InvMixColumns:
	@ 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	r3, .L19
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L19+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L19+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #1]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L19+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #2]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #2]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L19+4
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, r2
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #4
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #8
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	b	.L20
.L21:
	.align	2
.L19:
	.word	.LC3
	.word	gf_mul
	.word	.LC3
.L20:
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #3
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, [fp, #-16]
	add	r2, r3, #12
	ldr	r1, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [r2, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	ldrb	r1, [r3, #3]	@ zero_extendqisi2
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r2, .L19+4
	mov	r3, r0
	lsl	r3, r3, #1
	add	r3, r3, r0
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #5
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	eor	r2, r2, r1
	and	r2, r2, #255
	strb	r2, [r3, #3]
	nop
	ldr	r3, .L19+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L18
	bl	__stack_chk_fail
.L18:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	InvMixColumns, .-InvMixColumns
	.align	2
	.global	SubWord
	.syntax unified
	.arm
	.fpu softvfp
	.type	SubWord, %function
SubWord:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #4
	and	r2, r3, #15
	ldr	r3, [fp, #-16]
	and	r3, r3, #15
	ldr	r1, .L24
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #12
	and	r2, r3, #15
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #8
	and	r3, r3, #15
	ldr	r1, .L24
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #20
	and	r2, r3, #15
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #16
	and	r3, r3, #15
	ldr	r1, .L24
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsr	r2, r3, #28
	ldr	r3, [fp, #-16]
	lsr	r3, r3, #24
	and	r3, r3, #15
	ldr	r1, .L24
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L25:
	.align	2
.L24:
	.word	aes_sbox
	.size	SubWord, .-SubWord
	.global	__aeabi_idivmod
	.global	__aeabi_idiv
	.section	.rodata
	.align	2
.LC0:
	.word	16777216
	.word	33554432
	.word	67108864
	.word	134217728
	.word	268435456
	.word	536870912
	.word	1073741824
	.word	-2147483648
	.word	452984832
	.word	905969664
	.word	1811939328
	.word	-671088640
	.word	-1426063360
	.word	1291845632
	.word	-1711276032
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	KeyExpansion
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeyExpansion, %function
KeyExpansion:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #108
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	str	r2, [fp, #-112]
	ldr	r3, .L41
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #4
	str	r3, [fp, #-80]
	ldr	r3, .L41+4
	sub	ip, fp, #76
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r3, [fp, #-112]
	cmp	r3, #256
	beq	.L27
	ldr	r3, [fp, #-112]
	cmp	r3, #256
	bgt	.L40
	ldr	r3, [fp, #-112]
	cmp	r3, #128
	beq	.L29
	ldr	r3, [fp, #-112]
	cmp	r3, #192
	beq	.L30
	b	.L40
.L29:
	mov	r3, #10
	str	r3, [fp, #-96]
	mov	r3, #4
	str	r3, [fp, #-92]
	b	.L31
.L30:
	mov	r3, #12
	str	r3, [fp, #-96]
	mov	r3, #6
	str	r3, [fp, #-92]
	b	.L31
.L27:
	mov	r3, #14
	str	r3, [fp, #-96]
	mov	r3, #8
	str	r3, [fp, #-92]
	nop
.L31:
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L33
.L34:
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r2, r3, #24
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r3, r3, #1
	ldr	r1, [fp, #-104]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	orr	r2, r2, r3
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	add	r3, r3, #2
	ldr	r1, [fp, #-104]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	orr	r3, r2, r3
	ldr	r2, [fp, #-88]
	lsl	r2, r2, #2
	add	r2, r2, #3
	ldr	r1, [fp, #-104]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	orr	r1, r3, r2
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	mov	r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L33:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-92]
	cmp	r2, r3
	blt	.L34
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-88]
	b	.L35
.L38:
	ldr	r3, [fp, #-88]
	sub	r3, r3, #-1073741823
	lsl	r3, r3, #2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-88]
	ldr	r1, [fp, #-92]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #0
	bne	.L36
	ldr	r3, [fp, #-84]
	ror	r3, r3, #24
	mov	r0, r3
	bl	SubWord
	mov	r4, r0
	ldr	r3, [fp, #-88]
	sub	r3, r3, #1
	ldr	r1, [fp, #-92]
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-64]
	eor	r3, r3, r4
	str	r3, [fp, #-84]
	b	.L37
.L36:
	ldr	r3, [fp, #-92]
	cmp	r3, #6
	ble	.L37
	ldr	r3, [fp, #-88]
	ldr	r1, [fp, #-92]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #4
	bne	.L37
	ldr	r0, [fp, #-84]
	bl	SubWord
	str	r0, [fp, #-84]
.L37:
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-92]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-88]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	ldr	r2, [fp, #-84]
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
.L35:
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	ldr	r2, [fp, #-80]
	mul	r3, r2, r3
	ldr	r2, [fp, #-88]
	cmp	r2, r3
	blt	.L38
	b	.L26
.L40:
	nop
.L26:
	ldr	r3, .L41
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L39
	bl	__stack_chk_fail
.L39:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L42:
	.align	2
.L41:
	.word	.LC4
	.word	.LC0
	.size	KeyExpansion, .-KeyExpansion
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	aes_decrypt
	.syntax unified
	.arm
	.fpu softvfp
	.type	aes_decrypt, %function
aes_decrypt:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L49
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	strb	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	strb	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	strb	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	strb	r3, [fp, #-23]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	strb	r3, [fp, #-19]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	strb	r3, [fp, #-15]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	strb	r3, [fp, #-22]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #9]	@ zero_extendqisi2
	strb	r3, [fp, #-18]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #10]	@ zero_extendqisi2
	strb	r3, [fp, #-14]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #11]	@ zero_extendqisi2
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	strb	r3, [fp, #-21]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	strb	r3, [fp, #-17]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #14]	@ zero_extendqisi2
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #15]	@ zero_extendqisi2
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-44]
	cmp	r3, #128
	ble	.L44
	ldr	r3, [fp, #-44]
	cmp	r3, #192
	ble	.L45
	ldr	r3, [fp, #-40]
	add	r2, r3, #224
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #208
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #192
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	b	.L46
.L45:
	ldr	r3, [fp, #-40]
	add	r2, r3, #192
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
.L46:
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #176
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #160
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	b	.L47
.L44:
	ldr	r3, [fp, #-40]
	add	r2, r3, #160
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
.L47:
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #144
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #128
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #112
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #96
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #80
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #64
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #48
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #32
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	ldr	r3, [fp, #-40]
	add	r2, r3, #16
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	AddRoundKey
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvMixColumns
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvShiftRows
	sub	r3, fp, #24
	mov	r0, r3
	bl	InvSubBytes
	sub	r3, fp, #24
	ldr	r1, [fp, #-40]
	mov	r0, r3
	bl	AddRoundKey
	ldrb	r2, [fp, #-24]	@ zero_extendqisi2
	ldr	r3, [fp, #-36]
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldrb	r2, [fp, #-20]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	ldrb	r2, [fp, #-16]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #3
	ldrb	r2, [fp, #-12]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #4
	ldrb	r2, [fp, #-23]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #5
	ldrb	r2, [fp, #-19]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #6
	ldrb	r2, [fp, #-15]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #7
	ldrb	r2, [fp, #-11]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #8
	ldrb	r2, [fp, #-22]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #9
	ldrb	r2, [fp, #-18]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #10
	ldrb	r2, [fp, #-14]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #11
	ldrb	r2, [fp, #-10]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #12
	ldrb	r2, [fp, #-21]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #13
	ldrb	r2, [fp, #-17]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #14
	ldrb	r2, [fp, #-13]	@ zero_extendqisi2
	strb	r2, [r3]
	ldr	r3, [fp, #-36]
	add	r3, r3, #15
	ldrb	r2, [fp, #-9]	@ zero_extendqisi2
	strb	r2, [r3]
	nop
	ldr	r3, .L49
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L48
	bl	__stack_chk_fail
.L48:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L50:
	.align	2
.L49:
	.word	.LC5
	.size	aes_decrypt, .-aes_decrypt
	.section	.rodata
	.align	2
.LC8:
	.ascii	"\015\000"
	.align	2
.LC6:
	.ascii	"\000\021\"3DUfw\210\231\252\273\314\335\356\377"
	.align	2
.LC7:
	.ascii	"\000\021\"3DUfw\210\231\252\273\314\335\356\377\000"
	.ascii	"\021\"3DUfw\210\231\252\273\314\335\356\377"
	.align	2
.LC9:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 336
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #336
	str	r0, [fp, #-336]
	str	r1, [fp, #-340]
	ldr	r3, .L62
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L62+4
	sub	ip, fp, #72
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L62+8
	sub	ip, fp, #40
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r3, #0
	str	r3, [fp, #-328]
	mov	r3, #93
	str	r3, [fp, #-320]
	mov	r3, #0
	str	r3, [fp, #-328]
	b	.L52
.L57:
	ldr	r3, [fp, #-340]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-328]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	cmp	r3, #59
	bgt	.L53
	ldr	r3, [fp, #-324]
	sub	r3, r3, #48
	str	r3, [fp, #-324]
	b	.L54
.L53:
	ldr	r3, [fp, #-324]
	sub	r3, r3, #87
	str	r3, [fp, #-324]
.L54:
	ldr	r3, [fp, #-340]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-328]
	add	r3, r3, #1
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	cmp	r3, #59
	bgt	.L55
	ldr	r3, [fp, #-320]
	sub	r3, r3, #48
	str	r3, [fp, #-320]
	b	.L56
.L55:
	ldr	r3, [fp, #-320]
	sub	r3, r3, #87
	str	r3, [fp, #-320]
.L56:
	ldr	r3, [fp, #-324]
	and	r3, r3, #255
	lsl	r3, r3, #4
	and	r1, r3, #255
	ldr	r3, [fp, #-320]
	and	r2, r3, #255
	ldr	r3, [fp, #-328]
	lsr	r0, r3, #31
	add	r3, r0, r3
	asr	r3, r3, #1
	mov	r0, r3
	add	r3, r1, r2
	and	r2, r3, #255
	sub	r3, fp, #4
	add	r3, r3, r0
	strb	r2, [r3, #-52]
	ldr	r3, [fp, #-328]
	add	r3, r3, #2
	str	r3, [fp, #-328]
.L52:
	ldr	r3, [fp, #-328]
	cmp	r3, #31
	ble	.L57
	sub	r1, fp, #312
	sub	r3, fp, #40
	mov	r2, #256
	mov	r0, r3
	bl	KeyExpansion
	sub	r2, fp, #312
	sub	r1, fp, #72
	sub	r0, fp, #56
	mov	r3, #256
	bl	aes_decrypt
	mov	r3, #0
	str	r3, [fp, #-316]
	b	.L58
.L59:
	sub	r2, fp, #72
	ldr	r3, [fp, #-316]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, [fp, #-316]
	add	r3, r3, #1
	str	r3, [fp, #-316]
.L58:
	ldr	r3, [fp, #-316]
	cmp	r3, #15
	ble	.L59
	ldr	r0, .L62+12
	bl	puts
	mov	r3, #0
	ldr	r2, .L62
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L61
	bl	__stack_chk_fail
.L61:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L63:
	.align	2
.L62:
	.word	.LC9
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
