summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--asm/libgcc.s5033
-rw-r--r--data/data2.s20
-rw-r--r--data/multiboot_berry_glitch_fix.s8
-rw-r--r--data/multiboot_pokemon_colosseum.s5
-rw-r--r--data/unknown_serial_data.s4
-rw-r--r--ld_script.txt34
7 files changed, 52 insertions, 5056 deletions
diff --git a/Makefile b/Makefile
index 6fcdabfd0..312dd4847 100644
--- a/Makefile
+++ b/Makefile
@@ -61,11 +61,11 @@ asm/libagbbackup.o \
asm/librtc.o \
asm/librfu.o \
asm/libagbsyscall.o \
-asm/libgcc.o \
asm/libc.o
DATA_ASM_OBJS := data/data1.o data/data2.o data/anim_mon_front_pics.o \
-data/graphics.o
+data/graphics.o data/unknown_serial_data.o data/multiboot_berry_glitch_fix.o \
+data/multiboot_pokemon_colosseum.o
OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS)
diff --git a/asm/libgcc.s b/asm/libgcc.s
deleted file mode 100644
index 976bc5dc9..000000000
--- a/asm/libgcc.s
+++ /dev/null
@@ -1,5033 +0,0 @@
- .include "asm/macros.s"
- .include "constants/constants.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start _call_via_r0
-_call_via_r0: @ 82E70D0
- bx r0
- mov r8, r8
- thumb_func_end _call_via_r0
-
- thumb_func_start _call_via_r1
-_call_via_r1: @ 82E70D4
- bx r1
- mov r8, r8
- thumb_func_end _call_via_r1
-
- thumb_func_start _call_via_r2
-_call_via_r2: @ 82E70D8
- bx r2
- mov r8, r8
- thumb_func_end _call_via_r2
-
- thumb_func_start _call_via_r3
-_call_via_r3: @ 82E70DC
- bx r3
- mov r8, r8
- thumb_func_end _call_via_r3
-
- thumb_func_start _call_via_r4
-_call_via_r4: @ 82E70E0
- bx r4
- mov r8, r8
- thumb_func_end _call_via_r4
-
- thumb_func_start _call_via_r5
-_call_via_r5: @ 82E70E4
- bx r5
- mov r8, r8
- thumb_func_end _call_via_r5
-
- thumb_func_start _call_via_r6
-_call_via_r6: @ 82E70E8
- bx r6
- mov r8, r8
- thumb_func_end _call_via_r6
-
- thumb_func_start _call_via_r7
-_call_via_r7: @ 82E70EC
- bx r7
- mov r8, r8
- thumb_func_end _call_via_r7
-
- thumb_func_start _call_via_r8
-_call_via_r8: @ 82E70F0
- bx r8
- mov r8, r8
- thumb_func_end _call_via_r8
-
- thumb_func_start _call_via_r9
-_call_via_r9: @ 82E70F4
- bx r9
- mov r8, r8
- thumb_func_end _call_via_r9
-
- thumb_func_start _call_via_sl
-_call_via_sl: @ 82E70F8
- bx r10
- mov r8, r8
- thumb_func_end _call_via_sl
-
- thumb_func_start _call_via_fp
-_call_via_fp: @ 82E70FC
- bx r11
- mov r8, r8
- thumb_func_end _call_via_fp
-
- thumb_func_start _call_via_ip
-_call_via_ip: @ 82E7100
- bx r12
- mov r8, r8
- thumb_func_end _call_via_ip
-
- thumb_func_start _call_via_sp
-_call_via_sp: @ 82E7104
- bx sp
- mov r8, r8
- thumb_func_end _call_via_sp
-
- thumb_func_start _call_via_lr
-_call_via_lr: @ 82E7108
- bx lr
- mov r8, r8
- thumb_func_end _call_via_lr
-
- thumb_func_start __divdi3
-__divdi3: @ 82E710C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- movs r4, 0
- str r4, [sp]
- adds r5, r1, 0
- adds r4, r0, 0
- cmp r5, 0
- bge _082E713C
- ldr r0, [sp]
- mvns r0, r0
- str r0, [sp]
- negs r0, r4
- adds r6, r0, 0
- negs r1, r5
- cmp r0, 0
- beq _082E7136
- subs r1, 0x1
-_082E7136:
- adds r7, r1, 0
- adds r5, r7, 0
- adds r4, r6, 0
-_082E713C:
- cmp r3, 0
- bge _082E7158
- ldr r1, [sp]
- mvns r1, r1
- str r1, [sp]
- negs r0, r2
- str r0, [sp, 0x4]
- negs r2, r3
- cmp r0, 0
- beq _082E7152
- subs r2, 0x1
-_082E7152:
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0x8]
-_082E7158:
- adds r7, r2, 0
- adds r6, r3, 0
- mov r10, r4
- mov r8, r5
- cmp r6, 0
- beq _082E7166
- b _082E73B4
-_082E7166:
- cmp r7, r8
- bls _082E7240
- ldr r0, _082E717C
- cmp r7, r0
- bhi _082E7180
- movs r1, 0
- cmp r7, 0xFF
- bls _082E718A
- movs r1, 0x8
- b _082E718A
- .align 2, 0
-_082E717C: .4byte 0x0000ffff
-_082E7180:
- ldr r0, _082E7234
- movs r1, 0x18
- cmp r7, r0
- bhi _082E718A
- movs r1, 0x10
-_082E718A:
- ldr r0, _082E7238
- lsrs r2, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r1
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- beq _082E71B2
- lsls r7, r2
- mov r3, r8
- lsls r3, r2
- subs r1, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
-_082E71B2:
- lsrs r0, r7, 16
- mov r9, r0
- ldr r1, _082E723C
- ands r1, r7
- str r1, [sp, 0xC]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r3, [sp, 0xC]
- adds r2, r6, 0
- muls r2, r3
- lsls r4, 16
- mov r1, r10
- lsrs r0, r1, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E71F2
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E71F2
- cmp r4, r2
- bcs _082E71F2
- subs r6, 0x1
- adds r4, r7
-_082E71F2:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r3, [sp, 0xC]
- adds r2, r1, 0
- muls r2, r3
- lsls r5, 16
- ldr r0, _082E723C
- mov r4, r10
- ands r4, r0
- orrs r5, r4
- cmp r5, r2
- bcs _082E722A
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E722A
- cmp r5, r2
- bcs _082E722A
- subs r1, 0x1
-_082E722A:
- lsls r6, 16
- orrs r6, r1
- movs r0, 0
- str r0, [sp, 0x10]
- b _082E750A
- .align 2, 0
-_082E7234: .4byte 0x00ffffff
-_082E7238: .4byte gUnknown_089A3270
-_082E723C: .4byte 0x0000ffff
-_082E7240:
- cmp r2, 0
- bne _082E724E
- movs r0, 0x1
- movs r1, 0
- bl __udivsi3
- adds r7, r0, 0
-_082E724E:
- adds r1, r7, 0
- ldr r0, _082E7260
- cmp r7, r0
- bhi _082E7264
- movs r2, 0
- cmp r7, 0xFF
- bls _082E726E
- movs r2, 0x8
- b _082E726E
- .align 2, 0
-_082E7260: .4byte 0x0000ffff
-_082E7264:
- ldr r0, _082E728C
- movs r2, 0x18
- cmp r7, r0
- bhi _082E726E
- movs r2, 0x10
-_082E726E:
- ldr r0, _082E7290
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E7294
- mov r1, r8
- subs r1, r7
- mov r8, r1
- movs r2, 0x1
- str r2, [sp, 0x10]
- b _082E7332
- .align 2, 0
-_082E728C: .4byte 0x00ffffff
-_082E7290: .4byte gUnknown_089A3270
-_082E7294:
- subs r1, r2
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r7, 16
- mov r9, r0
- ldr r1, _082E73B0
- ands r1, r7
- str r1, [sp, 0x14]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r2, [sp, 0x14]
- adds r1, r6, 0
- muls r1, r2
- lsls r4, 16
- mov r3, r8
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E72EE
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E72EE
- cmp r4, r1
- bcs _082E72EE
- subs r6, 0x1
- adds r4, r7
-_082E72EE:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x14]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E73B0
- mov r3, r8
- ands r3, r0
- orrs r5, r3
- cmp r5, r1
- bcs _082E7328
- subs r2, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E7328
- cmp r5, r1
- bcs _082E7328
- subs r2, 0x1
- adds r5, r7
-_082E7328:
- lsls r6, 16
- orrs r6, r2
- str r6, [sp, 0x10]
- subs r1, r5, r1
- mov r8, r1
-_082E7332:
- lsrs r4, r7, 16
- mov r9, r4
- ldr r0, _082E73B0
- ands r0, r7
- str r0, [sp, 0x18]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r1, [sp, 0x18]
- adds r2, r6, 0
- muls r2, r1
- lsls r4, 16
- mov r3, r10
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E7372
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E7372
- cmp r4, r2
- bcs _082E7372
- subs r6, 0x1
- adds r4, r7
-_082E7372:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r4, [sp, 0x18]
- adds r2, r1, 0
- muls r2, r4
- lsls r5, 16
- ldr r0, _082E73B0
- mov r3, r10
- ands r3, r0
- orrs r5, r3
- cmp r5, r2
- bcs _082E73AA
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E73AA
- cmp r5, r2
- bcs _082E73AA
- subs r1, 0x1
-_082E73AA:
- lsls r6, 16
- orrs r6, r1
- b _082E750A
- .align 2, 0
-_082E73B0: .4byte 0x0000ffff
-_082E73B4:
- cmp r6, r8
- bls _082E73C0
- movs r6, 0
- movs r4, 0
- str r4, [sp, 0x10]
- b _082E750A
-_082E73C0:
- adds r1, r6, 0
- ldr r0, _082E73D4
- cmp r6, r0
- bhi _082E73D8
- movs r2, 0
- cmp r6, 0xFF
- bls _082E73E2
- movs r2, 0x8
- b _082E73E2
- .align 2, 0
-_082E73D4: .4byte 0x0000ffff
-_082E73D8:
- ldr r0, _082E7404
- movs r2, 0x18
- cmp r6, r0
- bhi _082E73E2
- movs r2, 0x10
-_082E73E2:
- ldr r0, _082E7408
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E7410
- cmp r8, r6
- bhi _082E73FC
- cmp r10, r7
- bcc _082E740C
-_082E73FC:
- movs r6, 0x1
- mov r1, r10
- b _082E7504
- .align 2, 0
-_082E7404: .4byte 0x00ffffff
-_082E7408: .4byte gUnknown_089A3270
-_082E740C:
- movs r6, 0
- b _082E7506
-_082E7410:
- subs r1, r2
- lsls r6, r2
- adds r0, r7, 0
- lsrs r0, r1
- orrs r6, r0
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r6, 16
- mov r9, r0
- ldr r1, _082E753C
- ands r1, r6
- str r1, [sp, 0x1C]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r3, r0, 0
- ldr r2, [sp, 0x1C]
- adds r1, r3, 0
- muls r1, r2
- lsls r4, 16
- mov r2, r8
- lsrs r0, r2, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E7472
- subs r3, 0x1
- adds r4, r6
- cmp r4, r6
- bcc _082E7472
- cmp r4, r1
- bcs _082E7472
- subs r3, 0x1
- adds r4, r6
-_082E7472:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- str r3, [sp, 0x30]
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x1C]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E753C
- mov r4, r8
- ands r4, r0
- orrs r5, r4
- ldr r3, [sp, 0x30]
- cmp r5, r1
- bcs _082E74B0
- subs r2, 0x1
- adds r5, r6
- cmp r5, r6
- bcc _082E74B0
- cmp r5, r1
- bcs _082E74B0
- subs r2, 0x1
- adds r5, r6
-_082E74B0:
- lsls r6, r3, 16
- orrs r6, r2
- subs r1, r5, r1
- mov r8, r1
- ldr r0, _082E753C
- mov r9, r0
- adds r1, r6, 0
- ands r1, r0
- lsrs r3, r6, 16
- adds r0, r7, 0
- mov r2, r9
- ands r0, r2
- lsrs r2, r7, 16
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- adds r1, r3, 0
- muls r1, r0
- muls r3, r2
- lsrs r0, r5, 16
- adds r4, r0
- adds r4, r1
- cmp r4, r1
- bcs _082E74E8
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_082E74E8:
- lsrs r0, r4, 16
- adds r3, r0
- mov r1, r9
- ands r4, r1
- lsls r0, r4, 16
- ands r5, r1
- adds r1, r0, r5
- cmp r3, r8
- bhi _082E7502
- cmp r3, r8
- bne _082E7506
- cmp r1, r10
- bls _082E7506
-_082E7502:
- subs r6, 0x1
-_082E7504:
- subs r0, r1, r7
-_082E7506:
- movs r2, 0
- str r2, [sp, 0x10]
-_082E750A:
- str r6, [sp, 0x20]
- ldr r3, [sp, 0x10]
- str r3, [sp, 0x24]
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- ldr r4, [sp]
- cmp r4, 0
- beq _082E752C
- negs r0, r1
- str r0, [sp, 0x28]
- negs r1, r2
- cmp r0, 0
- beq _082E7526
- subs r1, 0x1
-_082E7526:
- str r1, [sp, 0x2C]
- ldr r1, [sp, 0x28]
- ldr r2, [sp, 0x2C]
-_082E752C:
- adds r0, r1, 0
- adds r1, r2, 0
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E753C: .4byte 0x0000ffff
- thumb_func_end __divdi3
-
- thumb_func_start __divsi3
-@ int __divsi3(int dividend, int divisor)
-__divsi3: @ 82E7540
- cmp r1, 0
- beq _082E75C8
- push {r4}
- adds r4, r0, 0
- eors r4, r1
- mov r12, r4
- movs r3, 0x1
- movs r2, 0
- cmp r1, 0
- bpl _082E7556
- negs r1, r1
-_082E7556:
- cmp r0, 0
- bpl _082E755C
- negs r0, r0
-_082E755C:
- cmp r0, r1
- bcc _082E75BA
- movs r4, 0x1
- lsls r4, 28
-_082E7564:
- cmp r1, r4
- bcs _082E7572
- cmp r1, r0
- bcs _082E7572
- lsls r1, 4
- lsls r3, 4
- b _082E7564
-_082E7572:
- lsls r4, 3
-_082E7574:
- cmp r1, r4
- bcs _082E7582
- cmp r1, r0
- bcs _082E7582
- lsls r1, 1
- lsls r3, 1
- b _082E7574
-_082E7582:
- cmp r0, r1
- bcc _082E758A
- subs r0, r1
- orrs r2, r3
-_082E758A:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E7596
- subs r0, r4
- lsrs r4, r3, 1
- orrs r2, r4
-_082E7596:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E75A2
- subs r0, r4
- lsrs r4, r3, 2
- orrs r2, r4
-_082E75A2:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E75AE
- subs r0, r4
- lsrs r4, r3, 3
- orrs r2, r4
-_082E75AE:
- cmp r0, 0
- beq _082E75BA
- lsrs r3, 4
- beq _082E75BA
- lsrs r1, 4
- b _082E7582
-_082E75BA:
- adds r0, r2, 0
- mov r4, r12
- cmp r4, 0
- bpl _082E75C4
- negs r0, r0
-_082E75C4:
- pop {r4}
- mov pc, lr
-_082E75C8:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __divsi3
-
- thumb_func_start nullsub_1
-nullsub_1: @ 82E75D4
- mov pc, lr
- thumb_func_end nullsub_1
-
- thumb_func_start __fixunsdfsi
-__fixunsdfsi: @ 82E75D8
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r3, _082E75F8
- ldr r2, _082E75F4
- bl __gedf2
- cmp r0, 0
- bge _082E75FC
- adds r1, r5, 0
- adds r0, r4, 0
- bl __fixdfsi
- b _082E7612
- .align 2, 0
-_082E75F4: .4byte 0x41e00000
-_082E75F8: .4byte 0x00000000
-_082E75FC:
- ldr r3, _082E7618
- ldr r2, _082E7614
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixdfsi
- movs r1, 0x80
- lsls r1, 24
- adds r0, r1
-_082E7612:
- pop {r4,r5,pc}
- .align 2, 0
-_082E7614: .4byte 0xc1e00000
-_082E7618: .4byte 0x00000000
- thumb_func_end __fixunsdfsi
-
- thumb_func_start __fixunssfsi
-__fixunssfsi: @ 82E761C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _082E7634
- bl __gesf2
- cmp r0, 0
- bge _082E7638
- adds r0, r4, 0
- bl __fixsfsi
- b _082E764A
- .align 2, 0
-_082E7634: .4byte 0x4f000000
-_082E7638:
- ldr r1, _082E764C
- adds r0, r4, 0
- bl __addsf3
- bl __fixsfsi
- movs r1, 0x80
- lsls r1, 24
- adds r0, r1
-_082E764A:
- pop {r4,pc}
- .align 2, 0
-_082E764C: .4byte 0xcf000000
- thumb_func_end __fixunssfsi
-
- thumb_func_start __modsi3
-__modsi3: @ 82E7650
- movs r3, 0x1
- cmp r1, 0
- beq _082E7714
- bpl _082E765A
- negs r1, r1
-_082E765A:
- push {r4}
- push {r0}
- cmp r0, 0
- bpl _082E7664
- negs r0, r0
-_082E7664:
- cmp r0, r1
- bcc _082E7708
- movs r4, 0x1
- lsls r4, 28
-_082E766C:
- cmp r1, r4
- bcs _082E767A
- cmp r1, r0
- bcs _082E767A
- lsls r1, 4
- lsls r3, 4
- b _082E766C
-_082E767A:
- lsls r4, 3
-_082E767C:
- cmp r1, r4
- bcs _082E768A
- cmp r1, r0
- bcs _082E768A
- lsls r1, 1
- lsls r3, 1
- b _082E767C
-_082E768A:
- movs r2, 0
- cmp r0, r1
- bcc _082E7692
- subs r0, r1
-_082E7692:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E76A4
- subs r0, r4
- mov r12, r3
- movs r4, 0x1
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E76A4:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E76B6
- subs r0, r4
- mov r12, r3
- movs r4, 0x2
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E76B6:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E76C8
- subs r0, r4
- mov r12, r3
- movs r4, 0x3
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E76C8:
- mov r12, r3
- cmp r0, 0
- beq _082E76D6
- lsrs r3, 4
- beq _082E76D6
- lsrs r1, 4
- b _082E768A
-_082E76D6:
- movs r4, 0xE
- lsls r4, 28
- ands r2, r4
- beq _082E7708
- mov r3, r12
- movs r4, 0x3
- rors r3, r4
- tst r2, r3
- beq _082E76EC
- lsrs r4, r1, 3
- adds r0, r4
-_082E76EC:
- mov r3, r12
- movs r4, 0x2
- rors r3, r4
- tst r2, r3
- beq _082E76FA
- lsrs r4, r1, 2
- adds r0, r4
-_082E76FA:
- mov r3, r12
- movs r4, 0x1
- rors r3, r4
- tst r2, r3
- beq _082E7708
- lsrs r4, r1, 1
- adds r0, r4
-_082E7708:
- pop {r4}
- cmp r4, 0
- bpl _082E7710
- negs r0, r0
-_082E7710:
- pop {r4}
- mov pc, lr
-_082E7714:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __modsi3
-
- thumb_func_start __muldi3
-__muldi3: @ 82E7720
- push {r4-r7,lr}
- sub sp, 0x10
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- ldr r3, [sp]
- ldr r0, _082E778C
- mov r12, r0
- adds r2, r3, 0
- ands r2, r0
- lsrs r3, 16
- ldr r1, [sp, 0x8]
- adds r0, r1, 0
- mov r4, r12
- ands r0, r4
- lsrs r1, 16
- adds r5, r2, 0
- muls r5, r0
- adds r4, r2, 0
- muls r4, r1
- adds r2, r3, 0
- muls r2, r0
- muls r3, r1
- lsrs r0, r5, 16
- adds r4, r0
- adds r4, r2
- cmp r4, r2
- bcs _082E7760
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_082E7760:
- lsrs r0, r4, 16
- adds r7, r3, r0
- mov r1, r12
- ands r4, r1
- lsls r0, r4, 16
- ands r5, r1
- adds r6, r0, 0
- orrs r6, r5
- adds r1, r7, 0
- adds r0, r6, 0
- ldr r3, [sp]
- ldr r4, [sp, 0xC]
- adds r2, r3, 0
- muls r2, r4
- ldr r5, [sp, 0x4]
- ldr r4, [sp, 0x8]
- adds r3, r5, 0
- muls r3, r4
- adds r2, r3
- adds r1, r7, r2
- add sp, 0x10
- pop {r4-r7,pc}
- .align 2, 0
-_082E778C: .4byte 0x0000ffff
- thumb_func_end __muldi3
-
- thumb_func_start __udivdi3
-__udivdi3: @ 82E7790
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r7, r2, 0
- adds r6, r3, 0
- mov r10, r0
- mov r8, r1
- cmp r6, 0
- beq _082E77AA
- b _082E79F8
-_082E77AA:
- cmp r7, r8
- bls _082E7884
- ldr r0, _082E77C0
- cmp r7, r0
- bhi _082E77C4
- movs r1, 0
- cmp r7, 0xFF
- bls _082E77CE
- movs r1, 0x8
- b _082E77CE
- .align 2, 0
-_082E77C0: .4byte 0x0000ffff
-_082E77C4:
- ldr r0, _082E7878
- movs r1, 0x18
- cmp r7, r0
- bhi _082E77CE
- movs r1, 0x10
-_082E77CE:
- ldr r0, _082E787C
- lsrs r2, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r1
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- beq _082E77FA
- lsls r7, r2
- mov r0, r8
- lsls r0, r2
- mov r8, r0
- subs r1, r2
- mov r0, r10
- lsrs r0, r1
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- mov r3, r10
- lsls r3, r2
- mov r10, r3
-_082E77FA:
- lsrs r4, r7, 16
- mov r9, r4
- ldr r0, _082E7880
- ands r0, r7
- str r0, [sp]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r1, [sp]
- adds r2, r6, 0
- muls r2, r1
- lsls r4, 16
- mov r3, r10
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E783A
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E783A
- cmp r4, r2
- bcs _082E783A
- subs r6, 0x1
- adds r4, r7
-_082E783A:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r4, [sp]
- adds r2, r1, 0
- muls r2, r4
- lsls r5, 16
- ldr r0, _082E7880
- mov r3, r10
- ands r3, r0
- orrs r5, r3
- cmp r5, r2
- bcs _082E7872
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E7872
- cmp r5, r2
- bcs _082E7872
- subs r1, 0x1
-_082E7872:
- lsls r6, 16
- orrs r6, r1
- b _082E79FE
- .align 2, 0
-_082E7878: .4byte 0x00ffffff
-_082E787C: .4byte gUnknown_089A3370
-_082E7880: .4byte 0x0000ffff
-_082E7884:
- cmp r2, 0
- bne _082E7892
- movs r0, 0x1
- movs r1, 0
- bl __udivsi3
- adds r7, r0, 0
-_082E7892:
- adds r1, r7, 0
- ldr r0, _082E78A4
- cmp r7, r0
- bhi _082E78A8
- movs r2, 0
- cmp r7, 0xFF
- bls _082E78B2
- movs r2, 0x8
- b _082E78B2
- .align 2, 0
-_082E78A4: .4byte 0x0000ffff
-_082E78A8:
- ldr r0, _082E78D0
- movs r2, 0x18
- cmp r7, r0
- bhi _082E78B2
- movs r2, 0x10
-_082E78B2:
- ldr r0, _082E78D4
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E78D8
- mov r0, r8
- subs r0, r7
- mov r8, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _082E7976
- .align 2, 0
-_082E78D0: .4byte 0x00ffffff
-_082E78D4: .4byte gUnknown_089A3370
-_082E78D8:
- subs r1, r2
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r7, 16
- mov r9, r0
- ldr r1, _082E79F4
- ands r1, r7
- str r1, [sp, 0x8]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r2, [sp, 0x8]
- adds r1, r6, 0
- muls r1, r2
- lsls r4, 16
- mov r3, r8
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E7932
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E7932
- cmp r4, r1
- bcs _082E7932
- subs r6, 0x1
- adds r4, r7
-_082E7932:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E79F4
- mov r3, r8
- ands r3, r0
- orrs r5, r3
- cmp r5, r1
- bcs _082E796C
- subs r2, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E796C
- cmp r5, r1
- bcs _082E796C
- subs r2, 0x1
- adds r5, r7
-_082E796C:
- lsls r6, 16
- orrs r6, r2
- str r6, [sp, 0x4]
- subs r1, r5, r1
- mov r8, r1
-_082E7976:
- lsrs r4, r7, 16
- mov r9, r4
- ldr r0, _082E79F4
- ands r0, r7
- str r0, [sp, 0xC]
- mov r0, r8
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- mov r0, r8
- mov r1, r9
- bl __udivsi3
- adds r6, r0, 0
- ldr r1, [sp, 0xC]
- adds r2, r6, 0
- muls r2, r1
- lsls r4, 16
- mov r3, r10
- lsrs r0, r3, 16
- orrs r4, r0
- cmp r4, r2
- bcs _082E79B6
- subs r6, 0x1
- adds r4, r7
- cmp r4, r7
- bcc _082E79B6
- cmp r4, r2
- bcs _082E79B6
- subs r6, 0x1
- adds r4, r7
-_082E79B6:
- subs r4, r2
- adds r0, r4, 0
- mov r1, r9
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r1, r0, 0
- ldr r4, [sp, 0xC]
- adds r2, r1, 0
- muls r2, r4
- lsls r5, 16
- ldr r0, _082E79F4
- mov r3, r10
- ands r3, r0
- orrs r5, r3
- cmp r5, r2
- bcs _082E79EE
- subs r1, 0x1
- adds r5, r7
- cmp r5, r7
- bcc _082E79EE
- cmp r5, r2
- bcs _082E79EE
- subs r1, 0x1
-_082E79EE:
- lsls r6, 16
- orrs r6, r1
- b _082E7B4E
- .align 2, 0
-_082E79F4: .4byte 0x0000ffff
-_082E79F8:
- cmp r6, r8
- bls _082E7A04
- movs r6, 0
-_082E79FE:
- movs r4, 0
- str r4, [sp, 0x4]
- b _082E7B4E
-_082E7A04:
- adds r1, r6, 0
- ldr r0, _082E7A18
- cmp r6, r0
- bhi _082E7A1C
- movs r2, 0
- cmp r6, 0xFF
- bls _082E7A26
- movs r2, 0x8
- b _082E7A26
- .align 2, 0
-_082E7A18: .4byte 0x0000ffff
-_082E7A1C:
- ldr r0, _082E7A48
- movs r2, 0x18
- cmp r6, r0
- bhi _082E7A26
- movs r2, 0x10
-_082E7A26:
- ldr r0, _082E7A4C
- lsrs r1, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r0, r2
- movs r1, 0x20
- subs r2, r1, r0
- cmp r2, 0
- bne _082E7A54
- cmp r8, r6
- bhi _082E7A40
- cmp r10, r7
- bcc _082E7A50
-_082E7A40:
- movs r6, 0x1
- mov r1, r10
- b _082E7B48
- .align 2, 0
-_082E7A48: .4byte 0x00ffffff
-_082E7A4C: .4byte gUnknown_089A3370
-_082E7A50:
- movs r6, 0
- b _082E7B4A
-_082E7A54:
- subs r1, r2
- lsls r6, r2
- adds r0, r7, 0
- lsrs r0, r1
- orrs r6, r0
- lsls r7, r2
- mov r5, r8
- lsrs r5, r1
- mov r3, r8
- lsls r3, r2
- mov r0, r10
- lsrs r0, r1
- orrs r3, r0
- mov r8, r3
- mov r4, r10
- lsls r4, r2
- mov r10, r4
- lsrs r0, r6, 16
- mov r9, r0
- ldr r1, _082E7B64
- ands r1, r6
- str r1, [sp, 0x10]
- adds r0, r5, 0
- mov r1, r9
- bl __umodsi3
- adds r4, r0, 0
- adds r0, r5, 0
- mov r1, r9
- bl __udivsi3
- adds r3, r0, 0
- ldr r2, [sp, 0x10]
- adds r1, r3, 0
- muls r1, r2
- lsls r4, 16
- mov r2, r8
- lsrs r0, r2, 16
- orrs r4, r0
- cmp r4, r1
- bcs _082E7AB6
- subs r3, 0x1
- adds r4, r6
- cmp r4, r6
- bcc _082E7AB6
- cmp r4, r1
- bcs _082E7AB6
- subs r3, 0x1
- adds r4, r6
-_082E7AB6:
- subs r4, r1
- adds r0, r4, 0
- mov r1, r9
- str r3, [sp, 0x1C]
- bl __umodsi3
- adds r5, r0, 0
- adds r0, r4, 0
- mov r1, r9
- bl __udivsi3
- adds r2, r0, 0
- ldr r4, [sp, 0x10]
- adds r1, r2, 0
- muls r1, r4
- lsls r5, 16
- ldr r0, _082E7B64
- mov r4, r8
- ands r4, r0
- orrs r5, r4
- ldr r3, [sp, 0x1C]
- cmp r5, r1
- bcs _082E7AF4
- subs r2, 0x1
- adds r5, r6
- cmp r5, r6
- bcc _082E7AF4
- cmp r5, r1
- bcs _082E7AF4
- subs r2, 0x1
- adds r5, r6
-_082E7AF4:
- lsls r6, r3, 16
- orrs r6, r2
- subs r1, r5, r1
- mov r8, r1
- ldr r0, _082E7B64
- mov r9, r0
- adds r1, r6, 0
- ands r1, r0
- lsrs r3, r6, 16
- adds r0, r7, 0
- mov r2, r9
- ands r0, r2
- lsrs r2, r7, 16
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- adds r1, r3, 0
- muls r1, r0
- muls r3, r2
- lsrs r0, r5, 16
- adds r4, r0
- adds r4, r1
- cmp r4, r1
- bcs _082E7B2C
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_082E7B2C:
- lsrs r0, r4, 16
- adds r3, r0
- mov r1, r9
- ands r4, r1
- lsls r0, r4, 16
- ands r5, r1
- adds r1, r0, r5
- cmp r3, r8
- bhi _082E7B46
- cmp r3, r8
- bne _082E7B4A
- cmp r1, r10
- bls _082E7B4A
-_082E7B46:
- subs r6, 0x1
-_082E7B48:
- subs r0, r1, r7
-_082E7B4A:
- movs r2, 0
- str r2, [sp, 0x4]
-_082E7B4E:
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x4]
- str r3, [sp, 0x18]
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0x18]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E7B64: .4byte 0x0000ffff
- thumb_func_end __udivdi3
-
- thumb_func_start __udivsi3
-@ unsigned int __udivsi3(unsigned int dividend, unsigned int divisor)
-__udivsi3: @ 82E7B68
- cmp r1, 0
- beq _082E7BD6
- movs r3, 0x1
- movs r2, 0
- push {r4}
- cmp r0, r1
- bcc _082E7BD0
- movs r4, 0x1
- lsls r4, 28
-_082E7B7A:
- cmp r1, r4
- bcs _082E7B88
- cmp r1, r0
- bcs _082E7B88
- lsls r1, 4
- lsls r3, 4
- b _082E7B7A
-_082E7B88:
- lsls r4, 3
-_082E7B8A:
- cmp r1, r4
- bcs _082E7B98
- cmp r1, r0
- bcs _082E7B98
- lsls r1, 1
- lsls r3, 1
- b _082E7B8A
-_082E7B98:
- cmp r0, r1
- bcc _082E7BA0
- subs r0, r1
- orrs r2, r3
-_082E7BA0:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E7BAC
- subs r0, r4
- lsrs r4, r3, 1
- orrs r2, r4
-_082E7BAC:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E7BB8
- subs r0, r4
- lsrs r4, r3, 2
- orrs r2, r4
-_082E7BB8:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E7BC4
- subs r0, r4
- lsrs r4, r3, 3
- orrs r2, r4
-_082E7BC4:
- cmp r0, 0
- beq _082E7BD0
- lsrs r3, 4
- beq _082E7BD0
- lsrs r1, 4
- b _082E7B98
-_082E7BD0:
- adds r0, r2, 0
- pop {r4}
- mov pc, lr
-_082E7BD6:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __udivsi3
-
- thumb_func_start __umodsi3
-@ unsigned int __umodsi3(unsigned int dividend, unsigned int divisor)
-__umodsi3: @ 82E7BE0
- cmp r1, 0
- beq _082E7C96
- movs r3, 0x1
- cmp r0, r1
- bcs _082E7BEC
- mov pc, lr
-_082E7BEC:
- push {r4}
- movs r4, 0x1
- lsls r4, 28
-_082E7BF2:
- cmp r1, r4
- bcs _082E7C00
- cmp r1, r0
- bcs _082E7C00
- lsls r1, 4
- lsls r3, 4
- b _082E7BF2
-_082E7C00:
- lsls r4, 3
-_082E7C02:
- cmp r1, r4
- bcs _082E7C10
- cmp r1, r0
- bcs _082E7C10
- lsls r1, 1
- lsls r3, 1
- b _082E7C02
-_082E7C10:
- movs r2, 0
- cmp r0, r1
- bcc _082E7C18
- subs r0, r1
-_082E7C18:
- lsrs r4, r1, 1
- cmp r0, r4
- bcc _082E7C2A
- subs r0, r4
- mov r12, r3
- movs r4, 0x1
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E7C2A:
- lsrs r4, r1, 2
- cmp r0, r4
- bcc _082E7C3C
- subs r0, r4
- mov r12, r3
- movs r4, 0x2
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E7C3C:
- lsrs r4, r1, 3
- cmp r0, r4
- bcc _082E7C4E
- subs r0, r4
- mov r12, r3
- movs r4, 0x3
- rors r3, r4
- orrs r2, r3
- mov r3, r12
-_082E7C4E:
- mov r12, r3
- cmp r0, 0
- beq _082E7C5C
- lsrs r3, 4
- beq _082E7C5C
- lsrs r1, 4
- b _082E7C10
-_082E7C5C:
- movs r4, 0xE
- lsls r4, 28
- ands r2, r4
- bne _082E7C68
- pop {r4}
- mov pc, lr
-_082E7C68:
- mov r3, r12
- movs r4, 0x3
- rors r3, r4
- tst r2, r3
- beq _082E7C76
- lsrs r4, r1, 3
- adds r0, r4
-_082E7C76:
- mov r3, r12
- movs r4, 0x2
- rors r3, r4
- tst r2, r3
- beq _082E7C84
- lsrs r4, r1, 2
- adds r0, r4
-_082E7C84:
- mov r3, r12
- movs r4, 0x1
- rors r3, r4
- tst r2, r3
- beq _082E7C92
- lsrs r4, r1, 1
- adds r0, r4
-_082E7C92:
- pop {r4}
- mov pc, lr
-_082E7C96:
- push {lr}
- bl nullsub_1
- movs r0, 0
- pop {pc}
- thumb_func_end __umodsi3
-
- thumb_func_start __pack_d
-__pack_d: @ 82E7CA0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r1, r0, 0
- ldr r4, [r1, 0xC]
- ldr r5, [r1, 0x10]
- ldr r7, [r1, 0x4]
- movs r6, 0
- movs r2, 0
- ldr r0, [r1]
- cmp r0, 0x1
- bhi _082E7CB8
- movs r2, 0x1
-_082E7CB8:
- cmp r2, 0
- beq _082E7CD8
- ldr r6, _082E7CCC
- ldr r2, _082E7CD0
- ldr r3, _082E7CD4
- adds r0, r4, 0
- adds r1, r5, 0
- orrs r1, r3
- b _082E7D90
- .align 2, 0
-_082E7CCC: .4byte 0x000007ff
-_082E7CD0: .4byte 0x00000000
-_082E7CD4: .4byte 0x00080000
-_082E7CD8:
- movs r2, 0
- cmp r0, 0x4
- bne _082E7CE0
- movs r2, 0x1
-_082E7CE0:
- cmp r2, 0
- bne _082E7D2C
- movs r2, 0
- cmp r0, 0x2
- bne _082E7CEC
- movs r2, 0x1
-_082E7CEC:
- cmp r2, 0
- beq _082E7CF6
- movs r4, 0
- movs r5, 0
- b _082E7D94
-_082E7CF6:
- adds r0, r5, 0
- orrs r0, r4
- cmp r0, 0
- beq _082E7D94
- ldr r2, [r1, 0x8]
- ldr r0, _082E7D14
- cmp r2, r0
- bge _082E7D26
- subs r2, r0, r2
- cmp r2, 0x38
- ble _082E7D18
- movs r4, 0
- movs r5, 0
- b _082E7D86
- .align 2, 0
-_082E7D14: .4byte 0xfffffc02
-_082E7D18:
- adds r1, r5, 0
- adds r0, r4, 0
- bl __lshrdi3
- adds r5, r1, 0
- adds r4, r0, 0
- b _082E7D86
-_082E7D26:
- ldr r0, _082E7D34
- cmp r2, r0
- ble _082E7D3C
-_082E7D2C:
- ldr r6, _082E7D38
- movs r4, 0
- movs r5, 0
- b _082E7D94
- .align 2, 0
-_082E7D34: .4byte 0x000003ff
-_082E7D38: .4byte 0x000007ff
-_082E7D3C:
- ldr r0, _082E7D64
- adds r6, r2, r0
- movs r0, 0xFF
- adds r1, r4, 0
- ands r1, r0
- movs r2, 0
- cmp r1, 0x80
- bne _082E7D68
- cmp r2, 0
- bne _082E7D68
- adds r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- adds r0, r2, 0
- orrs r0, r1
- cmp r0, 0
- beq _082E7D70
- movs r0, 0x80
- movs r1, 0
- b _082E7D6C
- .align 2, 0
-_082E7D64: .4byte 0x000003ff
-_082E7D68:
- movs r0, 0x7F
- movs r1, 0
-_082E7D6C:
- adds r4, r0
- adcs r5, r1
-_082E7D70:
- ldr r0, _082E7DD4
- cmp r5, r0
- bls _082E7D86
- lsls r3, r5, 31
- lsrs r2, r4, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r5, 1
- adds r5, r1, 0
- adds r4, r0, 0
- adds r6, 0x1
-_082E7D86:
- lsls r3, r5, 24
- lsrs r2, r4, 8
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r5, 8
-_082E7D90:
- adds r5, r1, 0
- adds r4, r0, 0
-_082E7D94:
- str r4, [sp]
- ldr r2, _082E7DD8
- ands r2, r5
- ldr r0, [sp, 0x4]
- ldr r1, _082E7DDC
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r2, sp
- ldr r1, _082E7DE0
- adds r0, r1, 0
- ands r6, r0
- lsls r1, r6, 4
- ldr r0, _082E7DE4
- ldrh r3, [r2, 0x6]
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x6]
- lsls r1, r7, 7
- movs r0, 0x7F
- ldrb r3, [r2, 0x7]
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x7]
- ldr r1, [sp]
- ldr r0, [sp, 0x4]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- add sp, 0x8
- pop {r4-r7,pc}
- .align 2, 0
-_082E7DD4: .4byte 0x1fffffff
-_082E7DD8: .4byte 0x000fffff
-_082E7DDC: .4byte 0xfff00000
-_082E7DE0: .4byte 0x000007ff
-_082E7DE4: .4byte 0xffff800f
- thumb_func_end __pack_d
-
- thumb_func_start __unpack_d
-__unpack_d: @ 82E7DE8
- push {r4-r7,lr}
- sub sp, 0x8
- adds r2, r0, 0
- adds r6, r1, 0
- ldr r1, [r2, 0x4]
- str r1, [sp]
- ldr r0, [r2]
- str r0, [sp, 0x4]
- mov r2, sp
- adds r4, r1, 0
- lsls r0, 12
- lsrs r5, r0, 12
- ldrh r3, [r2, 0x6]
- lsls r0, r3, 17
- lsrs r3, r0, 21
- ldrb r2, [r2, 0x7]
- lsrs r0, r2, 7
- str r0, [r6, 0x4]
- cmp r3, 0
- bne _082E7E5C
- orrs r1, r5
- cmp r1, 0
- bne _082E7E1C
- movs r0, 0x2
- str r0, [r6]
- b _082E7EB0
-_082E7E1C:
- ldr r0, _082E7E54
- str r0, [r6, 0x8]
- lsrs r3, r4, 24
- lsls r2, r5, 8
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 8
- adds r5, r1, 0
- adds r4, r0, 0
- movs r0, 0x3
- str r0, [r6]
- ldr r0, _082E7E58
- cmp r5, r0
- bhi _082E7E8C
- adds r7, r0, 0
-_082E7E3A:
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r0, [r6, 0x8]
- subs r0, 0x1
- str r0, [r6, 0x8]
- cmp r5, r7
- bls _082E7E3A
- b _082E7E8C
- .align 2, 0
-_082E7E54: .4byte 0xfffffc02
-_082E7E58: .4byte 0x0fffffff
-_082E7E5C:
- ldr r0, _082E7E70
- cmp r3, r0
- bne _082E7E92
- orrs r1, r5
- cmp r1, 0
- bne _082E7E74
- movs r0, 0x4
- str r0, [r6]
- b _082E7EB0
- .align 2, 0
-_082E7E70: .4byte 0x000007ff
-_082E7E74:
- movs r2, 0x80
- lsls r2, 12
- movs r0, 0
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- cmp r1, 0
- beq _082E7E8A
- movs r0, 0x1
- str r0, [r6]
- b _082E7E8C
-_082E7E8A:
- str r1, [r6]
-_082E7E8C:
- str r4, [r6, 0xC]
- str r5, [r6, 0x10]
- b _082E7EB0
-_082E7E92:
- ldr r1, _082E7EB4
- adds r0, r3, r1
- str r0, [r6, 0x8]
- movs r0, 0x3
- str r0, [r6]
- lsrs r3, r4, 24
- lsls r2, r5, 8
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 8
- ldr r2, _082E7EB8
- ldr r3, _082E7EBC
- orrs r1, r3
- str r0, [r6, 0xC]
- str r1, [r6, 0x10]
-_082E7EB0:
- add sp, 0x8
- pop {r4-r7,pc}
- .align 2, 0
-_082E7EB4: .4byte 0xfffffc01
-_082E7EB8: .4byte 0x00000000
-_082E7EBC: .4byte 0x10000000
- thumb_func_end __unpack_d
-
- thumb_func_start __fpadd_parts_d
-__fpadd_parts_d: @ 82E7EC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r3, r0, 0
- adds r4, r1, 0
- mov r10, r2
- movs r0, 0
- ldr r2, [r3]
- cmp r2, 0x1
- bhi _082E7EDC
- movs r0, 0x1
-_082E7EDC:
- cmp r0, 0
- beq _082E7EE4
-_082E7EE0:
- adds r0, r3, 0
- b _082E811C
-_082E7EE4:
- movs r1, 0
- ldr r0, [r4]
- cmp r0, 0x1
- bhi _082E7EEE
- movs r1, 0x1
-_082E7EEE:
- cmp r1, 0
- bne _082E7F66
- movs r1, 0
- cmp r2, 0x4
- bne _082E7EFA
- movs r1, 0x1
-_082E7EFA:
- cmp r1, 0
- beq _082E7F1C
- movs r1, 0
- cmp r0, 0x4
- bne _082E7F06
- movs r1, 0x1
-_082E7F06:
- cmp r1, 0
- beq _082E7EE0
- ldr r1, [r3, 0x4]
- ldr r0, [r4, 0x4]
- cmp r1, r0
- beq _082E7EE0
- ldr r0, _082E7F18
- b _082E811C
- .align 2, 0
-_082E7F18: .4byte 0x03001a80
-_082E7F1C:
- movs r1, 0
- cmp r0, 0x4
- bne _082E7F24
- movs r1, 0x1
-_082E7F24:
- cmp r1, 0
- bne _082E7F66
- movs r1, 0
- cmp r0, 0x2
- bne _082E7F30
- movs r1, 0x1
-_082E7F30:
- cmp r1, 0
- beq _082E7F58
- movs r0, 0
- cmp r2, 0x2
- bne _082E7F3C
- movs r0, 0x1
-_082E7F3C:
- cmp r0, 0
- beq _082E7EE0
- mov r1, r10
- adds r0, r3, 0
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r2,r5}
- stm r1!, {r2,r5}
- ldr r0, [r3, 0x4]
- ldr r1, [r4, 0x4]
- ands r0, r1
- mov r6, r10
- str r0, [r6, 0x4]
- b _082E811A
-_082E7F58:
- movs r1, 0
- ldr r0, [r3]
- cmp r0, 0x2
- bne _082E7F62
- movs r1, 0x1
-_082E7F62:
- cmp r1, 0
- beq _082E7F6A
-_082E7F66:
- adds r0, r4, 0
- b _082E811C
-_082E7F6A:
- ldr r0, [r3, 0x8]
- mov r9, r0
- ldr r1, [r4, 0x8]
- mov r8, r1
- ldr r6, [r3, 0xC]
- ldr r7, [r3, 0x10]
- ldr r0, [r4, 0xC]
- ldr r1, [r4, 0x10]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r1, r9
- mov r2, r8
- subs r0, r1, r2
- cmp r0, 0
- bge _082E7F8A
- negs r0, r0
-_082E7F8A:
- cmp r0, 0x3F
- bgt _082E8008
- ldr r3, [r3, 0x4]
- mov r12, r3
- ldr r4, [r4, 0x4]
- str r4, [sp, 0x8]
- cmp r9, r8
- ble _082E7FD4
- mov r3, r9
- mov r4, r8
- subs r3, r4
- mov r8, r3
-_082E7FA2:
- movs r5, 0x1
- negs r5, r5
- add r8, r5
- ldr r2, [sp]
- movs r0, 0x1
- ands r2, r0
- movs r3, 0
- ldr r1, [sp, 0x4]
- lsls r5, r1, 31
- ldr r0, [sp]
- lsrs r4, r0, 1
- adds r0, r5, 0
- orrs r0, r4
- adds r4, r1, 0
- lsrs r1, r4, 1
- adds r5, r2, 0
- orrs r5, r0
- str r5, [sp]
- adds r4, r3, 0
- orrs r4, r1
- str r4, [sp, 0x4]
- mov r5, r8
- cmp r5, 0
- bne _082E7FA2
- mov r8, r9
-_082E7FD4:
- cmp r8, r9
- ble _082E8024
- mov r0, r8
- mov r1, r9
- subs r0, r1
- mov r9, r0
-_082E7FE0:
- movs r2, 0x1
- negs r2, r2
- add r9, r2
- movs r2, 0x1
- ands r2, r6
- movs r3, 0
- lsls r5, r7, 31
- lsrs r4, r6, 1
- adds r0, r5, 0
- orrs r0, r4
- lsrs r1, r7, 1
- adds r6, r2, 0
- orrs r6, r0
- adds r7, r3, 0
- orrs r7, r1
- mov r3, r9
- cmp r3, 0
- bne _082E7FE0
- mov r9, r8
- b _082E8024
-_082E8008:
- cmp r9, r8
- ble _082E8016
- movs r0, 0
- movs r1, 0
- str r0, [sp]
- str r1, [sp, 0x4]
- b _082E801C
-_082E8016:
- mov r9, r8
- movs r6, 0
- movs r7, 0
-_082E801C:
- ldr r3, [r3, 0x4]
- mov r12, r3
- ldr r4, [r4, 0x4]
- str r4, [sp, 0x8]
-_082E8024:
- ldr r1, [sp, 0x8]
- cmp r12, r1
- beq _082E80CC
- mov r2, r12
- cmp r2, 0
- beq _082E8046
- adds r1, r7, 0
- adds r0, r6, 0
- bl __negdi2
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r4, [sp]
- ldr r5, [sp, 0x4]
- adds r2, r4
- adcs r3, r5
- b _082E8052
-_082E8046:
- adds r3, r7, 0
- adds r2, r6, 0
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- subs r2, r0
- sbcs r3, r1
-_082E8052:
- cmp r3, 0
- blt _082E8068
- movs r0, 0
- mov r1, r10
- str r0, [r1, 0x4]
- mov r4, r9
- str r4, [r1, 0x8]
- mov r5, r10
- str r2, [r5, 0xC]
- str r3, [r5, 0x10]
- b _082E8080
-_082E8068:
- movs r0, 0x1
- mov r6, r10
- str r0, [r6, 0x4]
- mov r0, r9
- str r0, [r6, 0x8]
- adds r1, r3, 0
- adds r0, r2, 0
- bl __negdi2
- mov r2, r10
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
-_082E8080:
- mov r4, r10
- ldr r2, [r4, 0xC]
- ldr r3, [r4, 0x10]
- movs r0, 0x1
- negs r0, r0
- asrs r1, r0, 31
-_082E808C:
- adds r2, r0
- adcs r3, r1
- ldr r0, _082E80C8
- cmp r3, r0
- bhi _082E80E4
- cmp r3, r0
- bne _082E80A2
- movs r0, 0x2
- negs r0, r0
- cmp r2, r0
- bhi _082E80E4
-_082E80A2:
- mov r5, r10
- ldr r0, [r5, 0xC]
- ldr r1, [r5, 0x10]
- lsrs r3, r0, 31
- lsls r2, r1, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, 1
- mov r6, r10
- str r0, [r6, 0xC]
- str r1, [r6, 0x10]
- ldr r2, [r6, 0x8]
- subs r2, 0x1
- str r2, [r6, 0x8]
- movs r2, 0x1
- negs r2, r2
- asrs r3, r2, 31
- b _082E808C
- .align 2, 0
-_082E80C8: .4byte 0x0fffffff
-_082E80CC:
- mov r0, r12
- mov r1, r10
- str r0, [r1, 0x4]
- mov r2, r9
- str r2, [r1, 0x8]
- ldr r3, [sp]
- ldr r4, [sp, 0x4]
- adds r6, r3
- adcs r7, r4
- mov r4, r10
- str r6, [r4, 0xC]
- str r7, [r4, 0x10]
-_082E80E4:
- movs r0, 0x3
- mov r5, r10
- str r0, [r5]
- ldr r1, [r5, 0x10]
- ldr r0, _082E8128
- cmp r1, r0
- bls _082E811A
- ldr r4, [r5, 0xC]
- ldr r5, [r5, 0x10]
- movs r2, 0x1
- adds r0, r4, 0
- ands r0, r2
- movs r1, 0
- lsls r6, r5, 31
- mov r8, r6
- lsrs r6, r4, 1
- mov r2, r8
- orrs r2, r6
- lsrs r3, r5, 1
- orrs r0, r2
- orrs r1, r3
- mov r2, r10
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
- ldr r0, [r2, 0x8]
- adds r0, 0x1
- str r0, [r2, 0x8]
-_082E811A:
- mov r0, r10
-_082E811C:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E8128: .4byte 0x1fffffff
- thumb_func_end __fpadd_parts_d
-
- thumb_func_start __adddf3
-@ double __adddf3(double arg_a, double arg_b)
-__adddf3: @ 82E812C
- push {r4,lr}
- sub sp, 0x4C
- str r0, [sp, 0x3C]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- add r0, sp, 0x3C
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x44
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- add r2, sp, 0x28
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_d
- bl __pack_d
- add sp, 0x4C
- pop {r4,pc}
- thumb_func_end __adddf3
-
- thumb_func_start __subdf3
-__subdf3: @ 82E815C
- push {r4,lr}
- sub sp, 0x4C
- str r0, [sp, 0x3C]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- add r0, sp, 0x3C
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x44
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- ldr r0, [r4, 0x4]
- movs r1, 0x1
- eors r0, r1
- str r0, [r4, 0x4]
- add r2, sp, 0x28
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_d
- bl __pack_d
- add sp, 0x4C
- pop {r4,pc}
- thumb_func_end __subdf3
-
- thumb_func_start __muldf3
-__muldf3: @ 82E8194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- str r0, [sp, 0x3C]
- str r1, [sp, 0x40]
- str r2, [sp, 0x44]
- str r3, [sp, 0x48]
- add r0, sp, 0x3C
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x44
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- mov r8, sp
- add r0, sp, 0x28
- mov r10, r0
- movs r0, 0
- ldr r1, [sp]
- cmp r1, 0x1
- bhi _082E81CA
- movs r0, 0x1
-_082E81CA:
- cmp r0, 0
- bne _082E822E
- movs r2, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E81D8
- movs r2, 0x1
-_082E81D8:
- cmp r2, 0
- beq _082E81E0
- ldr r0, [sp, 0x4]
- b _082E8250
-_082E81E0:
- movs r2, 0
- cmp r1, 0x4
- bne _082E81E8
- movs r2, 0x1
-_082E81E8:
- cmp r2, 0
- beq _082E81FA
- movs r1, 0
- cmp r0, 0x2
- bne _082E81F4
- movs r1, 0x1
-_082E81F4:
- cmp r1, 0
- bne _082E8212
- b _082E822E
-_082E81FA:
- movs r2, 0
- cmp r0, 0x4
- bne _082E8202
- movs r2, 0x1
-_082E8202:
- cmp r2, 0
- beq _082E8222
- movs r0, 0
- cmp r1, 0x2
- bne _082E820E
- movs r0, 0x1
-_082E820E:
- cmp r0, 0
- beq _082E821C
-_082E8212:
- ldr r0, _082E8218
- b _082E841A
- .align 2, 0
-_082E8218: .4byte 0x03001a80
-_082E821C:
- mov r1, r8
- ldr r0, [r1, 0x4]
- b _082E8250
-_082E8222:
- movs r2, 0
- cmp r1, 0x2
- bne _082E822A
- movs r2, 0x1
-_082E822A:
- cmp r2, 0
- beq _082E8240
-_082E822E:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x18]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x4]
- mov r0, sp
- b _082E841A
-_082E8240:
- movs r1, 0
- cmp r0, 0x2
- bne _082E8248
- movs r1, 0x1
-_082E8248:
- cmp r1, 0
- beq _082E8260
- mov r2, r8
- ldr r0, [r2, 0x4]
-_082E8250:
- ldr r1, [sp, 0x18]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- adds r0, r4, 0
- b _082E841A
-_082E8260:
- mov r4, r8
- ldr r0, [r4, 0xC]
- ldr r1, [r4, 0x10]
- adds r6, r0, 0
- movs r7, 0
- str r1, [sp, 0x4C]
- movs r5, 0
- str r5, [sp, 0x50]
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x24]
- adds r4, r0, 0
- str r1, [sp, 0x54]
- movs r0, 0
- str r0, [sp, 0x58]
- adds r1, r5, 0
- adds r0, r4, 0
- adds r3, r7, 0
- adds r2, r6, 0
- bl __muldi3
- str r0, [sp, 0x5C]
- str r1, [sp, 0x60]
- ldr r0, [sp, 0x54]
- ldr r1, [sp, 0x58]
- adds r3, r7, 0
- adds r2, r6, 0
- bl __muldi3
- adds r7, r1, 0
- adds r6, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x4C]
- ldr r3, [sp, 0x50]
- bl __muldi3
- adds r5, r1, 0
- adds r4, r0, 0
- ldr r0, [sp, 0x54]
- ldr r1, [sp, 0x58]
- ldr r2, [sp, 0x4C]
- ldr r3, [sp, 0x50]
- bl __muldi3
- str r0, [sp, 0x64]
- str r1, [sp, 0x68]
- movs r1, 0
- movs r2, 0
- str r1, [sp, 0x6C]
- str r2, [sp, 0x70]
- adds r3, r7, 0
- adds r2, r6, 0
- adds r2, r4
- adcs r3, r5
- cmp r7, r3
- bhi _082E82D8
- cmp r7, r3
- bne _082E82E0
- cmp r6, r2
- bls _082E82E0
-_082E82D8:
- ldr r5, _082E8430
- ldr r4, _082E842C
- str r4, [sp, 0x6C]
- str r5, [sp, 0x70]
-_082E82E0:
- adds r1, r2, 0
- movs r6, 0
- adds r7, r1, 0
- ldr r0, [sp, 0x5C]
- ldr r1, [sp, 0x60]
- adds r6, r0
- adcs r7, r1
- cmp r1, r7
- bhi _082E82FC
- ldr r1, [sp, 0x60]
- cmp r1, r7
- bne _082E830C
- cmp r0, r6
- bls _082E830C
-_082E82FC:
- movs r0, 0x1
- movs r1, 0
- ldr r4, [sp, 0x6C]
- ldr r5, [sp, 0x70]
- adds r4, r0
- adcs r5, r1
- str r4, [sp, 0x6C]
- str r5, [sp, 0x70]
-_082E830C:
- adds r0, r3, 0
- adds r2, r0, 0
- movs r3, 0
- adds r5, r3, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x64]
- ldr r1, [sp, 0x68]
- adds r4, r0
- adcs r5, r1
- ldr r1, [sp, 0x6C]
- ldr r2, [sp, 0x70]
- adds r4, r1
- adcs r5, r2
- mov r0, r8
- ldr r2, [r0, 0x8]
- ldr r0, [sp, 0x1C]
- adds r2, r0
- str r2, [sp, 0x30]
- mov r0, r8
- ldr r1, [r0, 0x4]
- ldr r0, [sp, 0x18]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- str r0, [sp, 0x2C]
- adds r2, 0x4
- str r2, [sp, 0x30]
- ldr r0, _082E8434
- cmp r5, r0
- bls _082E838E
- movs r1, 0x1
- mov r9, r1
- mov r8, r0
- mov r12, r2
-_082E8352:
- movs r2, 0x1
- add r12, r2
- mov r0, r9
- ands r0, r4
- cmp r0, 0
- beq _082E8378
- lsls r3, r7, 31
- lsrs r2, r6, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r7, 1
- adds r7, r1, 0
- adds r6, r0, 0
- adds r0, r6, 0
- movs r1, 0x80
- lsls r1, 24
- orrs r1, r7
- adds r7, r1, 0
- adds r6, r0, 0
-_082E8378:
- lsls r3, r5, 31
- lsrs r2, r4, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r5, 1
- adds r5, r1, 0
- adds r4, r0, 0
- cmp r5, r8
- bhi _082E8352
- mov r0, r12
- str r0, [sp, 0x30]
-_082E838E:
- ldr r0, _082E8438
- cmp r5, r0
- bhi _082E83E0
- movs r1, 0x80
- lsls r1, 24
- mov r9, r1
- mov r8, r0
- ldr r2, [sp, 0x30]
- mov r12, r2
-_082E83A0:
- movs r0, 0x1
- negs r0, r0
- add r12, r0
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- movs r0, 0
- mov r1, r9
- ands r1, r7
- orrs r0, r1
- cmp r0, 0
- beq _082E83CA
- movs r0, 0x1
- orrs r0, r4
- adds r1, r5, 0
- adds r5, r1, 0
- adds r4, r0, 0
-_082E83CA:
- lsrs r3, r6, 31
- lsls r2, r7, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r6, 1
- adds r7, r1, 0
- adds r6, r0, 0
- cmp r5, r8
- bls _082E83A0
- mov r1, r12
- str r1, [sp, 0x30]
-_082E83E0:
- movs r0, 0xFF
- adds r1, r4, 0
- ands r1, r0
- movs r2, 0
- cmp r1, 0x80
- bne _082E840E
- cmp r2, 0
- bne _082E840E
- adds r0, 0x1
- adds r1, r4, 0
- ands r1, r0
- adds r0, r2, 0
- orrs r0, r1
- cmp r0, 0
- bne _082E8406
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- beq _082E840E
-_082E8406:
- movs r0, 0x80
- movs r1, 0
- adds r4, r0
- adcs r5, r1
-_082E840E:
- str r4, [sp, 0x34]
- str r5, [sp, 0x38]
- movs r0, 0x3
- mov r2, r10
- str r0, [r2]
- add r0, sp, 0x28
-_082E841A:
- bl __pack_d
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7,pc}
- .align 2, 0
-_082E842C: .4byte 0x00000000
-_082E8430: .4byte 0x00000001
-_082E8434: .4byte 0x1fffffff
-_082E8438: .4byte 0x0fffffff
- thumb_func_end __muldf3
-
- thumb_func_start __divdf3
-__divdf3: @ 82E843C
- push {r4-r7,lr}
- sub sp, 0x48
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- mov r12, sp
- movs r0, 0
- ldr r3, [sp]
- cmp r3, 0x1
- bhi _082E8466
- movs r0, 0x1
-_082E8466:
- cmp r0, 0
- beq _082E846E
- mov r1, sp
- b _082E85B0
-_082E846E:
- movs r0, 0
- ldr r2, [sp, 0x14]
- adds r5, r2, 0
- cmp r2, 0x1
- bhi _082E847A
- movs r0, 0x1
-_082E847A:
- cmp r0, 0
- beq _082E8482
- adds r1, r4, 0
- b _082E85B0
-_082E8482:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x18]
- eors r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r3, 0x4
- bne _082E8492
- movs r0, 0x1
-_082E8492:
- cmp r0, 0
- bne _082E84A2
- movs r4, 0
- cmp r3, 0x2
- bne _082E849E
- movs r4, 0x1
-_082E849E:
- cmp r4, 0
- beq _082E84B4
-_082E84A2:
- mov r1, r12
- ldr r0, [r1]
- cmp r0, r5
- beq _082E84AC
- b _082E85B0
-_082E84AC:
- ldr r1, _082E84B0
- b _082E85B0
- .align 2, 0
-_082E84B0: .4byte 0x03001a80
-_082E84B4:
- movs r0, 0
- cmp r2, 0x4
- bne _082E84BC
- movs r0, 0x1
-_082E84BC:
- cmp r0, 0
- beq _082E84CE
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- str r4, [sp, 0x8]
- mov r1, sp
- b _082E85B0
-_082E84CE:
- movs r0, 0
- cmp r2, 0x2
- bne _082E84D6
- movs r0, 0x1
-_082E84D6:
- cmp r0, 0
- beq _082E84E2
- movs r0, 0x4
- mov r2, r12
- str r0, [r2]
- b _082E85AE
-_082E84E2:
- mov r3, r12
- ldr r1, [r3, 0x8]
- ldr r0, [sp, 0x1C]
- subs r6, r1, r0
- str r6, [r3, 0x8]
- ldr r4, [r3, 0xC]
- ldr r5, [r3, 0x10]
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x24]
- str r0, [sp, 0x38]
- str r1, [sp, 0x3C]
- cmp r1, r5
- bhi _082E8506
- ldr r1, [sp, 0x3C]
- cmp r1, r5
- bne _082E851A
- cmp r0, r4
- bls _082E851A
-_082E8506:
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- subs r0, r6, 0x1
- mov r2, r12
- str r0, [r2, 0x8]
-_082E851A:
- ldr r7, _082E85C0
- ldr r6, _082E85BC
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
-_082E8526:
- ldr r1, [sp, 0x3C]
- cmp r1, r5
- bhi _082E854A
- cmp r1, r5
- bne _082E8536
- ldr r2, [sp, 0x38]
- cmp r2, r4
- bhi _082E854A
-_082E8536:
- ldr r0, [sp, 0x40]
- orrs r0, r6
- ldr r1, [sp, 0x44]
- orrs r1, r7
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- ldr r0, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- subs r4, r0
- sbcs r5, r1
-_082E854A:
- lsls r3, r7, 31
- lsrs r2, r6, 1
- adds r0, r3, 0
- orrs r0, r2
- lsrs r1, r7, 1
- adds r7, r1, 0
- adds r6, r0, 0
- lsrs r3, r4, 31
- lsls r2, r5, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, r4, 1
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _082E8526
- movs r0, 0xFF
- ldr r1, [sp, 0x40]
- ands r1, r0
- movs r2, 0
- cmp r1, 0x80
- bne _082E85A4
- cmp r2, 0
- bne _082E85A4
- adds r0, 0x1
- ldr r1, [sp, 0x40]
- ands r1, r0
- adds r0, r2, 0
- orrs r0, r1
- cmp r0, 0
- bne _082E8594
- adds r0, r5, 0
- orrs r0, r4
- cmp r0, 0
- beq _082E85A4
-_082E8594:
- movs r0, 0x80
- movs r1, 0
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x44]
- adds r2, r0
- adcs r3, r1
- str r2, [sp, 0x40]
- str r3, [sp, 0x44]
-_082E85A4:
- ldr r0, [sp, 0x40]
- ldr r1, [sp, 0x44]
- mov r2, r12
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
-_082E85AE:
- mov r1, r12
-_082E85B0:
- adds r0, r1, 0
- bl __pack_d
- add sp, 0x48
- pop {r4-r7,pc}
- .align 2, 0
-_082E85BC: .4byte 0x00000000
-_082E85C0: .4byte 0x10000000
- thumb_func_end __divdf3
-
- thumb_func_start __fpcmp_parts_d
-__fpcmp_parts_d: @ 82E85C4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0
- ldr r1, [r5]
- cmp r1, 0x1
- bhi _082E85D4
- movs r0, 0x1
-_082E85D4:
- cmp r0, 0
- bne _082E85E6
- movs r0, 0
- ldr r2, [r6]
- cmp r2, 0x1
- bhi _082E85E2
- movs r0, 0x1
-_082E85E2:
- cmp r0, 0
- beq _082E85EA
-_082E85E6:
- movs r0, 0x1
- b _082E86C0
-_082E85EA:
- movs r0, 0
- cmp r1, 0x4
- bne _082E85F2
- movs r0, 0x1
-_082E85F2:
- cmp r0, 0
- beq _082E860A
- movs r0, 0
- cmp r2, 0x4
- bne _082E85FE
- movs r0, 0x1
-_082E85FE:
- cmp r0, 0
- beq _082E860A
- ldr r0, [r6, 0x4]
- ldr r1, [r5, 0x4]
- subs r0, r1
- b _082E86C0
-_082E860A:
- movs r1, 0
- ldr r0, [r5]
- cmp r0, 0x4
- bne _082E8614
- movs r1, 0x1
-_082E8614:
- cmp r1, 0
- bne _082E8662
- movs r1, 0
- cmp r2, 0x4
- bne _082E8620
- movs r1, 0x1
-_082E8620:
- cmp r1, 0
- beq _082E8632
-_082E8624:
- ldr r0, [r6, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, 0
- beq _082E866C
- movs r1, 0x1
- b _082E866C
-_082E8632:
- movs r1, 0
- cmp r0, 0x2
- bne _082E863A
- movs r1, 0x1
-_082E863A:
- cmp r1, 0
- beq _082E864A
- movs r1, 0
- cmp r2, 0x2
- bne _082E8646
- movs r1, 0x1
-_082E8646:
- cmp r1, 0
- bne _082E86BE
-_082E864A:
- movs r1, 0
- cmp r0, 0x2
- bne _082E8652
- movs r1, 0x1
-_082E8652:
- cmp r1, 0
- bne _082E8624
- movs r0, 0
- cmp r2, 0x2
- bne _082E865E
- movs r0, 0x1
-_082E865E:
- cmp r0, 0
- beq _082E8670
-_082E8662:
- ldr r0, [r5, 0x4]
- movs r1, 0x1
- cmp r0, 0
- beq _082E866C
- subs r1, 0x2
-_082E866C:
- adds r0, r1, 0
- b _082E86C0
-_082E8670:
- ldr r0, [r6, 0x4]
- ldr r4, [r5, 0x4]
- cmp r4, r0
- beq _082E8682
-_082E8678:
- movs r0, 0x1
- cmp r4, 0
- beq _082E86C0
- subs r0, 0x2
- b _082E86C0
-_082E8682:
- ldr r1, [r5, 0x8]
- ldr r0, [r6, 0x8]
- cmp r1, r0
- bgt _082E8678
- cmp r1, r0
- bge _082E869A
-_082E868E:
- movs r0, 0x1
- negs r0, r0
- cmp r4, 0
- beq _082E86C0
- movs r0, 0x1
- b _082E86C0
-_082E869A:
- ldr r3, [r5, 0x10]
- ldr r2, [r6, 0x10]
- cmp r3, r2
- bhi _082E8678
- cmp r3, r2
- bne _082E86AE
- ldr r1, [r5, 0xC]
- ldr r0, [r6, 0xC]
- cmp r1, r0
- bhi _082E8678
-_082E86AE:
- cmp r2, r3
- bhi _082E868E
- cmp r2, r3
- bne _082E86BE
- ldr r1, [r6, 0xC]
- ldr r0, [r5, 0xC]
- cmp r1, r0
- bhi _082E868E
-_082E86BE:
- movs r0, 0
-_082E86C0:
- pop {r4-r6,pc}
- thumb_func_end __fpcmp_parts_d
-
- thumb_func_start __cmpdf2
-__cmpdf2: @ 82E86C4
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __cmpdf2
-
- thumb_func_start __eqdf2
-__eqdf2: @ 82E86F0
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8718
- movs r1, 0x1
-_082E8718:
- cmp r1, 0
- bne _082E872A
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E8726
- movs r1, 0x1
-_082E8726:
- cmp r1, 0
- beq _082E872E
-_082E872A:
- movs r0, 0x1
- b _082E8736
-_082E872E:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E8736:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __eqdf2
-
- thumb_func_start __nedf2
-__nedf2: @ 82E873C
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8764
- movs r1, 0x1
-_082E8764:
- cmp r1, 0
- bne _082E8776
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E8772
- movs r1, 0x1
-_082E8772:
- cmp r1, 0
- beq _082E877A
-_082E8776:
- movs r0, 0x1
- b _082E8782
-_082E877A:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E8782:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __nedf2
-
- thumb_func_start __gtdf2
-__gtdf2: @ 82E8788
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E87B0
- movs r1, 0x1
-_082E87B0:
- cmp r1, 0
- bne _082E87C2
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E87BE
- movs r1, 0x1
-_082E87BE:
- cmp r1, 0
- beq _082E87C8
-_082E87C2:
- movs r0, 0x1
- negs r0, r0
- b _082E87D0
-_082E87C8:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E87D0:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __gtdf2
-
- thumb_func_start __gedf2
-@ int __gedf2(double arg_a, double arg_b)
-__gedf2: @ 82E87D4
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E87FC
- movs r1, 0x1
-_082E87FC:
- cmp r1, 0
- bne _082E880E
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E880A
- movs r1, 0x1
-_082E880A:
- cmp r1, 0
- beq _082E8814
-_082E880E:
- movs r0, 0x1
- negs r0, r0
- b _082E881C
-_082E8814:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E881C:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __gedf2
-
- thumb_func_start __ltdf2
-__ltdf2: @ 82E8820
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8848
- movs r1, 0x1
-_082E8848:
- cmp r1, 0
- bne _082E885A
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E8856
- movs r1, 0x1
-_082E8856:
- cmp r1, 0
- beq _082E885E
-_082E885A:
- movs r0, 0x1
- b _082E8866
-_082E885E:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E8866:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __ltdf2
-
- thumb_func_start __ledf2
-__ledf2: @ 82E886C
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x28]
- str r1, [sp, 0x2C]
- str r2, [sp, 0x30]
- str r3, [sp, 0x34]
- add r0, sp, 0x28
- mov r1, sp
- bl __unpack_d
- add r0, sp, 0x30
- add r4, sp, 0x14
- adds r1, r4, 0
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E8894
- movs r1, 0x1
-_082E8894:
- cmp r1, 0
- bne _082E88A6
- movs r1, 0
- ldr r0, [sp, 0x14]
- cmp r0, 0x1
- bhi _082E88A2
- movs r1, 0x1
-_082E88A2:
- cmp r1, 0
- beq _082E88AA
-_082E88A6:
- movs r0, 0x1
- b _082E88B2
-_082E88AA:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_d
-_082E88B2:
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __ledf2
-
- thumb_func_start __floatsidf
-__floatsidf: @ 82E88B8
- push {r4,r5,lr}
- sub sp, 0x14
- adds r2, r0, 0
- movs r0, 0x3
- str r0, [sp]
- lsrs r1, r2, 31
- str r1, [sp, 0x4]
- cmp r2, 0
- bne _082E88D0
- movs r0, 0x2
- str r0, [sp]
- b _082E8926
-_082E88D0:
- movs r0, 0x3C
- str r0, [sp, 0x8]
- cmp r1, 0
- beq _082E88F6
- movs r0, 0x80
- lsls r0, 24
- cmp r2, r0
- bne _082E88F0
- ldr r1, _082E88EC
- ldr r0, _082E88E8
- b _082E892C
- .align 2, 0
-_082E88E8: .4byte 0xc1e00000
-_082E88EC: .4byte 0x00000000
-_082E88F0:
- negs r0, r2
- asrs r1, r0, 31
- b _082E88FA
-_082E88F6:
- adds r0, r2, 0
- asrs r1, r2, 31
-_082E88FA:
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x10]
- ldr r1, _082E8930
- cmp r0, r1
- bhi _082E8926
- adds r5, r1, 0
- ldr r4, [sp, 0x8]
-_082E890A:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- lsrs r3, r0, 31
- lsls r2, r1, 1
- adds r1, r3, 0
- orrs r1, r2
- lsls r0, 1
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- subs r4, 0x1
- ldr r0, [sp, 0x10]
- cmp r0, r5
- bls _082E890A
- str r4, [sp, 0x8]
-_082E8926:
- mov r0, sp
- bl __pack_d
-_082E892C:
- add sp, 0x14
- pop {r4,r5,pc}
- .align 2, 0
-_082E8930: .4byte 0x0fffffff
- thumb_func_end __floatsidf
-
- thumb_func_start __fixdfsi
-@ int __fixdfsi(double arg_a)
-__fixdfsi: @ 82E8934
- push {lr}
- sub sp, 0x1C
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- add r0, sp, 0x14
- mov r1, sp
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x2
- bne _082E894E
- movs r1, 0x1
-_082E894E:
- cmp r1, 0
- bne _082E8982
- movs r1, 0
- cmp r0, 0x1
- bhi _082E895A
- movs r1, 0x1
-_082E895A:
- cmp r1, 0
- bne _082E8982
- movs r1, 0
- cmp r0, 0x4
- bne _082E8966
- movs r1, 0x1
-_082E8966:
- cmp r1, 0
- beq _082E897C
-_082E896A:
- ldr r0, [sp, 0x4]
- ldr r1, _082E8978
- cmp r0, 0
- beq _082E89A0
- adds r1, 0x1
- b _082E89A0
- .align 2, 0
-_082E8978: .4byte 0x7fffffff
-_082E897C:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bge _082E8986
-_082E8982:
- movs r0, 0
- b _082E89A2
-_082E8986:
- cmp r0, 0x1E
- bgt _082E896A
- movs r2, 0x3C
- subs r2, r0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- bl __lshrdi3
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _082E89A0
- negs r1, r1
-_082E89A0:
- adds r0, r1, 0
-_082E89A2:
- add sp, 0x1C
- pop {pc}
- thumb_func_end __fixdfsi
-
- thumb_func_start __negdf2
-__negdf2: @ 82E89A8
- push {lr}
- sub sp, 0x1C
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- add r0, sp, 0x14
- mov r1, sp
- bl __unpack_d
- movs r1, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _082E89C2
- movs r1, 0x1
-_082E89C2:
- str r1, [sp, 0x4]
- mov r0, sp
- bl __pack_d
- add sp, 0x1C
- pop {pc}
- thumb_func_end __negdf2
-
- thumb_func_start __make_dp
-__make_dp: @ 82E89D0
- sub sp, 0x4
- push {r4,lr}
- sub sp, 0x14
- str r3, [sp, 0x1C]
- ldr r3, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- str r4, [sp, 0x10]
- mov r0, sp
- bl __pack_d
- add sp, 0x14
- pop {r4}
- pop {r3}
- add sp, 0x4
- bx r3
- thumb_func_end __make_dp
-
- thumb_func_start __truncdfsf2
-__truncdfsf2: @ 82E89F8
- push {r4,r5,lr}
- sub sp, 0x1C
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- add r0, sp, 0x14
- mov r1, sp
- bl __unpack_d
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- lsls r5, r3, 2
- lsrs r4, r2, 30
- adds r0, r5, 0
- orrs r0, r4
- adds r5, r0, 0
- ldr r4, _082E8A38
- adds r0, r2, 0
- ands r0, r4
- movs r1, 0
- orrs r0, r1
- cmp r0, 0
- beq _082E8A28
- movs r0, 0x1
- orrs r5, r0
-_082E8A28:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- adds r3, r5, 0
- bl __make_fp
- add sp, 0x1C
- pop {r4,r5,pc}
- .align 2, 0
-_082E8A38: .4byte 0x3fffffff
- thumb_func_end __truncdfsf2
-
- thumb_func_start __pack_f
-__pack_f: @ 82E8A3C
- push {r4-r6,lr}
- ldr r2, [r0, 0xC]
- ldr r6, [r0, 0x4]
- movs r5, 0
- movs r1, 0
- ldr r3, [r0]
- cmp r3, 0x1
- bhi _082E8A4E
- movs r1, 0x1
-_082E8A4E:
- cmp r1, 0
- beq _082E8A5C
- movs r5, 0xFF
- movs r0, 0x80
- lsls r0, 13
- orrs r2, r0
- b _082E8AC2
-_082E8A5C:
- movs r1, 0
- cmp r3, 0x4
- bne _082E8A64
- movs r1, 0x1
-_082E8A64:
- cmp r1, 0
- bne _082E8A98
- movs r1, 0
- cmp r3, 0x2
- bne _082E8A70
- movs r1, 0x1
-_082E8A70:
- cmp r1, 0
- beq _082E8A78
- movs r2, 0
- b _082E8AC2
-_082E8A78:
- cmp r2, 0
- beq _082E8AC2
- ldr r0, [r0, 0x8]
- movs r3, 0x7E
- negs r3, r3
- cmp r0, r3
- bge _082E8A94
- subs r0, r3, r0
- cmp r0, 0x19
- ble _082E8A90
- movs r2, 0
- b _082E8AC0
-_082E8A90:
- lsrs r2, r0
- b _082E8AC0
-_082E8A94:
- cmp r0, 0x7F
- ble _082E8A9E
-_082E8A98:
- movs r5, 0xFF
- movs r2, 0
- b _082E8AC2
-_082E8A9E:
- adds r5, r0, 0
- adds r5, 0x7F
- movs r0, 0x7F
- ands r0, r2
- cmp r0, 0x40
- bne _082E8AB6
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _082E8AB8
- adds r2, 0x40
- b _082E8AB8
-_082E8AB6:
- adds r2, 0x3F
-_082E8AB8:
- cmp r2, 0
- bge _082E8AC0
- lsrs r2, 1
- adds r5, 0x1
-_082E8AC0:
- lsrs r2, 7
-_082E8AC2:
- ldr r0, _082E8AE4
- ands r2, r0
- ldr r0, _082E8AE8
- ands r4, r0
- orrs r4, r2
- movs r0, 0xFF
- ands r5, r0
- lsls r1, r5, 23
- ldr r0, _082E8AEC
- ands r4, r0
- orrs r4, r1
- lsls r1, r6, 31
- ldr r0, _082E8AF0
- ands r4, r0
- orrs r4, r1
- adds r0, r4, 0
- pop {r4-r6,pc}
- .align 2, 0
-_082E8AE4: .4byte 0x007fffff
-_082E8AE8: .4byte 0xff800000
-_082E8AEC: .4byte 0x807fffff
-_082E8AF0: .4byte 0x7fffffff
- thumb_func_end __pack_f
-
- thumb_func_start __unpack_f
-__unpack_f: @ 82E8AF4
- push {r4,lr}
- adds r3, r1, 0
- ldr r0, [r0]
- lsls r1, r0, 9
- lsrs r2, r1, 9
- lsls r1, r0, 1
- lsrs r1, 24
- lsrs r0, 31
- str r0, [r3, 0x4]
- cmp r1, 0
- bne _082E8B38
- cmp r2, 0
- bne _082E8B14
- movs r0, 0x2
- str r0, [r3]
- b _082E8B6C
-_082E8B14:
- adds r4, r1, 0
- subs r4, 0x7E
- str r4, [r3, 0x8]
- lsls r2, 7
- movs r0, 0x3
- str r0, [r3]
- ldr r1, _082E8B34
- cmp r2, r1
- bhi _082E8B54
- adds r0, r4, 0
-_082E8B28:
- lsls r2, 1
- subs r0, 0x1
- cmp r2, r1
- bls _082E8B28
- str r0, [r3, 0x8]
- b _082E8B54
- .align 2, 0
-_082E8B34: .4byte 0x3fffffff
-_082E8B38:
- cmp r1, 0xFF
- bne _082E8B58
- cmp r2, 0
- bne _082E8B46
- movs r0, 0x4
- str r0, [r3]
- b _082E8B6C
-_082E8B46:
- movs r0, 0x80
- lsls r0, 13
- ands r0, r2
- cmp r0, 0
- beq _082E8B52
- movs r0, 0x1
-_082E8B52:
- str r0, [r3]
-_082E8B54:
- str r2, [r3, 0xC]
- b _082E8B6C
-_082E8B58:
- adds r0, r1, 0
- subs r0, 0x7F
- str r0, [r3, 0x8]
- movs r0, 0x3
- str r0, [r3]
- lsls r0, r2, 7
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r3, 0xC]
-_082E8B6C:
- pop {r4,pc}
- thumb_func_end __unpack_f
-
- thumb_func_start __fpadd_parts_f
-__fpadd_parts_f: @ 82E8B70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r7, r1, 0
- adds r5, r2, 0
- movs r0, 0
- ldr r2, [r6]
- cmp r2, 0x1
- bhi _082E8B86
- movs r0, 0x1
-_082E8B86:
- cmp r0, 0
- beq _082E8B8E
-_082E8B8A:
- adds r0, r6, 0
- b _082E8CE4
-_082E8B8E:
- movs r1, 0
- ldr r0, [r7]
- cmp r0, 0x1
- bhi _082E8B98
- movs r1, 0x1
-_082E8B98:
- cmp r1, 0
- bne _082E8C0C
- movs r1, 0
- cmp r2, 0x4
- bne _082E8BA4
- movs r1, 0x1
-_082E8BA4:
- cmp r1, 0
- beq _082E8BC4
- movs r1, 0
- cmp r0, 0x4
- bne _082E8BB0
- movs r1, 0x1
-_082E8BB0:
- cmp r1, 0
- beq _082E8B8A
- ldr r1, [r6, 0x4]
- ldr r0, [r7, 0x4]
- cmp r1, r0
- beq _082E8B8A
- ldr r0, _082E8BC0
- b _082E8CE4
- .align 2, 0
-_082E8BC0: .4byte 0x03001a98
-_082E8BC4:
- movs r1, 0
- cmp r0, 0x4
- bne _082E8BCC
- movs r1, 0x1
-_082E8BCC:
- cmp r1, 0
- bne _082E8C0C
- movs r1, 0
- cmp r0, 0x2
- bne _082E8BD8
- movs r1, 0x1
-_082E8BD8:
- cmp r1, 0
- beq _082E8BFE
- movs r0, 0
- cmp r2, 0x2
- bne _082E8BE4
- movs r0, 0x1
-_082E8BE4:
- cmp r0, 0
- beq _082E8B8A
- adds r1, r5, 0
- adds r0, r6, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r6, 0x4]
- ldr r1, [r7, 0x4]
- ands r0, r1
- str r0, [r5, 0x4]
- b _082E8CE2
-_082E8BFE:
- movs r1, 0
- ldr r0, [r6]
- cmp r0, 0x2
- bne _082E8C08
- movs r1, 0x1
-_082E8C08:
- cmp r1, 0
- beq _082E8C10
-_082E8C0C:
- adds r0, r7, 0
- b _082E8CE4
-_082E8C10:
- ldr r1, [r6, 0x8]
- ldr r3, [r7, 0x8]
- ldr r2, [r6, 0xC]
- ldr r4, [r7, 0xC]
- subs r0, r1, r3
- cmp r0, 0
- bge _082E8C20
- negs r0, r0
-_082E8C20:
- cmp r0, 0x1F
- bgt _082E8C64
- ldr r6, [r6, 0x4]
- ldr r7, [r7, 0x4]
- mov r8, r7
- cmp r1, r3
- ble _082E8C46
- movs r7, 0x1
- mov r12, r7
- subs r3, r1, r3
-_082E8C34:
- subs r3, 0x1
- adds r0, r4, 0
- mov r7, r12
- ands r0, r7
- lsrs r4, 1
- orrs r4, r0
- cmp r3, 0
- bne _082E8C34
- adds r3, r1, 0
-_082E8C46:
- cmp r3, r1
- ble _082E8C76
- movs r0, 0x1
- mov r12, r0
- subs r1, r3, r1
-_082E8C50:
- subs r1, 0x1
- adds r0, r2, 0
- mov r7, r12
- ands r0, r7
- lsrs r2, 1
- orrs r2, r0
- cmp r1, 0
- bne _082E8C50
- adds r1, r3, 0
- b _082E8C76
-_082E8C64:
- cmp r1, r3
- ble _082E8C6C
- movs r4, 0
- b _082E8C70
-_082E8C6C:
- adds r1, r3, 0
- movs r2, 0
-_082E8C70:
- ldr r6, [r6, 0x4]
- ldr r7, [r7, 0x4]
- mov r8, r7
-_082E8C76:
- cmp r6, r8
- beq _082E8CC0
- cmp r6, 0
- beq _082E8C82
- subs r3, r4, r2
- b _082E8C84
-_082E8C82:
- subs r3, r2, r4
-_082E8C84:
- cmp r3, 0
- blt _082E8C92
- movs r0, 0
- str r0, [r5, 0x4]
- str r1, [r5, 0x8]
- str r3, [r5, 0xC]
- b _082E8C9C
-_082E8C92:
- movs r0, 0x1
- str r0, [r5, 0x4]
- str r1, [r5, 0x8]
- negs r0, r3
- str r0, [r5, 0xC]
-_082E8C9C:
- ldr r1, [r5, 0xC]
- subs r0, r1, 0x1
- ldr r2, _082E8CBC
- cmp r0, r2
- bhi _082E8CC8
-_082E8CA6:
- lsls r0, r1, 1
- str r0, [r5, 0xC]
- ldr r1, [r5, 0x8]
- subs r1, 0x1
- str r1, [r5, 0x8]
- adds r1, r0, 0
- subs r0, r1, 0x1
- cmp r0, r2
- bls _082E8CA6
- b _082E8CC8
- .align 2, 0
-_082E8CBC: .4byte 0x3ffffffe
-_082E8CC0:
- str r6, [r5, 0x4]
- str r1, [r5, 0x8]
- adds r0, r2, r4
- str r0, [r5, 0xC]
-_082E8CC8:
- movs r0, 0x3
- str r0, [r5]
- ldr r1, [r5, 0xC]
- cmp r1, 0
- bge _082E8CE2
- movs r0, 0x1
- ands r0, r1
- lsrs r1, 1
- orrs r0, r1
- str r0, [r5, 0xC]
- ldr r0, [r5, 0x8]
- adds r0, 0x1
- str r0, [r5, 0x8]
-_082E8CE2:
- adds r0, r5, 0
-_082E8CE4:
- pop {r3}
- mov r8, r3
- pop {r4-r7,pc}
- thumb_func_end __fpadd_parts_f
-
- thumb_func_start __addsf3
-__addsf3: @ 82E8CEC
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x30]
- str r1, [sp, 0x34]
- add r0, sp, 0x30
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x34
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- add r2, sp, 0x20
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_f
- bl __pack_f
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __addsf3
-
- thumb_func_start __subsf3
-__subsf3: @ 82E8D18
- push {r4,lr}
- sub sp, 0x38
- str r0, [sp, 0x30]
- str r1, [sp, 0x34]
- add r0, sp, 0x30
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x34
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- ldr r0, [r4, 0x4]
- movs r1, 0x1
- eors r0, r1
- str r0, [r4, 0x4]
- add r2, sp, 0x20
- mov r0, sp
- adds r1, r4, 0
- bl __fpadd_parts_f
- bl __pack_f
- add sp, 0x38
- pop {r4,pc}
- thumb_func_end __subsf3
-
- thumb_func_start __mulsf3
-__mulsf3: @ 82E8D4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x38
- str r0, [sp, 0x30]
- str r1, [sp, 0x34]
- add r0, sp, 0x30
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x34
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- mov r7, sp
- add r0, sp, 0x20
- mov r8, r0
- movs r0, 0
- ldr r1, [sp]
- mov r9, r8
- cmp r1, 0x1
- bhi _082E8D7E
- movs r0, 0x1
-_082E8D7E:
- cmp r0, 0
- bne _082E8DDC
- movs r2, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E8D8C
- movs r2, 0x1
-_082E8D8C:
- cmp r2, 0
- beq _082E8D94
- ldr r0, [sp, 0x4]
- b _082E8DFC
-_082E8D94:
- movs r2, 0
- cmp r1, 0x4
- bne _082E8D9C
- movs r2, 0x1
-_082E8D9C:
- cmp r2, 0
- beq _082E8DAE
- movs r1, 0
- cmp r0, 0x2
- bne _082E8DA8
- movs r1, 0x1
-_082E8DA8:
- cmp r1, 0
- bne _082E8DC6
- b _082E8DDC
-_082E8DAE:
- movs r2, 0
- cmp r0, 0x4
- bne _082E8DB6
- movs r2, 0x1
-_082E8DB6:
- cmp r2, 0
- beq _082E8DD0
- movs r0, 0
- cmp r1, 0x2
- bne _082E8DC2
- movs r0, 0x1
-_082E8DC2:
- cmp r0, 0
- beq _082E8DFA
-_082E8DC6:
- ldr r0, _082E8DCC
- b _082E8E9E
- .align 2, 0
-_082E8DCC: .4byte 0x03001a98
-_082E8DD0:
- movs r2, 0
- cmp r1, 0x2
- bne _082E8DD8
- movs r2, 0x1
-_082E8DD8:
- cmp r2, 0
- beq _082E8DEE
-_082E8DDC:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x14]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x4]
- mov r0, sp
- b _082E8E9E
-_082E8DEE:
- movs r1, 0
- cmp r0, 0x2
- bne _082E8DF6
- movs r1, 0x1
-_082E8DF6:
- cmp r1, 0
- beq _082E8E0C
-_082E8DFA:
- ldr r0, [r7, 0x4]
-_082E8DFC:
- ldr r1, [sp, 0x14]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x14]
- adds r0, r4, 0
- b _082E8E9E
-_082E8E0C:
- ldr r0, [r7, 0xC]
- movs r1, 0
- ldr r2, [sp, 0x1C]
- movs r3, 0
- bl __muldi3
- adds r2, r1, 0
- adds r5, r2, 0
- adds r6, r0, 0
- ldr r4, [r7, 0x8]
- ldr r0, [sp, 0x18]
- adds r4, r0
- str r4, [sp, 0x28]
- ldr r1, [r7, 0x4]
- ldr r0, [sp, 0x14]
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- str r0, [sp, 0x24]
- adds r4, 0x2
- str r4, [sp, 0x28]
- cmp r2, 0
- bge _082E8E58
- movs r2, 0x1
- movs r1, 0x80
- lsls r1, 24
-_082E8E42:
- adds r4, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _082E8E50
- lsrs r6, 1
- orrs r6, r1
-_082E8E50:
- lsrs r5, 1
- cmp r5, 0
- blt _082E8E42
- str r4, [sp, 0x28]
-_082E8E58:
- ldr r0, _082E8EAC
- cmp r5, r0
- bhi _082E8E7E
- movs r4, 0x80
- lsls r4, 24
- movs r3, 0x1
- adds r2, r0, 0
- ldr r1, [sp, 0x28]
-_082E8E68:
- subs r1, 0x1
- lsls r5, 1
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _082E8E76
- orrs r5, r3
-_082E8E76:
- lsls r6, 1
- cmp r5, r2
- bls _082E8E68
- str r1, [sp, 0x28]
-_082E8E7E:
- movs r0, 0x7F
- ands r0, r5
- cmp r0, 0x40
- bne _082E8E94
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _082E8E92
- cmp r6, 0
- beq _082E8E94
-_082E8E92:
- adds r5, 0x40
-_082E8E94:
- str r5, [sp, 0x2C]
- movs r0, 0x3
- mov r1, r8
- str r0, [r1]
- mov r0, r9
-_082E8E9E:
- bl __pack_f
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7,pc}
- .align 2, 0
-_082E8EAC: .4byte 0x3fffffff
- thumb_func_end __mulsf3
-
- thumb_func_start __divsf3
-__divsf3: @ 82E8EB0
- push {r4-r6,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r5, sp, 0x10
- adds r1, r5, 0
- bl __unpack_f
- mov r4, sp
- movs r0, 0
- ldr r3, [sp]
- cmp r3, 0x1
- bhi _082E8ED6
- movs r0, 0x1
-_082E8ED6:
- cmp r0, 0
- beq _082E8EDE
- mov r1, sp
- b _082E8F90
-_082E8EDE:
- movs r0, 0
- ldr r2, [sp, 0x10]
- adds r6, r2, 0
- cmp r2, 0x1
- bhi _082E8EEA
- movs r0, 0x1
-_082E8EEA:
- cmp r0, 0
- beq _082E8EF2
- adds r1, r5, 0
- b _082E8F90
-_082E8EF2:
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x14]
- eors r0, r1
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r3, 0x4
- bne _082E8F02
- movs r0, 0x1
-_082E8F02:
- cmp r0, 0
- bne _082E8F12
- movs r0, 0
- cmp r3, 0x2
- bne _082E8F0E
- movs r0, 0x1
-_082E8F0E:
- cmp r0, 0
- beq _082E8F24
-_082E8F12:
- ldr r0, [r4]
- adds r1, r4, 0
- cmp r0, r6
- bne _082E8F90
- ldr r1, _082E8F20
- b _082E8F90
- .align 2, 0
-_082E8F20: .4byte 0x03001a98
-_082E8F24:
- movs r1, 0
- cmp r2, 0x4
- bne _082E8F2C
- movs r1, 0x1
-_082E8F2C:
- cmp r1, 0
- beq _082E8F38
- str r0, [sp, 0xC]
- str r0, [sp, 0x8]
- mov r1, sp
- b _082E8F90
-_082E8F38:
- movs r0, 0
- cmp r2, 0x2
- bne _082E8F40
- movs r0, 0x1
-_082E8F40:
- cmp r0, 0
- beq _082E8F4A
- movs r0, 0x4
- str r0, [r4]
- b _082E8F8E
-_082E8F4A:
- ldr r1, [r4, 0x8]
- ldr r0, [sp, 0x18]
- subs r0, r1, r0
- str r0, [r4, 0x8]
- ldr r2, [r4, 0xC]
- ldr r3, [sp, 0x1C]
- cmp r2, r3
- bcs _082E8F60
- lsls r2, 1
- subs r0, 0x1
- str r0, [r4, 0x8]
-_082E8F60:
- movs r0, 0x80
- lsls r0, 23
- movs r1, 0
-_082E8F66:
- cmp r2, r3
- bcc _082E8F6E
- orrs r1, r0
- subs r2, r3
-_082E8F6E:
- lsrs r0, 1
- lsls r2, 1
- cmp r0, 0
- bne _082E8F66
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x40
- bne _082E8F8C
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _082E8F8A
- cmp r2, 0
- beq _082E8F8C
-_082E8F8A:
- adds r1, 0x40
-_082E8F8C:
- str r1, [r4, 0xC]
-_082E8F8E:
- adds r1, r4, 0
-_082E8F90:
- adds r0, r1, 0
- bl __pack_f
- add sp, 0x28
- pop {r4-r6,pc}
- thumb_func_end __divsf3
-
- thumb_func_start __fpcmp_parts_f
-__fpcmp_parts_f: @ 82E8F9C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- ldr r2, [r4]
- cmp r2, 0x1
- bhi _082E8FAA
- movs r0, 0x1
-_082E8FAA:
- cmp r0, 0
- bne _082E8FBC
- movs r0, 0
- ldr r3, [r1]
- cmp r3, 0x1
- bhi _082E8FB8
- movs r0, 0x1
-_082E8FB8:
- cmp r0, 0
- beq _082E8FC0
-_082E8FBC:
- movs r0, 0x1
- b _082E907E
-_082E8FC0:
- movs r0, 0
- cmp r2, 0x4
- bne _082E8FC8
- movs r0, 0x1
-_082E8FC8:
- cmp r0, 0
- beq _082E8FE0
- movs r0, 0
- cmp r3, 0x4
- bne _082E8FD4
- movs r0, 0x1
-_082E8FD4:
- cmp r0, 0
- beq _082E8FE0
- ldr r0, [r1, 0x4]
- ldr r1, [r4, 0x4]
- subs r0, r1
- b _082E907E
-_082E8FE0:
- movs r2, 0
- ldr r0, [r4]
- cmp r0, 0x4
- bne _082E8FEA
- movs r2, 0x1
-_082E8FEA:
- cmp r2, 0
- bne _082E9038
- movs r2, 0
- cmp r3, 0x4
- bne _082E8FF6
- movs r2, 0x1
-_082E8FF6:
- cmp r2, 0
- beq _082E9008
-_082E8FFA:
- ldr r0, [r1, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, 0
- beq _082E9042
- movs r1, 0x1
- b _082E9042
-_082E9008:
- movs r2, 0
- cmp r0, 0x2
- bne _082E9010
- movs r2, 0x1
-_082E9010:
- cmp r2, 0
- beq _082E9020
- movs r2, 0
- cmp r3, 0x2
- bne _082E901C
- movs r2, 0x1
-_082E901C:
- cmp r2, 0
- bne _082E907C
-_082E9020:
- movs r2, 0
- cmp r0, 0x2
- bne _082E9028
- movs r2, 0x1
-_082E9028:
- cmp r2, 0
- bne _082E8FFA
- movs r0, 0
- cmp r3, 0x2
- bne _082E9034
- movs r0, 0x1
-_082E9034:
- cmp r0, 0
- beq _082E9046
-_082E9038:
- ldr r0, [r4, 0x4]
- movs r1, 0x1
- cmp r0, 0
- beq _082E9042
- subs r1, 0x2
-_082E9042:
- adds r0, r1, 0
- b _082E907E
-_082E9046:
- ldr r3, [r4, 0x4]
- ldr r0, [r1, 0x4]
- cmp r3, r0
- beq _082E9058
-_082E904E:
- movs r0, 0x1
- cmp r3, 0
- beq _082E907E
- subs r0, 0x2
- b _082E907E
-_082E9058:
- ldr r2, [r4, 0x8]
- ldr r0, [r1, 0x8]
- cmp r2, r0
- bgt _082E904E
- cmp r2, r0
- bge _082E9070
-_082E9064:
- movs r0, 0x1
- negs r0, r0
- cmp r3, 0
- beq _082E907E
- movs r0, 0x1
- b _082E907E
-_082E9070:
- ldr r0, [r4, 0xC]
- ldr r1, [r1, 0xC]
- cmp r0, r1
- bhi _082E904E
- cmp r0, r1
- bcc _082E9064
-_082E907C:
- movs r0, 0
-_082E907E:
- pop {r4,pc}
- thumb_func_end __fpcmp_parts_f
-
- thumb_func_start __cmpsf2
-__cmpsf2: @ 82E9080
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __cmpsf2
-
- thumb_func_start __eqsf2
-__eqsf2: @ 82E90A8
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E90CC
- movs r1, 0x1
-_082E90CC:
- cmp r1, 0
- bne _082E90DE
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E90DA
- movs r1, 0x1
-_082E90DA:
- cmp r1, 0
- beq _082E90E2
-_082E90DE:
- movs r0, 0x1
- b _082E90EA
-_082E90E2:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E90EA:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __eqsf2
-
- thumb_func_start __nesf2
-__nesf2: @ 82E90F0
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E9114
- movs r1, 0x1
-_082E9114:
- cmp r1, 0
- bne _082E9126
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E9122
- movs r1, 0x1
-_082E9122:
- cmp r1, 0
- beq _082E912A
-_082E9126:
- movs r0, 0x1
- b _082E9132
-_082E912A:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E9132:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __nesf2
-
- thumb_func_start __gtsf2
-__gtsf2: @ 82E9138
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E915C
- movs r1, 0x1
-_082E915C:
- cmp r1, 0
- bne _082E916E
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E916A
- movs r1, 0x1
-_082E916A:
- cmp r1, 0
- beq _082E9174
-_082E916E:
- movs r0, 0x1
- negs r0, r0
- b _082E917C
-_082E9174:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E917C:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __gtsf2
-
- thumb_func_start __gesf2
-__gesf2: @ 82E9180
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E91A4
- movs r1, 0x1
-_082E91A4:
- cmp r1, 0
- bne _082E91B6
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E91B2
- movs r1, 0x1
-_082E91B2:
- cmp r1, 0
- beq _082E91BC
-_082E91B6:
- movs r0, 0x1
- negs r0, r0
- b _082E91C4
-_082E91BC:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E91C4:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __gesf2
-
- thumb_func_start __ltsf2
-__ltsf2: @ 82E91C8
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E91EC
- movs r1, 0x1
-_082E91EC:
- cmp r1, 0
- bne _082E91FE
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E91FA
- movs r1, 0x1
-_082E91FA:
- cmp r1, 0
- beq _082E9202
-_082E91FE:
- movs r0, 0x1
- b _082E920A
-_082E9202:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E920A:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __ltsf2
-
- thumb_func_start __lesf2
-__lesf2: @ 82E9210
- push {r4,lr}
- sub sp, 0x28
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- add r0, sp, 0x20
- mov r1, sp
- bl __unpack_f
- add r0, sp, 0x24
- add r4, sp, 0x10
- adds r1, r4, 0
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x1
- bhi _082E9234
- movs r1, 0x1
-_082E9234:
- cmp r1, 0
- bne _082E9246
- movs r1, 0
- ldr r0, [sp, 0x10]
- cmp r0, 0x1
- bhi _082E9242
- movs r1, 0x1
-_082E9242:
- cmp r1, 0
- beq _082E924A
-_082E9246:
- movs r0, 0x1
- b _082E9252
-_082E924A:
- mov r0, sp
- adds r1, r4, 0
- bl __fpcmp_parts_f
-_082E9252:
- add sp, 0x28
- pop {r4,pc}
- thumb_func_end __lesf2
-
- thumb_func_start __floatsisf
-__floatsisf: @ 82E9258
- push {lr}
- sub sp, 0x10
- adds r1, r0, 0
- movs r0, 0x3
- str r0, [sp]
- lsrs r2, r1, 31
- str r2, [sp, 0x4]
- cmp r1, 0
- bne _082E9270
- movs r0, 0x2
- str r0, [sp]
- b _082E92A8
-_082E9270:
- movs r0, 0x1E
- str r0, [sp, 0x8]
- cmp r2, 0
- beq _082E928E
- movs r0, 0x80
- lsls r0, 24
- cmp r1, r0
- bne _082E9288
- ldr r0, _082E9284
- b _082E92AE
- .align 2, 0
-_082E9284: .4byte 0xcf000000
-_082E9288:
- negs r0, r1
- str r0, [sp, 0xC]
- b _082E9290
-_082E928E:
- str r1, [sp, 0xC]
-_082E9290:
- ldr r2, [sp, 0xC]
- ldr r3, _082E92B4
- cmp r2, r3
- bhi _082E92A8
- ldr r1, [sp, 0x8]
-_082E929A:
- lsls r0, r2, 1
- subs r1, 0x1
- adds r2, r0, 0
- cmp r0, r3
- bls _082E929A
- str r1, [sp, 0x8]
- str r0, [sp, 0xC]
-_082E92A8:
- mov r0, sp
- bl __pack_f
-_082E92AE:
- add sp, 0x10
- pop {pc}
- .align 2, 0
-_082E92B4: .4byte 0x3fffffff
- thumb_func_end __floatsisf
-
- thumb_func_start __fixsfsi
-__fixsfsi: @ 82E92B8
- push {lr}
- sub sp, 0x14
- str r0, [sp, 0x10]
- add r0, sp, 0x10
- mov r1, sp
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp]
- cmp r0, 0x2
- bne _082E92D0
- movs r1, 0x1
-_082E92D0:
- cmp r1, 0
- bne _082E9302
- movs r1, 0
- cmp r0, 0x1
- bhi _082E92DC
- movs r1, 0x1
-_082E92DC:
- cmp r1, 0
- bne _082E9302
- movs r1, 0
- cmp r0, 0x4
- bne _082E92E8
- movs r1, 0x1
-_082E92E8:
- cmp r1, 0
- beq _082E92FC
-_082E92EC:
- ldr r0, [sp, 0x4]
- ldr r1, _082E92F8
- cmp r0, 0
- beq _082E931A
- adds r1, 0x1
- b _082E931A
- .align 2, 0
-_082E92F8: .4byte 0x7fffffff
-_082E92FC:
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bge _082E9306
-_082E9302:
- movs r0, 0
- b _082E931C
-_082E9306:
- cmp r1, 0x1E
- bgt _082E92EC
- movs r0, 0x1E
- subs r0, r1
- ldr r1, [sp, 0xC]
- lsrs r1, r0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _082E931A
- negs r1, r1
-_082E931A:
- adds r0, r1, 0
-_082E931C:
- add sp, 0x14
- pop {pc}
- thumb_func_end __fixsfsi
-
- thumb_func_start __negsf2
-__negsf2: @ 82E9320
- push {lr}
- sub sp, 0x14
- str r0, [sp, 0x10]
- add r0, sp, 0x10
- mov r1, sp
- bl __unpack_f
- movs r1, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _082E9338
- movs r1, 0x1
-_082E9338:
- str r1, [sp, 0x4]
- mov r0, sp
- bl __pack_f
- add sp, 0x14
- pop {pc}
- thumb_func_end __negsf2
-
- thumb_func_start __make_fp
-__make_fp: @ 82E9344
- push {lr}
- sub sp, 0x10
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- mov r0, sp
- bl __pack_f
- add sp, 0x10
- pop {pc}
- thumb_func_end __make_fp
-
- thumb_func_start __extendsfdf2
-__extendsfdf2: @ 82E935C
- push {r4-r6,lr}
- sub sp, 0x18
- str r0, [sp, 0x14]
- add r0, sp, 0x14
- add r1, sp, 0x4
- bl __unpack_f
- ldr r0, [sp, 0x4]
- ldr r1, [sp, 0x8]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- movs r4, 0
- lsrs r6, r3, 2
- lsls r5, r4, 30
- adds r4, r6, 0
- orrs r4, r5
- lsls r3, 30
- str r4, [sp]
- bl __make_dp
- add sp, 0x18
- pop {r4-r6,pc}
- thumb_func_end __extendsfdf2
-
- thumb_func_start __lshrdi3
-__lshrdi3: @ 82E9388
- push {r4-r6,lr}
- adds r6, r1, 0
- adds r5, r0, 0
- cmp r2, 0
- beq _082E93B8
- movs r0, 0x20
- subs r0, r2
- cmp r0, 0
- bgt _082E93A4
- movs r4, 0
- negs r0, r0
- adds r3, r6, 0
- lsrs r3, r0
- b _082E93B4
-_082E93A4:
- adds r1, r6, 0
- lsls r1, r0
- adds r4, r6, 0
- lsrs r4, r2
- adds r0, r5, 0
- lsrs r0, r2
- adds r3, r0, 0
- orrs r3, r1
-_082E93B4:
- adds r1, r4, 0
- adds r0, r3, 0
-_082E93B8:
- pop {r4-r6,pc}
- thumb_func_end __lshrdi3
-
- thumb_func_start __negdi2
-__negdi2: @ 82E93BC
- push {r4,lr}
- negs r2, r0
- adds r3, r2, 0
- negs r1, r1
- cmp r2, 0
- beq _082E93CA
- subs r1, 0x1
-_082E93CA:
- adds r4, r1, 0
- adds r1, r4, 0
- adds r0, r3, 0
- pop {r4,pc}
- thumb_func_end __negdi2
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/data2.s b/data/data2.s
index 0b4ef37bf..a5fbb36c5 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -12333,23 +12333,3 @@ gUnknown_089A324C:: @ 89A324C
gUnknown_089A3258:: @ 89A3258
.incbin "base_emerald.gba", 0x9a3258, 0x18
-
-gUnknown_089A3270:: @ 89A3270
- .incbin "base_emerald.gba", 0x9a3270, 0x100
-
-gUnknown_089A3370:: @ 89A3370
- .incbin "base_emerald.gba", 0x9a3370, 0x100
-
-gUnknown_089A3470:: @ 89A3470
- .incbin "base_emerald.gba", 0x9a3470, 0x30e0
-
-gUnknown_089A6550:: @ 89A6550
- .incbin "base_emerald.gba", 0x9a6550, 0xc0
-
-gMultiBootProgram_BerryGlitchFix_Start:: @ 89A6610
- .incbin "base_emerald.gba", 0x9a6610, 0x3b34
-gMultiBootProgram_BerryGlitchFix_End::
-
-gMultiBootProgram_PokemonColosseum_Start:: @ 89AA144
- .incbin "base_emerald.gba", 0x9aa144, 0x28000
-gMultiBootProgram_PokemonColosseum_End::
diff --git a/data/multiboot_berry_glitch_fix.s b/data/multiboot_berry_glitch_fix.s
new file mode 100644
index 000000000..204f79c9f
--- /dev/null
+++ b/data/multiboot_berry_glitch_fix.s
@@ -0,0 +1,8 @@
+ .section .rodata
+
+gUnknown_089A6550:: @ 89A6550
+ .incbin "base_emerald.gba", 0x9a6550, 0xc0
+
+gMultiBootProgram_BerryGlitchFix_Start:: @ 89A6610
+ .incbin "base_emerald.gba", 0x9a6610, 0x3b34
+gMultiBootProgram_BerryGlitchFix_End::
diff --git a/data/multiboot_pokemon_colosseum.s b/data/multiboot_pokemon_colosseum.s
new file mode 100644
index 000000000..f76f3c630
--- /dev/null
+++ b/data/multiboot_pokemon_colosseum.s
@@ -0,0 +1,5 @@
+ .section .rodata
+
+gMultiBootProgram_PokemonColosseum_Start:: @ 89AA144
+ .incbin "base_emerald.gba", 0x9aa144, 0x28000
+gMultiBootProgram_PokemonColosseum_End::
diff --git a/data/unknown_serial_data.s b/data/unknown_serial_data.s
new file mode 100644
index 000000000..b675104ba
--- /dev/null
+++ b/data/unknown_serial_data.s
@@ -0,0 +1,4 @@
+ .section .rodata
+
+gUnknown_089A3470:: @ 89A3470
+ .incbin "base_emerald.gba", 0x9a3470, 0x30e0
diff --git a/ld_script.txt b/ld_script.txt
index dbea603a0..96f67bf3d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -16,6 +16,9 @@ SECTIONS {
iwram (NOLOAD) :
ALIGN(4)
{
+ . = 0x1A80;
+ tools/agbcc/lib/libgcc.a:dp-bit.o(.bss);
+ tools/agbcc/lib/libgcc.a:fp-bit.o(.bss);
}
. = 0x8000000;
@@ -61,7 +64,21 @@ SECTIONS {
asm/librtc.o(.text);
asm/librfu.o(.text);
asm/libagbsyscall.o(.text);
- asm/libgcc.o(.text);
+ tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
+ tools/agbcc/lib/libgcc.a:_divdi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_divsi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_dvmd_tls.o(.text);
+ tools/agbcc/lib/libgcc.a:_fixunsdfsi.o(.text);
+ tools/agbcc/lib/libgcc.a:_fixunssfsi.o(.text);
+ tools/agbcc/lib/libgcc.a:_modsi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_muldi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_udivdi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_udivsi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_umodsi3.o(.text);
+ tools/agbcc/lib/libgcc.a:dp-bit.o(.text);
+ tools/agbcc/lib/libgcc.a:fp-bit.o(.text);
+ tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
+ tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
asm/libc.o(.text);
} =0
@@ -71,6 +88,21 @@ SECTIONS {
data/data2.o(.rodata);
} =0
+ lib_rodata :
+ ALIGN(4)
+ {
+ tools/agbcc/lib/libgcc.a:_divdi3.o(.rodata);
+ tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
+ } =0
+
+ other_data :
+ ALIGN(4)
+ {
+ data/unknown_serial_data.o(.rodata);
+ data/multiboot_berry_glitch_fix.o(.rodata);
+ data/multiboot_pokemon_colosseum.o(.rodata);
+ } =0
+
gap1 :
{
gap1_start = ABSOLUTE(.);