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(.); | 
