1 .code 32 2 .eabi_attribute 24, 1 @Tag_ABI_align_needed 3 .eabi_attribute 25, 1 @Tag_ABI_align_preserved 4.text 5.p2align 2 6 .global ixheaacd_shiftrountine_with_rnd_hq 7 .type ixheaacd_shiftrountine_with_rnd_hq, %function 8ixheaacd_shiftrountine_with_rnd_hq: 9 10 STMFD sp!, {r4-r12, r14} 11 ADD r12, r2, r3, LSL #2 12 MOV r9, #0x8000 13 SUBS r3, r3, #1 14 BMI S_WITH_R_L6 15 16S_WITH_R_L5: 17 LDR r5, [r1, r3, LSL #2] 18 LDR r7, [r0, r3, LSL #2] 19 LDR r14, [r0], #4 20 LDR r10, [r1], #4 21 22 ADD r6, r5, r7 23 SUB r5, r5, r7 24 ADD r7, r10, r14 25 SUB r4, r10, r14 26 27 28 29 30 31 32 33 34 35 36 37 MOVS r10, r4, ASR #0x19 38 CMNLT r10, #1 39 40 MOVLT r4, #0x80000000 41 MVNGT r4, #0x80000000 42 MOVEQ r4, r4, LSL #6 43 44 MOVS r10, r5, ASR #0x19 45 CMNLT r10, #1 46 MOVLT r5, #0x80000000 47 MVNGT r5, #0x80000000 48 MOVEQ r5, r5, LSL #6 49 MOV r14, r3, lsl #2 50 51 52 MOVS r10, r6, ASR #0x19 53 CMNLT r10, #1 54 MOVLT r6, #0x80000000 55 56 STR r5, [r2, r14] 57 MVNGT r6, #0x80000000 58 MOVEQ r6, r6, LSL #6 59 60 MOVS r10, r7, ASR #0x19 61 CMNLT r10, #1 62 63 MOVLT r7, #0x80000000 64 MVNGT r7, #0x80000000 65 MOVEQ r7, r7, LSL #6 66 67 STR r4, [r2], #4 68 69 70 71 STR r7, [r12, r14] 72 SUBS r3, r3, #2 73 STR r6, [r12], #4 74 BGE S_WITH_R_L5 75S_WITH_R_L6: 76 LDMFD sp!, {r4-r12, r15} 77