1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
|
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start _ll_mod
_ll_mod: ; 0x020EBA28
stmdb sp!, {r4-r7,r11-r12,lr}
mov r4, r1
orr r4, r4, #0x1
b _020EBA48
arm_func_start _ll_sdiv
_ll_sdiv: ; 0x020EBA38
stmdb sp!, {r4-r7,r11-r12,lr}
eor r4, r1, r3
mov r4, r4, asr #0x1
mov r4, r4, lsl #0x1
_020EBA48:
orrs r5, r3, r2
bne _020EBA58
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
_020EBA58:
mov r5, r0, lsr #0x1f
add r5, r5, r1
mov r6, r2, lsr #0x1f
add r6, r6, r3
orrs r6, r5, r6
bne _020EBA8C
mov r1, r2
bl _s32_div_f
ands r4, r4, #0x1
movne r0, r1
mov r1, r0, asr #0x1f
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
_020EBA8C:
cmp r1, #0x0
bge _020EBA9C
rsbs r0, r0, #0x0
rsc r1, r1, #0x0
_020EBA9C:
cmp r3, #0x0
bge _020EBAAC
rsbs r2, r2, #0x0
rsc r3, r3, #0x0
_020EBAAC:
orrs r5, r1, r0
beq _020EBBD0
mov r5, #0x0
mov r6, #0x1
cmp r3, #0x0
bmi _020EBAD8
_020EBAC4:
add r5, r5, #0x1
adds r2, r2, r2
adcs r3, r3, r3
bpl _020EBAC4
add r6, r6, r5
_020EBAD8:
cmp r1, #0x0
blt _020EBAF8
_020EBAE0:
cmp r6, #0x1
beq _020EBAF8
sub r6, r6, #0x1
adds r0, r0, r0
adcs r1, r1, r1
bpl _020EBAE0
_020EBAF8:
mov r7, #0x0
mov r12, #0x0
mov r11, #0x0
b _020EBB20
_020EBB08:
orr r12, r12, #0x1
subs r6, r6, #0x1
beq _020EBB78
adds r0, r0, r0
adcs r1, r1, r1
adcs r7, r7, r7
_020EBB20:
subs r0, r0, r2
sbcs r1, r1, r3
sbcs r7, r7, #0x0
adds r12, r12, r12
adc r11, r11, r11
cmp r7, #0x0
bge _020EBB08
_020EBB3C:
subs r6, r6, #0x1
beq _020EBB70
adds r0, r0, r0
adcs r1, r1, r1
adc r7, r7, r7
adds r0, r0, r2
adcs r1, r1, r3
adc r7, r7, #0x0
adds r12, r12, r12
adc r11, r11, r11
cmp r7, #0x0
bge _020EBB08
b _020EBB3C
_020EBB70:
adds r0, r0, r2
adc r1, r1, r3
_020EBB78:
ands r7, r4, #0x1
moveq r0, r12
moveq r1, r11
beq _020EBBB0
subs r7, r5, #0x20
movge r0, r1, lsr r7
bge _020EBBD4
rsb r7, r5, #0x20
mov r0, r0, lsr r5
orr r0, r0, r1, lsl r7
mov r1, r1, lsr r5
b _020EBBB0
_020EBBA8: ; 0x020EBBA8
mov r0, r1, lsr r7
mov r1, #0x0
_020EBBB0:
cmp r4, #0x0
blt _020EBBC0
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
_020EBBC0:
rsbs r0, r0, #0x0
rsc r1, r1, #0x0
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
_020EBBD0:
mov r0, #0x0
_020EBBD4:
mov r1, #0x0
cmp r4, #0x0
blt _020EBBC0
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
arm_func_start _ll_udiv
_ll_udiv: ; 0x020EBBE8
stmdb sp!, {r4-r7,r11-r12,lr}
mov r4, #0x0
b _020EBBFC
arm_func_start _ull_mod
_ull_mod: ; 0x020EBBF4
stmdb sp!, {r4-r7,r11-r12,lr}
mov r4, #0x1
_020EBBFC:
orrs r5, r3, r2
bne _020EBC0C
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
_020EBC0C:
orrs r5, r1, r3
bne _020EBAAC
mov r1, r2
bl _u32_div_not_0_f
cmp r4, #0x0
movne r0, r1
mov r1, #0x0
ldmia sp!, {r4-r7,r11-r12,lr}
bx lr
|