Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
LSH
lsh
Commits
79d0fa6d
Commit
79d0fa6d
authored
Feb 15, 2002
by
Niels Möller
Browse files
* sparc/aes.asm (_aes_crypt): Deleted commented out old version of
the code. Rev: src/nettle/sparc/aes.asm:1.17
parent
fefc659c
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/nettle/sparc/aes.asm
View file @
79d0fa6d
...
...
@@ -228,618 +228,3 @@ _aes_crypt:
.LLfe1:
.size
_aes_crypt
,
.LLfe1
-
_aes_crypt
!
.section
".text"
!
.align
4
!
.type
key_addition_8to32
,
#
function
!
.proc
020
!
!
/*
Key
addition
that
al
so
packs
every
byte
in
the
key
to
a
word
rep.
*/
!
!
static
void
!
!
key_addition_8to32
(
const
uint8_t
*
txt
,
const
uint32_t
*
keys
,
uint32_t
*
out
)
!
key_addition_8to32:
!
!
%
o0:
txt
!
!
%
o1:
keys
!
!
%
o2:
out
!
!
i:
%
o5
!
mov
0
,
%
o5
!
.Liloop:
!
!
val:
%
o4
!
mov
0
,
%
o4
!
!
j:
%
o3
!
mov
0
,
%
o3
!
.Lshiftloop:
!
ldub
[
%
o0
],
%
g3
!
!
%
g2
=
j
<<
3
!
sll
%
o3
,
3
,
%
g2
!
!
%
g3
<<
0
!
sll
%
g3
,
%
g2
,
%
g3
!
add
%
o3
,
1
,
%
o3
!
or
%
o4
,
%
g3
,
%
o4
!
cmp
%
o3
,
3
!
bleu
.Lshiftloop
!
add
%
o0
,
1
,
%
o0
!
!
val
in
%
o4
now
!
!
!
out
[
i
]
=
keys
[
i
]
^
val
; i++
!
sll
%
o5
,
2
,
%
g3
!
ld
[
%
o1
+%
g3
],
%
g2
!
add
%
o5
,
1
,
%
o5
!
xor
%
g2
,
%
o4
,
%
g2
!
cmp
%
o5
,
3
!
bleu
.Liloop
!
st
%
g2
,
[
%
o2
+%
g3
]
!
!
retl
!
nop
!
!
!
key_addition32
(
const
uint32_t
*
txt
,
const
uint32_t
*
keys
,
uint32_t
*
out
)
!
!
.size
key_addition_8to32
,
.LLfe1
-
key_addition_8to32
!
.align
4
!
.type
key_addition32
,
#
function
!
.proc
020
!
key_addition32:
!
!
Unrolled
version
!
ld
[
%
o0
],
%
g2
!
ld
[
%
o1
],
%
g3
!
xor
%
g2
,
%
g3
,
%
g3
!
st
%
g3
,
[
%
o2
]
!
!
ld
[
%
o0
+
4
],
%
g2
!
ld
[
%
o1
+
4
],
%
g3
!
xor
%
g2
,
%
g3
,
%
g3
!
st
%
g3
,
[
%
o2
+
4
]
!
!
ld
[
%
o0
+
8
],
%
g2
!
ld
[
%
o1
+
8
],
%
g3
!
xor
%
g2
,
%
g3
,
%
g3
!
st
%
g3
,
[
%
o2
+
8
]
!
!
ld
[
%
o0
+
12
],
%
g2
!
ld
[
%
o1
+
12
],
%
g3
!
xor
%
g2
,
%
g3
,
%
g3
!
retl
!
st
%
g3
,
[
%
o2
+
12
]
!
!
!
.LLfe2:
!
.size
key_addition32
,
.LLfe2
-
key_addition32
!
.align
4
!
.type
key_addition32to8
,
#
function
!
.proc
020
!
key_addition32to8:
!
mov
%
o0
,
%
o5
!
mov
0
,
%
o4
!
sll
%
o4
,
2
,
%
g2
!
.LL42:
!
ld
[
%
o1
+%
g2
],
%
o0
!
mov
0
,
%
o3
!
ld
[
%
o5
+%
g2
],
%
g3
!
xor
%
g3
,
%
o0
,
%
g3
!
!
FIXME:
Unroll
inner
loop
!
.LL37:
!
sll
%
o3
,
3
,
%
g2
!
srl
%
g3
,
%
g2
,
%
g2
!
stb
%
g2
,
[
%
o2
]
!
!
add
%
o3
,
1
,
%
o3
!
cmp
%
o3
,
3
!
!
bleu
.LL37
!
add
%
o2
,
1
,
%
o2
!
!
add
%
o4
,
1
,
%
o4
!
cmp
%
o4
,
3
!
bleu
.LL42
!
sll
%
o4
,
2
,
%
g2
!
!
retl
!
nop
!
.LLFE3:
!
.LLfe3:
!
.size
key_addition32to8
,
.LLfe3
-
key_addition32to8
!
.section
".rodata"
!
.align
4
!
.type
idx
,
#
object
!
.size
idx
,
64
!
idx:
!
define
(
idx_row
,
!
<
.long
eval
(
4
*
$
1
)
!
.long
eval
(
4
*
$
2
)
!
.long
eval
(
4
*
$
3
)
!
.long
eval
(
4
*
$
4
)
!
>)
!
idx_row
(
0
,
1
,
2
,
3
)
!
idx_row
(
1
,
2
,
3
,
0
)
!
idx_row
(
2
,
3
,
0
,
1
)
!
idx_row
(
3
,
0
,
1
,
2
)
!
!
.align
8
!
.LLC0:
!
.asciz
"!
(
length
%
16
)
"
!
.align
8
!
.LLC1:
!
.asciz
"aes.asm"
!
.align
8
!
.LLC2:
!
.asciz
"
aes_encrypt
"
!
.section
".text"
!
.align
4
!
.global
aes_encrypt
!
.type
aes_encrypt
,
#
function
!
.proc
020
!
!
!
input
parameters
!
define
(
ctx
,
%
i0
)
!
define
(
length
,
%
i1
)
!
define
(
ds
t
,
%
i2
)
!
define
(
src
,
%
i3
)
!
!
!
locals
!
define
(
g_idx
,
%
i5
)
!
!
define
(
dtbl
,
%
l1
)
!
define
(
round
,
%
l3
)
!
define
(
txt
,
%
l5
)
!
define
(
wtxt
,
%
l6
)
!
!
aes_encrypt:
!
save
%
sp
,
-
136
,
%
sp
!
!
andcc
length
,
15
,
%
g0
!
bne
.Lencrypt_fail
!
cmp
length
,
0
!
be
.Lencrypt_end
!
sethi
%
hi
(
idx
),
%
i4
!
add
%
fp
,
-
24
,
wtxt
!
add
%
fp
,
-
40
,
txt
!
or
%
i4
,
%
lo
(
idx
),
g_idx
!
.Lencrypt_block:
!
!
key_addition_8to32
(
src
,
ctx
->
keys
,
wtxt
)
;
!
mov
src
,
%
o0
!
mov
ctx
,
%
o1
!
call
key_addition_8to32
,
0
!
mov
wtxt
,
%
o2
!
!
!
get
nrounds
!
ld
[
ctx
+
480
],
%
o0
!
mov
1
,
round
!
cmp
round
,
%
o0
!
bgeu
.Lencrypt_final
!
sethi
%
hi
(
64512
),
%
o0
!
!
sethi
%
hi
(
_aes_dtbl
),
%
o0
!
or
%
o0
,
%
lo
(
_aes_dtbl
),
dtbl
!
!
mov
txt
,
%
l4
!
mov
wtxt
,
%
l0
!
!
FIXME:
%
l7
=
idx
,
seems
redundant?
!
!
or
%
i4
,
%
lo
(
idx
),
%
l7
!
add
ctx
,
16
,
%
l2
!
.Lencrypt_round:
!
!
4
j:
%
g2
!
mov
0
,
%
g2
!
!
%
g3
=
&
idx
[
3
][
0
]
!
add
g_idx
,
48
,
%
g3
!
.Lencrypt_inner:
!
!
%
o0
=
idx
[
3
][
0
]
!
ld
[
%
g3
],
%
o0
!
!
%
o1
=
idx
[
2
][
0
]
!
ld
[
%
g3
-
16
],
%
o1
!
!
%
o3
=
wtxt
[
idx
[
3
][
0
]],
byte
=
>
bits
24
-
31
!
ldub
[
%
l0
+%
o0
],
%
o3
!
!
%
o4
=
wtxt
[
idx
[
2
][
0
]],
half
-
word
???
!
lduh
[
%
l0
+%
o1
],
%
o4
!
sll
%
o3
,
2
,
%
o3
!
!
%
o0
=
idx
[
1
][
0
]
!
ld
[
%
g3
-
32
],
%
o0
!
!
%
o4
=
(
wtxt
[
idx
[
2
][
0
]]
>>
16
)
&
0xff
=
>
bits
16
-
23
!
and
%
o4
,
255
,
%
o4
!
!
%
o2
=
dtbl
[
wtxt
[
idx
[
3
][
0
]]
>>
24
]
!
ld
[
dtbl
+%
o3
],
%
o2
!
!
%
o3
=
dtbl
[
wtxt
[
idx
[
3
][
0
]]
>>
24
]
>>
24
!
srl
%
o2
,
24
,
%
o3
!
!
%
o4
=
4
((
wtxt
[
idx
[
2
][
0
]]
>>
16
)
&
0xff
)
!
sll
%
o4
,
2
,
%
o4
!
!
%
o0
=
&
wtxt
[
idx
[
1
][
0
]]
!
add
%
l0
,
%
o0
,
%
o0
!
!
%
o1
=
dtbl
[(
wtxt
[
idx
[
2
][
0
]]
>>
16
)
&
0xff
]
!
ld
[
dtbl
+%
o4
],
%
o1
!
!
%
o2
=
dtbl
[
wtxt
[
idx
[
3
][
0
]]
>>
24
]
<<
8
!
sll
%
o2
,
8
,
%
o2
!
!
%
o5
=
(
wtxt
[
idx
[
1
][
0
]]
>>
8
)
&
0xff
!
ldub
[
%
o0
+
2
],
%
o5
!
!
%
o2
=
ROL
(
dtbl
[
wtxt
[
idx
[
3
][
0
]]
>>
24
])
!
or
%
o2
,
%
o3
,
%
o2
!
!
%
o1
=
dtbl
[(
wtxt
[
idx
[
2
][
0
]]
>>
16
)
&
0xff
]
!
!
^
ROL
(
dtbl
[
wtxt
[
idx
[
3
][
0
]]
>>
24
])
=
XX1
!
xor
%
o1
,
%
o2
,
%
o1
!
!
%
o3
=
XX1
>>
24
!
srl
%
o1
,
24
,
%
o3
!
!
%
o5
=
4
((
wtxt
[
idx
[
1
][
0
]]
>>
8
)
&
0xff
)
!
sll
%
o5
,
2
,
%
o5
!
!
%
o2
=
wtxt
[
j
]
!
ld
[
%
l0
+%
g2
],
%
o2
!
!
%
o1
=
XX1
<<
8
!
sll
%
o1
,
8
,
%
o1
!
!
%
o0
=
dtbl
[(
wtxt
[
idx
[
1
][
0
]]
>>
8
)
&
0xff
]
!
ld
[
dtbl
+%
o5
],
%
o0
!
!
%
o1
=
ROL
(
XX1
)
!
or
%
o1
,
%
o3
,
%
o1
!
!
%
o0
=
dtbl
[(
wtxt
[
idx
[
1
][
0
]]
>>
8
)
&
0xff
]
^
ROL
(
XX1
)
=
XX2
!
xor
%
o0
,
%
o1
,
%
o0
!
!
%
o2
=
wtxt
[
j
]
&
0xff
!
and
%
o2
,
255
,
%
o2
!
!
%03
=
XX2
>>
24
!
srl
%
o0
,
24
,
%
o3
!
!
%
o2
=
4
(
wtxt
[
j
]
&
0xff
)
!
sll
%
o2
,
2
,
%
o2
!
!
%
o1
=
dtbl
[
wtxt
[
j
]
&
0xff
]
!
ld
[
dtbl
+%
o2
],
%
o1
!
!
%
o0
=
XX2
<<
8
!
sll
%
o0
,
8
,
%
o0
!
!
%
o0
=
ROL
(
XX2
)
!
or
%
o0
,
%
o3
,
%
o0
!
!
%
o1
=
dtbl
[
wtxt
[
j
]
&
0xff
]
^
ROL
(
XX2
=
XX3
!
xor
%
o1
,
%
o0
,
%
o1
!
!
txt
[
j
]
(
old
j
)
=
XX3
!
st
%
o1
,
[
%
l4
+%
g2
]
!
!
!
j
<
=
3
?
!
cmp
%
g2
,
8
!
!
j
++
!
add
%
g2
,
4
,
%
g2
!
!
bleu
.Lencrypt_inner
!
!
%
g3
=
&
idx
[
3
][
j
]
!
add
%
g3
,
4
,
%
g3
!
!
!
key_addition32
(
txt
,
ctx
+
16
,
wtxt
)
!
mov
%
l2
,
%
o1
!
mov
txt
,
%
o0
!
call
key_addition32
,
0
!
mov
wtxt
,
%
o2
!
!
!
%
o0
=
nrounds
!
!
FIXME:
Keep
in
some
register?
!
ld
[
ctx
+
480
],
%
o0
!
add
round
,
1
,
round
!
cmp
round
,
%
o0
!
!
round
<
nrounds?
!
blu
.Lencrypt_round
!
!
%
l2
=
ctx
->
keys
+
r
*
4
!
add
%
l2
,
16
,
%
l2
!
!
sethi
%
hi
(
64512
),
%
o0
!
.Lencrypt_final:
!
!
%
l3
=
0xff00
???
!
or
%
o0
,
768
,
%
l3
!
!
%
o7
=
j
=
0
!
mov
0
,
%
o7
!
!
%
g3
=
wtxt
!
mov
wtxt
,
%
g3
!
!
%
l2
=
0xff0000
!
sethi
%
hi
(
16711680
),
%
l2
!
!
%
l1
=
0xff000000
!
sethi
%
hi
(
-
16777216
),
%
l1
!
!
%
l0
=
txt
!
mov
txt
,
%
l0
!
!
%
g2
=
&
idx
[
3
][
0
]
!
add
g_idx
,
48
,
%
g2
!
.Lencrypt_final_inner:
!
!
%
o0
=
idx
[
1
][
0
]
!
ld
[
%
g2
-
32
],
%
o0
!
!
%
o5
=
4
j
!
sll
%
o7
,
2
,
%
o5
!
!
%
o2
=
idx
[
2
][
0
]
!
ld
[
%
g2
-
16
],
%
o2
!
!
%
o3
=
wtxt
[
idx
[
1
][
0
]]
!
ld
[
%
g3
+%
o0
],
%
o3
!
!
%
o4
=
idx
[
3
][
0
]
!
ld
[
%
g2
],
%
o4
!
!
%
o3
=
wtxt
[
idx
[
1
][
0
]]
&
0xff00
!
and
%
o3
,
%
l3
,
%
o3
!
!
%
o1
=
wtxt
[
idx
[
2
][
0
]]
!
ld
[
%
g3
+%
o2
],
%
o1
!
!
%
o0
=
wtxt
[
idx
[
1
][
0
]]
!
ld
[
%
g3
+%
o5
],
%
o0
!
!
%
o1
=
wtxt
[
idx
[
2
][
0
]]
&
0xff0000
!
and
%
o1
,
%
l2
,
%
o1
!
!
%
o2
=
wtxt
[
idx
[
3
][
0
]]
!
ld
[
%
g3
+%
o4
],
%
o2
!
!
%
o0
=
wtxt
[
idx
[
1
][
0
]]
&
0xff
!
and
%
o0
,
255
,
%
o0
!
!
!
%
o0
=
wtxt
[
idx
[
1
][
0
]]
&
0xff
!
!
|
wtxt
[
idx
[
1
][
0
]]
&
0xff00
!
!
|
wtxt
[
idx
[
2
][
0
]]
&
0xff0000
!
or
%
o0
,
%
o3
,
%
o0
!
or
%
o0
,
%
o1
,
%
o0
!
!
%
o2
=
wtxt
[
idx
[
3
][
0
]]
&
0xff000000
!
and
%
o2
,
%
l1
,
%
o2
!
or
%
o0
,
%
o2
,
%
o0
!
!
j
++
!
add
%
o7
,
1
,
%
o7
!
!
txt
[
j
]
=
...
|
...
|
...
|
...
(
old
j
)
!
st
%
o0
,
[
%
l0
+%
o5
]
!
!
j
<
=
3
?
!
cmp
%
o7
,
3
!
bleu
.Lencrypt_final_inner
!
!
%
g2
=
&
idx
[
3
][
j
]
!
add
%
g2
,
4
,
%
g2
!
!
sethi
%
hi
(
_aes_sbox
),
%
o0
!
or
%
o0
,
%
lo
(
_aes_sbox
),
%
g3
!
!
!
%
o7
=
j
=
0
!
mov
0
,
%
o7
!
!
%
g2
=
txt
!
mov
%
l5
,
%
g2
!
.Lencrypt_sbox:
!
!
%
o5
=
4
j
!
sll
%
o7
,
2
,
%
o5
!
!
%
o3
=
txt
[
j
]
!
ld
[
%
g2
+%
o5
],
%
o3
!
!
j
++
!
add
%
o7
,
1
,
%
o7
!
!
%
o0
=
(
txt
[
j
]
>>
8
)
&
0xff
(
old
j
)
!
srl
%
o3
,
8
,
%
o0
!
and
%
o0
,
255
,
%
o0
!
!
%
o4
=
sbox
[(
txt
[
j
]
>>
8
)
&
0xff
]
!
ldub
[
%
g3
+%
o0
],
%
o4
!
!
%
o2
=
(
txt
[
j
]
>>
16
)
(
old
j
)
!
srl
%
o3
,
16
,
%
o2
!
!
%
o0
=
txt
[
j
]
&
0xff
!
and
%
o3
,
255
,
%
o0
!
!
%
o1
=
sbox
[
txt
[
j
]
&
0xff
]
!
ldub
[
%
g3
+%
o0
],
%
o1
!
!
%
o2
=
(
txt
[
j
]
>>
16
)
&
0xff
(
old
j
)
!
and
%
o2
,
255
,
%
o2
!
!
%
o0
=
sbox
[(
txt
[
j
]
>>
16
)
&
0xff
]
!
ldub
[
%
g3
+%
o2
],
%
o0
!
!
%
o3
=
txt
[
j
]
>>
24
!
srl
%
o3
,
24
,
%
o3
!
!
%
o4
=
sbox
[
txt
[
j
]
&
0xff
]
<<
8
!
sll
%
o4
,
8
,
%
o4
!
!
%
o2
=
sbox
[
txt
[
j
]
>>
24
]
!
ldub
[
%
g3
+%
o3
],
%
o2
!
!
%
o1
=
sbox
[
txt
[
j
]
&
0xff
]
!
!
|
sbox
[(
txt
[
j
]
>>
8
)
&
0xff
]
<<
8
!
or
%
o1
,
%
o4
,
%
o1
!
!
|
sbox
[(
txt
[
j
]
>>
16
)
&
0xff
]
<<
16
!
sll
%
o0
,
16
,
%
o0
!
or
%
o1
,
%
o0
,
%
o1
!
!
|
sbox
[
txt
[
j
]
>>
24
]
<<
24
!
sll
%
o2
,
24
,
%
o2
!
or
%
o1
,
%
o2
,
%
o1
!
!
j
<
3
!
cmp
%
o7
,
3
!
bleu
.Lencrypt_sbox
!
!
txt
[
j
]
=
...
|
...
|
...
|
...
!
st
%
o1
,
[
%
g2
+%
o5
]
!
!
!
key_addition32to8
(
txt
,
ctx
+
nrounds
*
4
,
ds
t
,
!
ld
[
ctx
+
480
],
%
o1
!
mov
ds
t
,
%
o2
!
sll
%
o1
,
4
,
%
o1
!
add
ctx
,
%
o1
,
%
o1
!
call
key_addition32to8
,
0
!
mov
%
l5
,
%
o0
!
!
add
src
,
16
,
src
!
addcc
length
,
-
16
,
length
!
bne
.Lencrypt_block
!
add
ds
t
,
16
,
ds
t
!
b
,
a
.Lencrypt_end
!
.Lencrypt_fail:
!
sethi
%
hi
(
.LLC0
),
%
o0
!
sethi
%
hi
(
.LLC1
),
%
o1
!
sethi
%
hi
(
.LLC2
),
%
o3
!
or
%
o0
,
%
lo
(
.LLC0
),
%
o0
!
or
%
o1
,
%
lo
(
.LLC1
),
%
o1
!
or
%
o3
,
%
lo
(
.LLC2
),
%
o3
!
call
__assert_fail
,
0
!
mov
92
,
%
o2
!
.Lencrypt_end:
!
ret
!
rest
ore
!
.LLFE4:
!
.LLfe4:
!
.size
aes_encrypt
,
.LLfe4
-
aes_encrypt
!
.section
".rodata"
!
.align
4
!
.type
iidx
,
#
object
!
.size
iidx
,
64
!
iidx:
!
.long
0
!
.long
1
!
.long
2
!
.long
3
!
.long
3
!
.long
0
!
.long
1
!
.long
2
!
.long
2
!
.long
3
!
.long
0
!
.long
1
!
.long
1
!
.long
2
!
.long
3
!
.long
0
!
.align
8
!
.LLC3:
!
.asciz
"aes_decrypt"
!
.section
".text"
!
.align
4
!
.global
aes_decrypt
!
.type
aes_decrypt
,
#
function
!
.proc
020
!
aes_decrypt:
!
.LLFB5:
!
!#
PROLOGUE#
0
!
save
%
sp
,
-
136
,
%
sp
!
.LLCFI1:
!
!#
PROLOGUE#
1
!
andcc
%
i1
,
15
,
%
g0
!
bne
.LL111
!
cmp
%
i1
,
0
!
be
.LL106
!
sethi
%
hi
(
iidx
),
%
i4
!
add
%
fp
,
-
24
,
%
l6
!
add
%
fp
,
-
40
,
%
l5
!
add
%
i0
,
240
,
%
i5
!
.LL84:
!
ld
[
%
i0
+
480
],
%
o1
!
mov
%
i3
,
%
o0
!
sll
%
o1
,
4
,
%
o1
!
add
%
i0
,
%
o1
,
%
o1
!
add
%
o1
,
240
,
%
o1
!
call
key_addition_8to32
,
0
!
mov
%
l6
,
%
o2
!
ld
[
%
i0
+
480
],
%
o0
!
addcc
%
o0
,
-
1
,
%
l2
!
be
.LL107
!
sll
%
l2
,
4
,
%
o1
!
add
%
o1
,
%
i0
,
%
o1
!
sethi
%
hi
(
_aes_itbl
),
%
o0
!
or
%
o0
,
%
lo
(
_aes_itbl
),
%
l1
!
add
%
o1
,
240
,
%
l3
!
mov
%
l5
,
%
l4
!
mov
%
l6
,
%
l0
!
or
%
i4
,
%
lo
(
iidx
),
%
l7
!
.LL88:
!
mov
0
,
%
o7
!
add
%
l7
,
48
,
%
g3
!
.LL92:
!
ld
[
%
g3
],
%
o0
!
sll
%
o7
,
2
,
%
g2
!
ld
[
%
g3
-
16
],
%
o1
!
sll
%
o0
,
2
,
%
o0
!
ldub
[
%
l0
+%
o0
],
%
o3
!
sll
%
o1
,
2
,
%
o1
!
lduh
[
%
l0
+%
o1
],
%
o4
!
sll
%
o3
,
2
,
%
o3
!
ld
[
%
g3
-
32
],
%
o0
!
and
%
o4
,
255
,
%
o4
!
ld
[
%
l1
+%
o3
],
%
o2
!
sll
%
o0
,
2
,
%
o0
!
srl
%
o2
,
24
,
%
o3
!
sll
%
o4
,
2
,
%
o4
!
add
%
l0
,
%
o0
,
%
o0
!
ld
[
%
l1
+%
o4
],
%
o1
!
sll
%
o2
,
8
,
%
o2
!
ldub
[
%
o0
+
2
],
%
o5
!
or
%
o2
,
%
o3
,
%
o2
!
xor
%
o1
,
%
o2
,
%
o1
!
srl
%
o1
,
24
,
%
o3
!
sll
%
o5
,
2
,
%
o5
!
ld
[
%
l0
+%
g2
],
%
o2
!
sll
%
o1
,
8
,
%
o1
!
ld
[
%
l1
+%
o5
],
%
o0
!
or
%
o1
,
%
o3
,
%
o1
!
xor
%
o0
,
%
o1
,
%
o0
!
and
%
o2
,
255
,
%
o2
!
srl
%
o0
,
24
,
%
o3
!
sll
%
o2
,
2
,
%
o2
!
ld
[
%
l1
+%
o2
],
%
o1
!
sll
%
o0
,
8
,
%
o0
!
or
%
o0
,
%
o3
,
%
o0
!
xor
%
o1
,
%
o0
,
%
o1
!
add
%
o7
,
1
,
%
o7
!
st
%
o1
,
[
%
l4
+%
g2
]
!
cmp
%
o7
,
3
!
bleu
.LL92
!
add
%
g3
,
4
,
%
g3
!
mov
%
l3
,
%
o1
!
mov
%
l5
,
%
o0
!
call
key_addition32
,
0
!
mov
%
l6
,
%
o2
!
addcc
%
l2
,
-
1
,
%
l2
!
bne
.LL88
!
add
%
l3
,
-
16
,
%
l3
!
.LL107:
!
sethi
%
hi
(
64512
),
%
o0
!
or
%
o0
,
768
,
%
l3
!
sethi
%
hi
(
iidx
),
%
o0
!
or
%
o0
,
%
lo
(
iidx
),
%
o0
!
mov
0
,
%
o7
!
mov
%
l6
,
%
g3
!
sethi
%
hi
(
16711680
),
%
l2
!
sethi
%
hi
(
-
16777216
),
%
l1
!
mov
%
l5
,
%
l0
!
add
%
o0
,
48
,
%
g2
!
.LL98:
!
ld
[
%
g2
-
32
],
%
o0
!
sll
%
o7
,
2
,
%
o5
!
ld
[
%
g2
-
16
],
%
o2
!
sll
%
o0
,
2
,
%
o0
!
ld
[
%
g3
+%
o0
],
%
o3
!
sll
%
o2
,
2
,
%
o2
!
ld
[
%
g2
],
%
o4
!
and
%
o3
,
%
l3
,
%
o3
!
ld
[
%
g3
+%
o2
],
%
o1
!
sll
%
o4
,
2
,
%
o4
!
ld
[
%
g3
+%
o5
],
%
o0
!
and
%
o1
,
%
l2
,
%
o1
!
ld
[
%
g3
+%
o4
],
%
o2
!
and
%
o0
,
255
,
%
o0
!
or
%
o0
,
%
o3
,
%
o0
!
or
%
o0
,
%
o1
,
%
o0
!
and
%
o2
,
%
l1
,
%
o2
!
or
%
o0
,
%
o2
,
%
o0
!
add
%
o7
,
1
,
%
o7
!
st
%
o0
,
[
%
l0
+%
o5
]
!
cmp
%
o7
,
3
!
bleu
.LL98
!
add
%
g2
,
4
,
%
g2
!
sethi
%
hi
(
_aes_isbox
),
%
o0
!
or
%
o0
,
%
lo
(
_aes_isbox
),
%
g3
!
mov
0
,
%
o7
!
mov
%
l5
,
%
g2
!
.LL103:
!
sll
%
o7
,
2
,
%
o5
!
ld
[
%
g2
+%
o5
],
%
o3
!
add
%
o7
,
1
,
%
o7
!
srl
%
o3
,
8
,
%
o0
!
and
%
o0
,
255
,
%
o0
!
ldub
[
%
g3
+%
o0
],
%
o4
!
srl
%
o3
,
16
,
%
o2
!
and
%
o3
,
255
,
%
o0
!
ldub
[
%
g3
+%
o0
],
%
o1
!
and
%
o2
,
255
,
%
o2
!
ldub
[
%
g3
+%
o2
],
%
o0
!
srl
%
o3
,
24
,
%
o3
!
sll
%
o4
,
8
,
%
o4
!
ldub
[
%
g3
+%
o3
],
%
o2
!
or
%
o1
,
%
o4
,
%
o1