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