arm-crypto-lib/bmw/bmw_small_speed.s

1995 lines
39 KiB
ArmAsm
Raw Normal View History

2012-09-18 18:29:48 +00:00
.file "bmw_small_speed.c"
.text
.align 2
.type bmw_small_f1, %function
bmw_small_f1:
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp}
ldmib r0, {r5, r6} @ phole ldm
ldr r7, [r0, #0]
ldr r8, [r0, #12]
mov r9, r5, lsr #2
mov r3, r6, lsr #2
ldr sl, [r0, #16]
eor r9, r9, r5, asl #1
eor r3, r3, r6, asl #2
mov ip, r7, lsr #1
ldr fp, [r0, #20]
eor r9, r9, r5, ror #20
eor r3, r3, r6, ror #17
eor ip, ip, r7, asl #2
mov r4, r8, lsr #1
eor r3, r3, r6, ror #3
eor r9, r9, r5, ror #7
ldr r6, [r0, #24]
eor ip, ip, r7, ror #24
eor r4, r4, r8, asl #3
mov r5, sl, lsr #1
eor ip, ip, r7, ror #9
add r9, r9, r3
ldr r7, [r0, #28]
eor r4, r4, r8, ror #28
eor r5, r5, sl, asl #2
mov r3, fp, lsr #2
eor r4, r4, r8, ror #13
add r9, r9, ip
eor r5, r5, sl, ror #24
eor r3, r3, fp, asl #1
mov ip, r6, lsr #2
eor r5, r5, sl, ror #9
add r9, r9, r4
eor r3, r3, fp, ror #20
eor ip, ip, r6, asl #2
mov r4, r7, lsr #1
ldr r8, [r0, #32]
eor r3, r3, fp, ror #7
add r9, r9, r5
eor ip, ip, r6, ror #17
eor r4, r4, r7, asl #3
ldr sl, [r0, #36]
eor ip, ip, r6, ror #3
add r9, r9, r3
ldr r6, [r0, #44]
eor r4, r4, r7, ror #28
ldr fp, [r0, #40]
eor r4, r4, r7, ror #13
mov r5, r8, lsr #1
ldr r7, [r0, #48]
add r9, r9, ip
eor r5, r5, r8, asl #2
mov r3, sl, lsr #2
add r9, r9, r4
mov r4, r6, lsr #1
eor r5, r5, r8, ror #24
eor r3, r3, sl, asl #1
mov ip, fp, lsr #2
eor r4, r4, r6, asl #3
mov r6, r7, lsr #1
eor r5, r5, r8, ror #9
eor r3, r3, sl, ror #20
ldr r8, [r0, #44]
eor ip, ip, fp, asl #2
eor r6, r6, r7, asl #2
eor r3, r3, sl, ror #7
add r9, r9, r5
eor ip, ip, fp, ror #17
eor r6, r6, r7, ror #24
ldr sl, [r0, #52]
eor ip, ip, fp, ror #3
eor r6, r6, r7, ror #9
add r9, r9, r3
ldr r7, [r0, #8]
eor r4, r4, r8, ror #28
eor r4, r4, r8, ror #13
add r9, r9, ip
mov r3, sl, lsr #2
add r9, r9, r4
mov r5, r7, lsr #2
ldr r4, [r0, #60]
ldr r7, [r0, #4]
eor r3, r3, sl, asl #1
add r9, r9, r6
ldr r6, [r0, #52]
ldr ip, [r1, #0]
ldr fp, [r0, #56]
eor r3, r3, sl, ror #20
mov sl, r4, lsr #1
mov r4, r7, lsr #1
ldr r7, .L3
sub sp, sp, #24
eor r3, r3, r6, ror #7
str r3, [sp, #0]
mov r8, fp, lsr #2
ldr r3, [r0, #60]
add r7, r7, ip, ror #31
ldr ip, [r0, #56]
eor r8, r8, fp, asl #2
ldr r6, [r0, #8]
eor r8, r8, ip, ror #17
eor sl, sl, r3, asl #3
ldr ip, [r0, #4]
ldr r3, [r0, #12]
eor r5, r5, r6, asl #1
eor r6, r4, ip, asl #2
mov ip, r3, lsr #2
ldr r3, [sp, #0]
add r9, r9, r3
ldr r3, [r0, #56]
ldr fp, [r1, #12]
eor r8, r8, r3, ror #3
ldr r3, [r0, #8]
add r7, r7, fp, ror #28
eor r5, r5, r3, ror #20
ldr fp, [r0, #60]
ldr r3, [r0, #4]
ldr r4, [r1, #40]
eor sl, sl, fp, ror #28
eor fp, r6, r3, ror #24
ldr r6, [r0, #12]
ldr r3, [r0, #16]
eor ip, ip, r6, asl #2
add r9, r9, r8
mov r6, r3, lsr #1
ldr r8, [r0, #60]
ldr r3, [r0, #8]
sub r7, r7, r4, ror #21
ldr r4, [r0, #4]
eor sl, sl, r8, ror #13
eor r5, r5, r3, ror #7
eor r8, fp, r4, ror #9
ldr r3, [r0, #16]
ldr fp, [r0, #12]
add r9, r9, sl
ldr sl, [r0, #16]
eor ip, ip, fp, ror #17
eor r6, r6, r3, asl #3
ldr fp, [r0, #20]
add r5, r5, r8
ldr r8, [r0, #12]
ldr r3, [r2, #28]
eor r6, r6, sl, ror #28
eor ip, ip, r8, ror #3
eor r6, r6, sl, ror #13
ldr r8, [r0, #24]
ldr sl, [r0, #20]
mov r4, fp, lsr #1
eor r7, r7, r3
eor r4, r4, fp, asl #2
add r9, r9, r7
mov r3, r8, lsr #2
eor r4, r4, sl, ror #24
ldr fp, [r0, #32]
ldr r7, [r0, #36]
eor r4, r4, sl, ror #9
eor r3, r3, r8, asl #1
ldr r8, [r0, #28]
str r9, [r0, #64]
ldr sl, [r0, #24]
add r5, r5, ip
add r5, r5, r6
eor r3, r3, sl, ror #20
eor r3, r3, sl, ror #7
mov ip, r8, lsr #2
add r5, r5, r4
eor ip, ip, r8, asl #2
mov r6, fp, lsr #1
add r5, r5, r3
ldr r3, [r0, #28]
eor ip, ip, r8, ror #17
eor r6, r6, fp, asl #3
eor ip, ip, r3, ror #3
mov r8, r7, lsr #1
ldr r3, [r0, #40]
eor r6, r6, fp, ror #28
eor r6, r6, fp, ror #13
eor r8, r8, r7, asl #2
add r5, r5, ip
mov sl, r3, lsr #2
eor r8, r8, r7, ror #24
add r5, r5, r6
ldr r6, [r0, #40]
ldr r4, [r1, #16]
eor r8, r8, r7, ror #9
eor sl, sl, r3, asl #1
ldr fp, [r0, #44]
ldr r3, [r1, #4]
eor sl, sl, r6, ror #20
add r5, r5, r8
ldr r6, [r0, #48]
ldr r8, [r0, #40]
mov r4, r4, ror #27
eor sl, sl, r8, ror #7
mov ip, fp, lsr #2
mov r7, r6, lsr #1
add r4, r4, r3, ror #30
ldr r3, [r0, #44]
eor ip, ip, fp, asl #2
eor r7, r7, r6, asl #3
add r5, r5, sl
ldr r6, [r0, #52]
ldr sl, [r0, #44]
eor ip, ip, r3, ror #17
ldr fp, [r0, #56]
eor ip, ip, sl, ror #3
mov r3, r6, lsr #1
add r6, r0, #48
ldmia r6, {r6, sl} @ phole ldm
ldr r8, [r0, #60]
add r5, r5, ip
ldr ip, [r0, #48]
eor r7, r7, r6, ror #28
eor r3, r3, sl, asl #2
mov r6, fp, lsr #2
add r4, r4, #1509949440
eor r7, r7, ip, ror #13
eor r3, r3, sl, ror #24
eor r6, r6, fp, asl #1
mov ip, r8, lsr #2
add r4, r4, #11141120
eor r3, r3, sl, ror #9
add r5, r5, r7
ldr sl, [r1, #44]
eor r6, r6, fp, ror #20
eor ip, ip, r8, asl #2
add r4, r4, #43520
ldr r7, [r2, #32]
eor r6, r6, fp, ror #7
add r5, r5, r3
eor ip, ip, r8, ror #17
mov r3, r9, lsr #1
add r4, r4, #165
eor ip, ip, r8, ror #3
add r5, r5, r6
sub r4, r4, sl, ror #20
eor r3, r3, r9, asl #3
eor r4, r4, r7
add r5, r5, ip
eor r3, r3, r9, ror #28
eor r3, r3, r9, ror #13
add r5, r5, r4
ldr ip, [r0, #12]
add r5, r5, r3
ldr r3, [r0, #20]
str r5, [r0, #68]
ldr r4, [r0, #8]
ldr r6, [r0, #28]
ldr r8, [r0, #16]
mov ip, ip, ror #29
ldr r7, [r0, #24]
ldr sl, [r0, #36]
add ip, ip, r3, ror #25
add r8, r8, r4
ldr r3, [r1, #20]
ldr r4, [r0, #32]
add ip, ip, r6, ror #19
ldr r6, [r0, #44]
ldr fp, [r1, #8]
add r8, r8, r7
add ip, ip, sl, ror #16
ldr r7, [r0, #40]
add r9, r0, #48
ldmia r9, {r9, sl} @ phole ldm
add r8, r8, r4
add ip, ip, r6, ror #13
ldr r4, [r0, #64]
ldr r6, [r0, #60]
mov r3, r3, ror #26
add r8, r8, r7
add ip, ip, sl, ror #9
ldr r7, [r0, #56]
ldr sl, [r1, #48]
add r3, r3, fp, ror #29
add r8, r8, r9
add ip, ip, r6, ror #5
eor r4, r4, r4, lsr #1
ldr r6, [r2, #36]
sub r3, r3, #-1610612730
add r8, r8, r7
add ip, ip, r4
sub r3, r3, sl, ror #19
eor r3, r3, r6
add ip, ip, r8
add ip, ip, r3
eor r5, r5, r5, lsr #2
add ip, ip, r5
str ip, [r0, #72]
ldr r5, [r0, #16]
ldr r4, [r0, #24]
ldr r3, [r1, #24]
ldr r6, [r0, #12]
ldr r7, [r0, #20]
mov r5, r5, ror #29
ldr r9, [r1, #12]
add r5, r5, r4, ror #25
add r4, r0, #28
ldmia r4, {r4, sl} @ phole ldm
add r7, r7, r6
mov r3, r3, ror #25
add r6, r0, #36
ldmia r6, {r6, fp} @ phole ldm
add r3, r3, r9, ror #28
add r7, r7, r4
ldr r9, [r0, #44]
add r5, r5, sl, ror #19
add r7, r7, r6
ldr sl, [r0, #48]
add r5, r5, fp, ror #16
add r7, r7, r9
add r3, r3, #1711276032
ldr r9, [r0, #56]
ldr fp, [r0, #52]
ldr r6, [r0, #64]
add r5, r5, sl, ror #13
ldr r4, [r0, #68]
sub r3, r3, #11141120
ldr sl, [r0, #60]
add r5, r5, r9, ror #9
sub r3, r3, #43520
ldr r9, [r1, #52]
add r7, r7, fp
add r5, r5, r6, ror #5
eor r4, r4, r4, lsr #1
ldr r6, [r2, #40]
sub r3, r3, #177
add r7, r7, sl
add r5, r5, r4
sub r3, r3, r9, ror #18
eor r3, r3, r6
add r5, r5, r7
add r5, r5, r3
eor ip, ip, ip, lsr #2
add r5, r5, ip
str r5, [r0, #76]
ldr ip, [r0, #20]
ldr r4, [r0, #28]
ldr r3, [r1, #28]
ldr r6, [r0, #36]
mov ip, ip, ror #29
ldr sl, [r1, #16]
add ip, ip, r4, ror #25
ldr r4, [r0, #44]
add ip, ip, r6, ror #19
mov r3, r3, ror #24
add r3, r3, sl, ror #27
add ip, ip, r4, ror #16
ldr sl, [r0, #60]
ldr r9, [r0, #68]
add ip, ip, fp, ror #13
add r3, r3, #1778384896
add ip, ip, sl, ror #9
add r3, r3, #11141120
ldr r4, [r0, #72]
add ip, ip, r9, ror #5
add r3, r3, #43520
ldr r9, [r1, #56]
ldr fp, [r0, #64]
ldr sl, [r2, #44]
ldr r6, [r0, #8]
add r3, r3, #164
sub r3, r3, r9, ror #17
eor r4, r4, r4, lsr #1
eor r3, r3, sl
rsb r6, r6, fp
add ip, ip, r4
add r6, r6, r8
add ip, ip, r3
add ip, ip, r6
eor r5, r5, r5, lsr #2
str r6, [sp, #4]
add ip, ip, r5
ldr r4, [r0, #24]
str ip, [r0, #80]
ldr r5, [r0, #32]
ldr r6, [r0, #40]
mov r4, r4, ror #29
ldr r3, [r1, #32]
add r4, r4, r5, ror #25
ldr r5, [r0, #48]
ldr r8, [r1, #20]
add r4, r4, r6, ror #19
ldr r6, [r0, #56]
add r4, r4, r5, ror #16
mov r3, r3, ror #23
ldr r9, [r1, #60]
add r4, r4, r6, ror #13
add r3, r3, r8, ror #26
ldr r5, [r0, #76]
ldr r8, [r0, #72]
ldr sl, [r2, #48]
add r4, r4, fp, ror #9
ldr r6, [r0, #12]
ldr fp, [r0, #68]
sub r3, r3, #-1879048185
add r4, r4, r8, ror #5
sub r3, r3, r9, ror #16
eor r5, r5, r5, lsr #1
eor r3, r3, sl
rsb r6, r6, fp
add r4, r4, r5
add fp, r6, r7
add r4, r4, r3
add r4, r4, fp
eor ip, ip, ip, lsr #2
add r4, r4, ip
str r4, [r0, #84]
ldr r5, [r0, #28]
ldr r3, [r1, #36]
ldr r7, [r1, #24]
ldr r6, [r0, #36]
ldr ip, [r0, #44]
mov r5, r5, ror #29
mov r3, r3, ror #22
add r5, r5, r6, ror #25
add r3, r3, r7, ror #25
ldr r6, [r0, #52]
add r5, r5, ip, ror #19
add r3, r3, #1979711488
ldr ip, [r0, #60]
add r5, r5, r6, ror #16
sub r3, r3, #11141120
ldr r6, [r0, #68]
ldr sl, [r1, #0]
ldr r8, [r0, #76]
add r5, r5, ip, ror #13
sub r3, r3, #43520
ldr ip, [r0, #80]
ldr r9, [r0, #72]
ldr r7, [r2, #52]
add r5, r5, r6, ror #9
sub r3, r3, #178
ldr r6, [r0, #16]
add r5, r5, r8, ror #5
sub r3, r3, sl, ror #31
eor ip, ip, ip, lsr #1
ldr sl, [sp, #4]
eor r3, r3, r7
rsb r6, r6, r9
add r5, r5, ip
add r6, r6, sl
add r5, r5, r3
add r5, r5, r6
eor r4, r4, r4, lsr #2
add r5, r5, r4
str r5, [r0, #88]
ldr ip, [r0, #32]
ldr r3, [r1, #40]
ldr r7, [r1, #28]
ldr r4, [r0, #40]
str r6, [sp, #8]
mov ip, ip, ror #29
ldr r6, [r0, #48]
mov r3, r3, ror #21
add ip, ip, r4, ror #25
add r3, r3, r7, ror #24
ldr r4, [r0, #56]
add ip, ip, r6, ror #19
add r3, r3, #2063597568
ldr r6, [r0, #64]
add ip, ip, r4, ror #16
sub r3, r3, #5570560
ldr sl, [r1, #4]
ldr r8, [r0, #80]
add ip, ip, r6, ror #13
ldr r4, [r0, #84]
sub r3, r3, #21760
ldr r7, [r2, #56]
ldr r6, [r0, #20]
add ip, ip, r9, ror #9
sub r3, r3, #93
ldr r9, [r0, #76]
add ip, ip, r8, ror #5
sub r3, r3, sl, ror #30
eor r4, r4, r4, lsr #1
eor r3, r3, r7
rsb r9, r6, r9
add ip, ip, r4
add r9, r9, fp
add ip, ip, r3
add ip, ip, r9
eor r5, r5, r5, lsr #2
add ip, ip, r5
ldr r4, [r0, #36]
str ip, [r0, #92]
ldr r5, [r0, #44]
ldr r6, [r0, #52]
mov r4, r4, ror #29
ldr r3, [r1, #44]
add r4, r4, r5, ror #25
ldr r5, [r0, #60]
ldr r7, [r1, #32]
add r4, r4, r6, ror #19
ldr r6, [r0, #68]
ldr r8, [r0, #76]
add r4, r4, r5, ror #16
mov r3, r3, ror #20
ldr sl, [r1, #8]
ldr fp, [r0, #80]
add r4, r4, r6, ror #13
add r3, r3, r7, ror #23
ldr r5, [r0, #88]
ldr r7, [r0, #84]
ldr r6, [r0, #24]
add r4, r4, r8, ror #9
sub r3, r3, #-2147483640
ldr r8, [r2, #60]
add r4, r4, r7, ror #5
sub r3, r3, sl, ror #29
eor r5, r5, r5, lsr #1
rsb r6, r6, fp
ldr fp, [sp, #8]
eor r3, r3, r8
add r4, r4, r5
add r6, r6, fp
add r4, r4, r3
add r4, r4, r6
eor ip, ip, ip, lsr #2
add r4, r4, ip
str r4, [r0, #96]
ldr r5, [r0, #40]
ldr r3, [r1, #48]
ldr r7, [r1, #36]
str r6, [sp, #12]
ldr r6, [r0, #48]
ldr ip, [r0, #56]
mov r5, r5, ror #29
mov r3, r3, ror #19
add r5, r5, r6, ror #25
add r3, r3, r7, ror #22
ldr r6, [r0, #64]
add r5, r5, ip, ror #19
add r3, r3, #-2063597568
ldr ip, [r0, #72]
add r5, r5, r6, ror #16
add r3, r3, #5570560
ldr r6, [r0, #80]
ldr sl, [r1, #12]
ldr r8, [r0, #88]
add r5, r5, ip, ror #13
add r3, r3, #21760
ldr ip, [r0, #92]
ldr fp, [r0, #84]
ldr r7, [r2, #0]
add r5, r5, r6, ror #9
add r3, r3, #77
ldr r6, [r0, #28]
add r5, r5, r8, ror #5
sub r3, r3, sl, ror #28
eor ip, ip, ip, lsr #1
eor r3, r3, r7
rsb r6, r6, fp
add r5, r5, ip
add r6, r6, r9
add r5, r5, r3
add r5, r5, r6
eor r4, r4, r4, lsr #2
add r5, r5, r4
str r5, [r0, #100]
ldr ip, [r0, #44]
ldr r3, [r1, #52]
ldr r4, [r0, #52]
ldr r7, [r1, #40]
str r6, [sp, #16]
mov ip, ip, ror #29
ldr r6, [r0, #60]
add ip, ip, r4, ror #25
mov r3, r3, ror #18
ldr r4, [r0, #68]
add r3, r3, r7, ror #21
add ip, ip, r6, ror #19
ldr r6, [r0, #76]
add ip, ip, r4, ror #16
add r3, r3, #-1979711488
ldr r8, [r0, #92]
add ip, ip, r6, ror #13
ldr r4, [r0, #96]
add r3, r3, #11141120
ldr sl, [r1, #16]
add ip, ip, fp, ror #9
add r3, r3, #43520
ldr r7, [r2, #4]
ldr r6, [r0, #32]
ldr r9, [r0, #88]
add ip, ip, r8, ror #5
eor r4, r4, r4, lsr #1
add r3, r3, #162
sub r3, r3, sl, ror #27
add ip, ip, r4
ldr r4, [sp, #12]
eor r3, r3, r7
rsb r9, r6, r9
add r9, r9, r4
add ip, ip, r3
add ip, ip, r9
eor r5, r5, r5, lsr #2
add ip, ip, r5
ldr r4, [r0, #48]
str ip, [r0, #104]
ldr r5, [r0, #56]
ldr r6, [r0, #64]
mov r4, r4, ror #29
ldr r3, [r1, #56]
add r4, r4, r5, ror #25
ldr r5, [r0, #72]
ldr r7, [r1, #44]
add r4, r4, r6, ror #19
ldr r6, [r0, #80]
ldr r8, [r0, #88]
add r4, r4, r5, ror #16
mov r3, r3, ror #17
add r4, r4, r6, ror #13
add r3, r3, r7, ror #20
ldr r5, [r0, #100]
ldr r7, [r0, #96]
ldr sl, [r1, #20]
add r4, r4, r8, ror #9
ldr fp, [r0, #92]
ldr r8, [r2, #8]
ldr r6, [r0, #36]
add r4, r4, r7, ror #5
eor r5, r5, r5, lsr #1
sub r3, r3, #1879048201
sub r3, r3, sl, ror #26
add r4, r4, r5
ldr r5, [sp, #16]
eor r3, r3, r8
rsb r6, r6, fp
add r6, r6, r5
add r4, r4, r3
add r4, r4, r6
eor ip, ip, ip, lsr #2
add r4, r4, ip
str r4, [r0, #108]
ldr r5, [r0, #52]
ldr r3, [r1, #60]
ldr r7, [r1, #48]
str r6, [sp, #20]
ldr r6, [r0, #60]
ldr ip, [r0, #68]
mov r5, r5, ror #29
mov r3, r3, ror #16
add r5, r5, r6, ror #25
add r3, r3, r7, ror #19
ldr r6, [r0, #76]
add r5, r5, ip, ror #19
add r3, r3, #-1795162112
ldr ip, [r0, #84]
add r5, r5, r6, ror #16
add r3, r3, #5570560
ldr sl, [r1, #24]
ldr r8, [r0, #100]
add r5, r5, ip, ror #13
add r3, r3, #21760
ldr ip, [r0, #104]
ldr r7, [r2, #12]
add r5, r5, fp, ror #9
ldr r6, [r0, #40]
ldr fp, [r0, #96]
add r3, r3, #76
add r5, r5, r8, ror #5
sub r3, r3, sl, ror #25
eor ip, ip, ip, lsr #1
eor r3, r3, r7
rsb r6, r6, fp
add r5, r5, ip
add fp, r6, r9
add r5, r5, r3
eor r4, r4, r4, lsr #2
ldr ip, [r0, #56]
add r5, r5, fp
add r5, r5, r4
ldr r3, [r0, #64]
str r5, [r0, #112]
ldr r4, [r0, #72]
mov ip, ip, ror #29
ldr r6, [r0, #80]
add ip, ip, r3, ror #25
ldr r7, [r1, #0]
add ip, ip, r4, ror #19
ldr r3, .L3+4
ldr r4, [r0, #88]
ldr sl, [r1, #52]
add ip, ip, r6, ror #16
ldr r6, [r0, #96]
ldr r9, [r1, #28]
add ip, ip, r4, ror #13
add r3, r3, r7, ror #31
ldr r4, [r0, #108]
ldr r7, [r0, #104]
ldr r8, [r2, #16]
add ip, ip, r6, ror #9
add r3, r3, sl, ror #18
ldr r6, [r0, #44]
ldr sl, [r0, #100]
add ip, ip, r7, ror #5
sub r3, r3, r9, ror #24
ldr r7, [sp, #20]
eor r4, r4, r4, lsr #1
rsb r6, r6, sl
eor r3, r3, r8
add ip, ip, r4
add r9, r6, r7
add ip, ip, r3
ldr r4, [r0, #68]
ldr r3, [r0, #60]
eor r5, r5, r5, lsr #2
add ip, ip, r9
add ip, ip, r5
ldr r6, [r0, #104]
mov r4, r4, ror #25
str ip, [r0, #116]
add r4, r4, r3, ror #29
ldr r5, [r0, #76]
add r4, r4, r6
ldr r7, [r0, #84]
ldr r3, [r1, #4]
add r4, r4, r5, ror #19
ldr r5, [r0, #92]
ldr r8, [r1, #56]
add r4, r4, r7, ror #16
add r4, r4, r5, ror #13
ldr r7, [r0, #108]
mov r3, r3, ror #30
add r4, r4, sl, ror #9
add r3, r3, r8, ror #17
ldr sl, [r1, #32]
ldr r6, [r0, #48]
ldr r5, [r0, #112]
add r4, r4, r7, ror #5
sub r3, r3, #1610612746
ldr r7, [r2, #20]
rsb r4, r6, r4
eor r5, r5, r5, lsr #1
sub r3, r3, sl, ror #23
eor r3, r3, r7
add r4, r4, r5
add r4, r4, r3
eor ip, ip, ip, lsr #2
add r4, r4, fp
add r4, r4, ip
str r4, [r0, #120]
ldr r3, [r0, #72]
ldr r5, [r0, #64]
ldr ip, [r1, #8]
ldr r6, [r0, #108]
mov r3, r3, ror #25
ldr r8, [r1, #60]
add r3, r3, r5, ror #29
ldr r7, [r0, #80]
add r3, r3, r6
ldr r5, [r0, #88]
mov ip, ip, ror #29
add r3, r3, r7, ror #19
add ip, ip, r8, ror #16
ldr r6, [r0, #96]
add r3, r3, r5, ror #16
add ip, ip, #-1526726656
ldr r5, [r0, #104]
add r3, r3, r6, ror #13
add ip, ip, #5570560
ldr r6, [r0, #112]
ldr r8, [r1, #36]
add r3, r3, r5, ror #9
add ip, ip, #21760
ldr r1, [r0, #116]
ldr r5, [r0, #52]
ldr r7, [r2, #24]
add r3, r3, r6, ror #5
add ip, ip, #75
rsb r3, r5, r3
sub ip, ip, r8, ror #22
eor r1, r1, r1, lsr #1
add r3, r3, r1
eor ip, ip, r7
add r3, r3, ip
add r3, r3, r9
eor r4, r4, r4, lsr #2
add r3, r3, r4
str r3, [r0, #124]
add sp, sp, #24
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp}
bx lr
.L4:
.align 2
.L3:
.word 1431655760
.word -1700091231
.size bmw_small_f1, .-bmw_small_f1
.align 2
.global bmw_small_f0
.type bmw_small_f0, %function
bmw_small_f0:
@ args = 0, pretend = 0, frame = 84
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp}
ldr r3, [r1, #28]
ldr r7, [r2, #28]
sub sp, sp, #84
ldr fp, [r2, #20]
ldr r9, [r2, #40]
ldr sl, [r2, #52]
ldr r4, [r1, #52]
eor r3, r7, r3
ldr r6, [r1, #20]
ldr r5, [r1, #40]
ldr r8, [r2, #56]
str r3, [sp, #76]
ldr ip, [r1, #56]
eor sl, sl, r4
eor r5, r9, r5
eor r6, fp, r6
ldr r4, [sp, #76]
ldr r9, [r2, #32]
str r5, [sp, #72]
eor ip, r8, ip
add r3, r5, r6
ldr r5, [r1, #32]
rsb r8, r4, ip
add r3, r3, sl
add r3, r3, r8
eor r5, r9, r5
str r5, [sp, #56]
str r6, [sp, #68]
ldr r5, [r1, #4]
ldr r6, [r2, #4]
str ip, [sp, #80]
mov ip, r3, lsr #1
eor ip, ip, r3, asl #3
eor r6, r5, r6
eor ip, ip, r3, ror #28
str r6, [sp, #44]
eor ip, ip, r3, ror #13
ldr r7, [r2, #0]
ldr r4, [r1, #0]
ldr r6, [sp, #56]
str ip, [sp, #4]
ldr r3, [sp, #44]
ldr ip, [sp, #72]
eor r7, r7, r4
ldr r5, [r1, #16]
add r4, r6, sl
add r6, ip, r3
ldr ip, [r2, #16]
eor r5, ip, r5
ldr r3, [sp, #4]
str r5, [sp, #48]
ldr r5, [r1, #4]
ldr fp, [r2, #44]
add ip, r3, r5
ldr r3, [r1, #44]
eor fp, fp, r3
ldr r9, [r1, #12]
str fp, [sp, #64]
add r3, r2, #8
ldmia r3, {r3, r5} @ phole ldm
eor fp, r5, r9
ldr r5, [r1, #8]
str r3, [sp, #40]
ldr r3, [r2, #24]
str r5, [sp, #36]
ldr r5, [r1, #24]
str r3, [sp, #32]
ldr r3, [r2, #36]
str r5, [sp, #28]
ldr r5, [r1, #36]
str r3, [sp, #24]
ldr r3, [r2, #48]
ldr r9, [r2, #60]
str r5, [sp, #20]
ldr r2, [r1, #60]
ldr r5, [r1, #48]
add r4, r4, r7
rsb r4, r6, r4
str r3, [sp, #16]
ldr r3, [sp, #48]
str ip, [r0, #0]
str r5, [sp, #12]
str r2, [sp, #8]
ldr r5, [sp, #64]
mov r2, r4, lsr #2
rsb ip, r7, r3
eor r2, r2, r4, asl #2
rsb r3, r5, sl
rsb ip, fp, ip
ldr r5, [r1, #16]
eor r2, r2, r4, ror #17
add ip, ip, r3
eor r2, r2, r4, ror #3
add r2, r2, r5
mov r3, ip, lsr #1
str r2, [r0, #12]
eor r3, r3, ip, asl #2
eor r3, r3, ip, ror #24
ldr r2, [r1, #28]
ldr r4, [sp, #28]
eor r3, r3, ip, ror #9
ldr ip, [sp, #32]
add r3, r3, r2
eor ip, ip, r4
rsb r2, fp, ip
str ip, [sp, #52]
str r3, [r0, #24]
ldr ip, [sp, #20]
ldr r5, [sp, #24]
add r8, r8, r2
eor r5, r5, ip
ldr r3, [r1, #40]
add r8, r8, r7
rsb r6, r5, r6
eor r8, r8, r8, lsr #1
rsb r6, r2, r6
add r8, r8, r3
str r5, [sp, #60]
mov r2, r6, lsr #2
str r8, [r0, #36]
ldr r3, [sp, #16]
ldr r4, [sp, #12]
eor r2, r2, r6, asl #1
eor r8, r3, r4
ldr r5, [sp, #52]
ldr r3, [r1, #52]
ldr ip, [sp, #60]
eor r2, r2, r6, ror #20
eor r2, r2, r6, ror #7
rsb sl, r5, sl
add r2, r2, r3
rsb r5, ip, r8
ldr r3, [sp, #48]
add r4, sl, r5
ldr r6, [sp, #8]
rsb r4, r3, r4
str r2, [r0, #48]
eor r9, r9, r6
mov r3, r4, lsr #1
ldr r6, [sp, #76]
eor r3, r3, r4, asl #3
ldr r2, [r1, #0]
add ip, r9, r6
eor r3, r3, r4, ror #28
eor r3, r3, r4, ror #13
add ip, ip, r7
rsb ip, r5, ip
add r3, r3, r2
str r3, [r0, #60]
ldr r4, [sp, #36]
ldr r3, [sp, #40]
mov r2, ip, lsr #2
eor r2, r2, ip, asl #1
eor r6, r3, r4
eor r2, r2, ip, ror #20
rsb r5, r6, r9
rsb fp, r8, fp
eor r2, r2, ip, ror #7
ldr ip, [sp, #72]
ldr r3, [r1, #12]
add r4, r5, fp
add r4, r4, ip
add r2, r2, r3
mov r3, r4, lsr #1
eor r3, r3, r4, asl #3
eor r3, r3, r4, ror #28
str r3, [sp, #0]
ldr r3, [sp, #68]
str r2, [r0, #8]
rsb ip, r3, #0
ldr r3, [sp, #0]
ldr r2, [r1, #24]
eor r4, r3, r4, ror #13
add r3, r4, r2
add sl, ip, sl
rsb sl, r5, sl
str r3, [r0, #20]
ldr r5, [sp, #56]
ldr r3, [sp, #68]
mov r2, sl, lsr #2
rsb r4, r3, r5
ldr r5, [sp, #60]
eor r2, r2, sl, asl #2
ldr r3, [r1, #36]
rsb r7, r7, r5
eor r2, r2, sl, ror #17
add r7, r7, r4
eor r2, r2, sl, ror #3
rsb r7, r6, r7
add r2, r2, r3
str r2, [r0, #32]
mov r3, r7, lsr #1
eor r3, r3, r7, asl #2
ldr r2, [r1, #48]
eor r3, r3, r7, ror #24
eor r3, r3, r7, ror #9
add r3, r3, r2
ldr r7, [sp, #64]
ldr r5, [sp, #80]
str r3, [r0, #44]
add r3, r4, fp
rsb r2, r7, r3
add r4, r5, r7
ldr r7, [sp, #56]
add r9, r9, r7
ldr r7, [sp, #52]
ldr r3, [r1, #60]
eor r5, r2, r2, lsr #1
add r2, r4, r7
add r3, r5, r3
rsb r5, r9, r2
str r3, [r0, #56]
mov r3, r5, lsr #1
eor r3, r3, r5, asl #2
ldr r2, [r1, #8]
eor r3, r3, r5, ror #24
eor r3, r3, r5, ror #9
add r3, r3, r2
str r3, [r0, #4]
ldr r3, [sp, #44]
ldr r5, [sp, #60]
add r2, r6, r3
ldr r7, [sp, #80]
add r2, r2, r5
rsb ip, r7, ip
rsb r2, r4, r2
ldr r4, [sp, #48]
add ip, ip, r3
rsb ip, r4, ip
ldr r3, [r1, #20]
rsb ip, r8, ip
eor r2, r2, r2, lsr #1
add r2, r2, r3
mov r3, ip, lsr #2
eor r3, r3, ip, asl #1
str r2, [r0, #16]
eor r3, r3, ip, ror #20
ldr r5, [sp, #76]
eor r3, r3, ip, ror #7
ldr ip, [sp, #44]
ldr r2, [r1, #32]
rsb r9, ip, r9
mov r7, r4
add r4, r5, r4
rsb r9, r4, r9
add r3, r3, r2
str r3, [r0, #28]
mov r2, r9, lsr #1
ldr r3, [sp, #64]
eor r2, r2, r9, asl #3
ldr r5, [sp, #72]
add ip, r3, r6
eor r2, r2, r9, ror #28
ldr r3, [r1, #44]
eor r2, r2, r9, ror #13
add r6, ip, r5
add r6, r6, r4
add r2, r2, r3
str r2, [r0, #40]
mov r3, r6, lsr #2
eor r3, r3, r6, asl #2
ldr r2, [r1, #56]
eor r3, r3, r6, ror #17
eor r3, r3, r6, ror #3
add r3, r3, r2
str r3, [r0, #52]
add sp, sp, #84
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp}
bx lr
.size bmw_small_f0, .-bmw_small_f0
.align 2
.global bmw224_init
.type bmw224_init, %function
bmw224_init:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, #65536
add r3, r3, #512
add r3, r3, #3
str r3, [r0, #0]
mov r2, r0
add r1, r0, #60
.L8:
ldr r3, [r2, #0]
add r3, r3, #67108864
add r3, r3, #262144
add r3, r3, #1024
add r3, r3, #4
str r3, [r2, #4]!
cmp r2, r1
bne .L8
mov r3, #0
str r3, [r0, #64]
bx lr
.size bmw224_init, .-bmw224_init
.align 2
.global bmw256_init
.type bmw256_init, %function
bmw256_init:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L16
str r3, [r0, #0]
mov r2, r0
add r1, r0, #60
.L13:
ldr r3, [r2, #0]
add r3, r3, #67108864
add r3, r3, #262144
add r3, r3, #1024
add r3, r3, #4
str r3, [r2, #4]!
cmp r2, r1
bne .L13
mov r3, #0
str r3, [r0, #64]
bx lr
.L17:
.align 2
.L16:
.word 1078018627
.size bmw256_init, .-bmw256_init
.align 2
.global bmw256_ctx2hash
.type bmw256_ctx2hash, %function
bmw256_ctx2hash:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
add r1, r1, #32
mov r2, #32
b memcpy
.size bmw256_ctx2hash, .-bmw256_ctx2hash
.align 2
.global bmw224_ctx2hash
.type bmw224_ctx2hash, %function
bmw224_ctx2hash:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
add r1, r1, #36
mov r2, #28
b memcpy
.size bmw224_ctx2hash, .-bmw224_ctx2hash
.align 2
.global bmw_small_nextBlock
.type bmw_small_nextBlock, %function
bmw_small_nextBlock:
@ args = 0, pretend = 0, frame = 192
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #192
mov r7, r0
mov r8, r1
add r4, sp, #64
mov r0, r4
mov r1, r7
mov r2, r8
bl bmw_small_f0
mov r0, r4
mov r1, r8
mov r2, r7
bl bmw_small_f1
add r1, sp, #128
ldmia r1, {r1, r2, r3, ip} @ phole ldm
str ip, [sp, #48]
ldr lr, [sp, #168]
eor ip, r1, r2
str r1, [sp, #60]
ldr r1, [sp, #144]
str r2, [sp, #56]
ldr r2, [sp, #172]
str lr, [sp, #28]
str r1, [sp, #44]
str r3, [sp, #52]
ldr r1, [sp, #176]
eor ip, ip, r3
ldr r3, [sp, #48]
ldr fp, [sp, #164]
str r2, [sp, #24]
ldr lr, [sp, #148]
ldr r2, [sp, #28]
str r1, [sp, #20]
eor ip, ip, r3
ldr r1, [sp, #152]
ldr r3, [sp, #44]
str lr, [sp, #40]
eor r0, r2, fp
ldr lr, [sp, #24]
ldr r2, [sp, #180]
str r1, [sp, #36]
eor ip, ip, r3
ldr r1, [sp, #184]
ldr r3, [sp, #40]
str r2, [sp, #16]
eor r0, r0, lr
ldr lr, [sp, #20]
eor ip, ip, r3
str r1, [sp, #12]
ldr r3, [sp, #16]
ldr r1, [sp, #188]
eor r0, r0, lr
ldr r2, [sp, #36]
ldr lr, [sp, #156]
eor r0, r0, r3
str r1, [sp, #8]
ldr r3, [sp, #12]
eor ip, ip, r2
eor r0, r0, r3
ldr r2, [sp, #160]
eor ip, ip, lr
ldr r9, [r8, #0]
eor r0, r0, r1
add r1, sp, #60
ldmia r1, {r1, r3} @ phole ldm
str r2, [sp, #32]
eor r2, ip, r2
eor r0, r0, r2
eor r9, r9, r1, lsr #5
eor r2, r2, r3
eor r9, r9, r0, asl #5
add r9, r9, r2
str r9, [r7, #0]
ldr r3, [sp, #68]
ldr sl, [r8, #4]
ldr r2, [sp, #56]
eor r3, r3, fp
eor sl, sl, r2, asl #8
eor r3, r3, ip
eor sl, sl, r0, lsr #7
add sl, sl, r3
str sl, [r7, #4]
ldr r3, [sp, #72]
ldr r1, [sp, #28]
ldr r2, [r8, #8]
eor r3, r3, r1
ldr r1, [sp, #52]
eor r2, r2, r1, asl #5
eor r2, r2, r0, lsr #5
eor r3, r3, ip
add r3, r2, r3
str r3, [r7, #8]
ldr r1, [sp, #24]
str r3, [sp, #4]
ldr r3, [sp, #76]
ldr r2, [r8, #12]
eor r3, r3, r1
ldr r1, [sp, #48]
eor r2, r2, r1, asl #5
eor r2, r2, r0, lsr #1
eor r3, r3, ip
add r3, r2, r3
str r3, [r7, #12]
ldr r2, [sp, #20]
str r3, [sp, #0]
ldr r3, [sp, #80]
ldr r1, [r8, #16]
eor r3, r3, r2
ldr r2, [sp, #44]
eor r1, r1, r2
eor r3, r3, ip
eor r1, r1, r0, lsr #3
add r1, r1, r3
str r1, [r7, #16]
ldr r3, [sp, #84]
ldr r2, [sp, #16]
ldr r4, [r8, #20]
eor r3, r3, r2
ldr r2, [sp, #40]
eor r4, r4, r2, lsr #6
eor r3, r3, ip
eor r4, r4, r0, asl #6
add r4, r4, r3
str r4, [r7, #20]
ldr r3, [sp, #36]
ldr r5, [r8, #24]
ldr r2, [sp, #12]
eor r5, r5, r3, asl #6
ldr r3, [sp, #88]
eor r3, r3, r2
eor r3, r3, ip
eor r5, r5, r0, lsr #4
add r5, r5, r3
str r5, [r7, #24]
ldr r6, [r8, #28]
ldr r3, [sp, #92]
ldr r2, [sp, #8]
eor r6, r6, lr, asl #2
eor r3, r3, r2
eor r3, r3, ip
eor r6, r6, r0, lsr #11
add r6, r6, r3
str r6, [r7, #28]
ldr r3, [sp, #96]
ldr r2, [r8, #32]
eor r3, r3, lr
ldr lr, [sp, #32]
eor r3, r3, ip, asl #8
eor r2, r2, lr
add r3, r3, r1, ror #23
eor r2, r2, r0
add r3, r3, r2
str r3, [r7, #32]
ldr r3, [sp, #100]
ldr r1, [sp, #60]
ldr r2, [r8, #36]
eor r3, r3, r1
eor r3, r3, ip, lsr #6
eor r2, r2, fp
eor r2, r2, r0
add r3, r3, r4, ror #22
add r3, r3, r2
str r3, [r7, #36]
ldr r3, [sp, #104]
ldr lr, [sp, #56]
ldr r2, [r8, #40]
ldr r1, [sp, #28]
eor r3, r3, lr
eor r2, r2, r1
eor r3, r3, ip, asl #6
eor r2, r2, r0
add r3, r3, r5, ror #21
add r3, r3, r2
str r3, [r7, #40]
ldr r3, [sp, #108]
ldr lr, [sp, #52]
ldr r2, [r8, #44]
ldr r1, [sp, #24]
eor r3, r3, lr
eor r2, r2, r1
eor r3, r3, ip, asl #4
eor r2, r2, r0
add r3, r3, r6, ror #20
add r3, r3, r2
str r3, [r7, #44]
ldr r3, [sp, #112]
ldr lr, [sp, #48]
ldr r2, [r8, #48]
ldr r1, [sp, #20]
eor r3, r3, lr
eor r2, r2, r1
eor r3, r3, ip, lsr #3
eor r2, r2, r0
add r3, r3, r9, ror #19
add r3, r3, r2
str r3, [r7, #48]
ldr r3, [sp, #116]
ldr lr, [sp, #44]
ldr r2, [r8, #52]
ldr r1, [sp, #16]
eor r3, r3, lr
eor r2, r2, r1
eor r3, r3, ip, lsr #4
eor r2, r2, r0
add r3, r3, sl, ror #18
add r3, r3, r2
str r3, [r7, #52]
ldr lr, [sp, #40]
ldr r3, [sp, #120]
ldr r1, [sp, #12]
ldr r2, [r8, #56]
eor r3, r3, lr
ldr lr, [sp, #4]
eor r2, r2, r1
eor r3, r3, ip, lsr #7
add r3, r3, lr, ror #17
eor r2, r2, r0
add r3, r3, r2
str r3, [r7, #56]
ldr r3, [sp, #124]
ldr r2, [sp, #36]
eor r3, r3, r2
ldr r1, [r8, #60]
eor r3, r3, ip, lsr #2
ldr ip, [sp, #8]
ldr lr, [sp, #0]
ldr r2, [r7, #64]
eor r1, r1, ip
add r3, r3, lr, ror #16
eor r1, r1, r0
add r3, r3, r1
add r2, r2, #1
str r2, [r7, #64]
str r3, [r7, #60]
add sp, sp, #192
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.size bmw_small_nextBlock, .-bmw_small_nextBlock
.align 2
.global bmw224_nextBlock
.type bmw224_nextBlock, %function
bmw224_nextBlock:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b bmw_small_nextBlock
.size bmw224_nextBlock, .-bmw224_nextBlock
.align 2
.global bmw256_nextBlock
.type bmw256_nextBlock, %function
bmw256_nextBlock:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b bmw_small_nextBlock
.size bmw256_nextBlock, .-bmw256_nextBlock
.align 2
.global bmw_small_lastBlock
.type bmw_small_lastBlock, %function
bmw_small_lastBlock:
@ args = 0, pretend = 0, frame = 400
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r2, r2, asl #16
mov ip, #508
mov r4, r2, lsr #16
add ip, ip, #3
cmp r4, ip
sub sp, sp, #400
mov fp, r0
mov r8, r1
bls .L29
mov r7, ip
mov r6, r1
mov r5, r4
.L30:
mov r1, r6
mov r0, fp
bl bmw_small_nextBlock
sub r3, r5, #512
mov r3, r3, asl #16
mov r5, r3, lsr #16
cmp r5, r7
add r6, r6, #64
bhi .L30
sub r2, r4, #512
mov r2, r2, asl #16
mov r3, r2, lsr #25
add r3, r3, #1
mov r2, r2, lsr #16
mov r3, r3, asl #6
mov r4, r2, asl #23
add r8, r8, r3
mov r4, r4, lsr #23
.L29:
add r9, sp, #336
mov r1, #0
mov r2, #64
mov r0, r9
bl memset
add r2, r4, #7
mov r1, r8
mov r2, r2, asr #3
mov r0, r9
bl memcpy
add r0, sp, #400
add ip, r0, r4, lsr #3
ldrb r2, [ip, #-64] @ zero_extendqisi2
and r1, r4, #7
mov r3, #128
orr r2, r2, r3, asr r1
cmp r4, #448
strb r2, [ip, #-64]
bge .L37
add r2, sp, #348
add r3, sp, #352
add r7, sp, #356
add r8, sp, #360
add ip, sp, #364
str r2, [sp, #12]
str r3, [sp, #8]
str r7, [sp, #4]
str r8, [sp, #20]
str ip, [sp, #16]
ldr r1, [fp, #64]
add r5, sp, #340
add r6, sp, #344
.L31:
mov r2, #512
mov r3, r4
mov r4, #0
umlal r3, r4, r2, r1
mov r0, fp
mov r1, r9
str r3, [r9, #56]
str r4, [r9, #60]
bl bmw_small_nextBlock
mov r2, #64
mov r0, r9
mov r1, #170
bl memset
mov r2, #0
mov r3, #160
.L32:
strb r3, [r9, r2]
add r2, r2, #4
add r3, r3, #1
cmp r2, #64
and r3, r3, #255
bne .L32
add r4, sp, #208
mov r0, r4
mov r1, r9
mov r2, fp
bl bmw_small_f0
mov r0, r4
mov r1, fp
mov r2, r9
bl bmw_small_f1
add r8, sp, #272
ldmia r8, {r8, ip, lr} @ phole ldm
add r2, sp, #308
ldmia r2, {r2, r3} @ phole ldm
eor r1, ip, r8
str ip, [sp, #200]
ldr ip, [sp, #292]
ldr r0, [sp, #284]
str r8, [sp, #204]
ldr r8, [sp, #316]
ldr r7, [sp, #288]
str ip, [sp, #184]
str lr, [sp, #196]
eor ip, r3, r2
eor r1, r1, lr
ldr lr, [sp, #320]
str r2, [sp, #172]
eor r1, r1, r0
ldr r2, [sp, #324]
eor ip, ip, r8
str r3, [sp, #168]
str r7, [sp, #188]
ldr r3, [sp, #184]
eor r1, r1, r7
eor ip, ip, lr
ldr r7, [sp, #328]
eor ip, ip, r2
eor r1, r1, r3
str r7, [sp, #152]
eor ip, ip, r7
ldr r3, [fp, #0]
ldr r7, [sp, #204]
str r0, [sp, #192]
str r8, [sp, #164]
ldr r0, [sp, #296]
ldr r8, [sp, #332]
str lr, [sp, #160]
add sl, sp, #300
ldmia sl, {sl, lr} @ phole ldm
eor r3, r3, r7, lsr #5
str r0, [sp, #180]
str r2, [sp, #156]
eor r1, r1, r0
ldr r2, [fp, #4]
str r8, [sp, #148]
str lr, [sp, #176]
eor ip, ip, r8
str r3, [sp, #144]
ldr r8, [sp, #200]
eor r1, r1, sl
eor r0, r1, lr
ldr r3, [sp, #172]
eor lr, r2, r8, asl #8
ldr r2, [sp, #212]
ldr r7, [sp, #144]
eor r2, r3, r2
ldr r3, [sp, #208]
eor ip, ip, r0
eor r7, r7, ip, asl #5
eor r0, r0, r3
eor r2, r2, r1
eor r3, lr, ip, lsr #7
add r0, r7, r0
add r2, r3, r2
str r0, [r9, #0]
str r2, [r5, #0]
ldr r8, [fp, #8]
ldr r3, [sp, #216]
ldr lr, [sp, #168]
str r0, [sp, #136]
ldr r0, [sp, #196]
eor r3, lr, r3
eor r8, r8, r0, asl #5
eor r3, r3, r1
eor r8, r8, ip, lsr #5
add r8, r8, r3
str r8, [r6, #0]
ldr r7, [fp, #12]
ldr r3, [sp, #220]
ldr r5, [sp, #192]
str r2, [sp, #132]
ldr r2, [sp, #164]
eor r7, r7, r5, asl #5
eor r3, r2, r3
eor r3, r3, r1
ldr lr, [sp, #12]
eor r7, r7, ip, lsr #1
add r7, r7, r3
str r7, [lr, #0]
ldr r6, [fp, #16]
ldr r3, [sp, #224]
ldr r0, [sp, #160]
ldr r2, [sp, #188]
eor r3, r0, r3
eor r6, r2, r6
eor r3, r3, r1
eor r6, r6, ip, lsr #3
add r6, r6, r3
ldr r3, [sp, #8]
str r6, [r3, #0]
ldr r5, [fp, #20]
ldr lr, [sp, #184]
ldr r3, [sp, #228]
ldr r0, [sp, #156]
eor r5, r5, lr, lsr #6
eor r3, r0, r3
eor r3, r3, r1
ldr r2, [sp, #4]
eor r5, r5, ip, asl #6
add r5, r5, r3
str r5, [r2, #0]
ldr lr, [sp, #152]
ldr r0, [sp, #180]
ldr r4, [fp, #24]
ldr r3, [sp, #232]
eor r4, r4, r0, asl #6
eor r3, lr, r3
eor r3, r3, r1
eor r4, r4, ip, lsr #4
ldr r2, [sp, #20]
add r4, r4, r3
str r4, [r2, #0]
ldr r0, [fp, #28]
ldr r3, [sp, #236]
ldr lr, [sp, #148]
eor r0, r0, sl, asl #2
eor r3, lr, r3
eor r3, r3, r1
ldr r2, [sp, #16]
eor r0, r0, ip, lsr #11
add r0, r0, r3
str r0, [r2, #0]
ldr r3, [sp, #240]
ldr r2, [sp, #244]
eor sl, sl, r3
ldr r3, [sp, #204]
ldr lr, [sp, #200]
eor r2, r3, r2
ldr r3, [sp, #248]
eor r3, lr, r3
str r2, [sp, #124]
str r3, [sp, #112]
ldr r2, [sp, #252]
ldr r3, [sp, #196]
ldr lr, [sp, #192]
eor r2, r3, r2
ldr r3, [sp, #256]
eor r3, lr, r3
str r2, [sp, #100]
str r3, [sp, #88]
ldr r2, [sp, #260]
ldr r3, [sp, #188]
ldr lr, [sp, #184]
eor r2, r3, r2
ldr r3, [sp, #264]
eor r3, lr, r3
str r2, [sp, #72]
str r3, [sp, #52]
ldr r2, [sp, #268]
ldr r3, [sp, #180]
eor lr, r3, r2
ldr r3, [fp, #32]
ldr r2, [sp, #176]
eor r2, r2, r3
str r2, [sp, #128]
ldr r3, [fp, #36]
ldr r2, [sp, #172]
eor r2, r2, r3
str r2, [sp, #116]
ldr r3, [fp, #40]
ldr r2, [sp, #168]
eor r2, r2, r3
str r2, [sp, #104]
ldr r3, [fp, #44]
ldr r2, [sp, #164]
eor r2, r2, r3
str r2, [sp, #92]
ldr r3, [fp, #48]
ldr r2, [sp, #160]
eor r2, r2, r3
str r2, [sp, #76]
ldr r3, [fp, #52]
ldr r2, [sp, #156]
eor r2, r2, r3
str r2, [sp, #60]
ldr r3, [fp, #56]
ldr r2, [sp, #152]
eor lr, lr, r1, lsr #2
eor r2, r2, r3
str r2, [sp, #44]
str lr, [sp, #36]
ldr r2, [fp, #60]
ldr lr, [sp, #148]
ldr r3, [sp, #124]
eor lr, lr, r2
ldr r2, [sp, #112]
str lr, [sp, #28]
eor lr, r3, r1, lsr #6
ldr r3, [sp, #100]
eor r2, r2, r1, asl #6
str r2, [sp, #0]
eor r2, r3, r1, asl #4
ldr r3, [sp, #88]
eor r3, r3, r1, lsr #3
str r3, [sp, #84]
ldr r3, [sp, #72]
eor r3, r3, r1, lsr #4
str r3, [sp, #68]
ldr r3, [sp, #52]
add lr, lr, r5, ror #22
add r2, r2, r0, ror #20
ldr r5, [sp, #0]
ldr r0, [sp, #136]
eor sl, sl, r1, asl #8
str lr, [sp, #120]
eor r1, r3, r1, lsr #7
str r2, [sp, #96]
ldr r3, [sp, #132]
ldr lr, [sp, #84]
ldr r2, [sp, #68]
add r4, r5, r4, ror #21
add lr, lr, r0, ror #19
add r2, r2, r3, ror #18
str r4, [sp, #108]
str lr, [sp, #80]
str r2, [sp, #64]
ldr r5, [sp, #36]
add r7, r5, r7, ror #16
str r7, [sp, #32]
ldr r7, [sp, #28]
add r1, r1, r8, ror #17
ldr r0, [sp, #116]
ldr r8, [sp, #128]
ldr r2, [sp, #104]
ldr r3, [sp, #92]
eor r7, r7, ip
str r7, [sp, #24]
eor lr, r8, ip
eor r5, r0, ip
eor r8, r3, ip
eor r7, r2, ip
ldr r0, [sp, #76]
ldr r3, [sp, #44]
ldr r2, [sp, #60]
add sl, sl, r6, ror #23
eor r2, r2, ip
eor r6, r0, ip
add sl, sl, lr
eor ip, r3, ip
ldr lr, [sp, #108]
str ip, [sp, #40]
str r1, [sp, #48]
str r2, [sp, #56]
ldr ip, [sp, #120]
add r7, lr, r7
mov r4, r9
ldmia r4!, {r0, r1, r2, r3}
str r7, [r9, #40]
ldr r7, [sp, #96]
add r5, ip, r5
ldr lr, [sp, #56]
ldr ip, [sp, #64]
str r5, [r9, #36]
add r5, r7, r8
ldr r8, [sp, #80]
add r7, r8, r6
add r6, ip, lr
ldr ip, [sp, #48]
ldr lr, [sp, #40]
add r8, ip, lr
ldr ip, [sp, #32]
ldr lr, [sp, #24]
add ip, ip, lr
str ip, [r9, #60]
mov ip, fp
str sl, [r9, #32]
str r5, [r9, #44]
str r7, [r9, #48]
str r6, [r9, #52]
str r8, [r9, #56]
stmia ip!, {r0, r1, r2, r3}
ldmia r4!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia r4!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia r4, {r0, r1, r2, r3}
stmia ip, {r0, r1, r2, r3}
add sp, sp, #400
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
.L37:
mov r0, fp
mov r1, r9
bl bmw_small_nextBlock
ldr r1, [fp, #64]
mov r3, #0
str r3, [sp, #388]
str r3, [sp, #336]
str r3, [sp, #340]
str r3, [sp, #344]
str r3, [sp, #348]
str r3, [sp, #352]
str r3, [sp, #356]
str r3, [sp, #360]
str r3, [sp, #364]
str r3, [sp, #368]
str r3, [sp, #372]
str r3, [sp, #376]
str r3, [sp, #380]
str r3, [sp, #384]
sub r1, r1, #1
add lr, sp, #348
add r0, sp, #352
add r2, sp, #356
add r3, sp, #360
add r7, sp, #364
str r1, [fp, #64]
add r5, sp, #340
add r6, sp, #344
str lr, [sp, #12]
str r0, [sp, #8]
str r2, [sp, #4]
str r3, [sp, #20]
str r7, [sp, #16]
b .L31
.size bmw_small_lastBlock, .-bmw_small_lastBlock
.align 2
.global bmw256_lastBlock
.type bmw256_lastBlock, %function
bmw256_lastBlock:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r2, r2, asl #16
mov r2, r2, lsr #16
b bmw_small_lastBlock
.size bmw256_lastBlock, .-bmw256_lastBlock
.align 2
.global bmw224_lastBlock
.type bmw224_lastBlock, %function
bmw224_lastBlock:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r2, r2, asl #16
mov r2, r2, lsr #16
b bmw_small_lastBlock
.size bmw224_lastBlock, .-bmw224_lastBlock
.align 2
.global bmw256
.type bmw256, %function
bmw256:
@ args = 0, pretend = 0, frame = 68
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
ldr r3, .L49
sub sp, sp, #68
add r6, sp, #68
str r3, [r6, #-68]!
mov sl, r1
mov r7, r2
mov r9, r0
mov r2, sp
add r1, sp, #60
.L43:
ldr r3, [r2, #0]
add r3, r3, #67108864
add r3, r3, #262144
add r3, r3, #1024
add r3, r3, #4
str r3, [r2, #4]!
cmp r2, r1
bne .L43
mov r2, #508
add r2, r2, #3
mov r3, #0
cmp r7, r2
str r3, [sp, #64]
bls .L44
mov r8, r2
mov r5, sl
mov r4, r7
.L45:
mov r1, r5
sub r4, r4, #512
mov r0, sp
bl bmw_small_nextBlock
cmp r4, r8
add r5, r5, #64
bhi .L45
sub r2, r7, #512
mov r3, r2, lsr #9
add r3, r3, #1
mov r3, r3, asl #6
mov r7, r2, asl #23
add sl, sl, r3
mov r7, r7, lsr #23
.L44:
mov r2, r7, asl #16
mov r1, sl
mov r0, sp
mov r2, r2, lsr #16
bl bmw_small_lastBlock
mov r0, r9
add r1, sp, #32
mov r2, #32
bl memcpy
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
.L50:
.align 2
.L49:
.word 1078018627
.size bmw256, .-bmw256
.align 2
.global bmw224
.type bmw224, %function
bmw224:
@ args = 0, pretend = 0, frame = 68
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
mov r3, #65536
sub sp, sp, #68
add r3, r3, #512
add r3, r3, #3
add r6, sp, #68
str r3, [r6, #-68]!
mov sl, r1
mov r7, r2
mov r9, r0
mov r2, sp
add r1, sp, #60
.L52:
ldr r3, [r2, #0]
add r3, r3, #67108864
add r3, r3, #262144
add r3, r3, #1024
add r3, r3, #4
str r3, [r2, #4]!
cmp r2, r1
bne .L52
mov r2, #508
add r2, r2, #3
mov r3, #0
cmp r7, r2
str r3, [sp, #64]
bls .L53
mov r8, r2
mov r5, sl
mov r4, r7
.L54:
mov r1, r5
sub r4, r4, #512
mov r0, sp
bl bmw_small_nextBlock
cmp r4, r8
add r5, r5, #64
bhi .L54
sub r2, r7, #512
mov r3, r2, lsr #9
add r3, r3, #1
mov r3, r3, asl #6
mov r7, r2, asl #23
add sl, sl, r3
mov r7, r7, lsr #23
.L53:
mov r2, r7, asl #16
mov r1, sl
mov r0, sp
mov r2, r2, lsr #16
bl bmw_small_lastBlock
mov r0, r9
add r1, sp, #36
mov r2, #28
bl memcpy
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
.size bmw224, .-bmw224
.ident "GCC: (GNU) 4.3.2"