diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | asm/libgcc.s | 5033 | ||||
-rw-r--r-- | data/data2.s | 20 | ||||
-rw-r--r-- | data/multiboot_berry_glitch_fix.s | 8 | ||||
-rw-r--r-- | data/multiboot_pokemon_colosseum.s | 5 | ||||
-rw-r--r-- | data/unknown_serial_data.s | 4 | ||||
-rw-r--r-- | ld_script.txt | 34 |
7 files changed, 52 insertions, 5056 deletions
@@ -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(.); |