summaryrefslogtreecommitdiff
path: root/asm/libgcc.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/libgcc.s')
-rw-r--r--asm/libgcc.s4634
1 files changed, 4634 insertions, 0 deletions
diff --git a/asm/libgcc.s b/asm/libgcc.s
new file mode 100644
index 000000000..6c5c79304
--- /dev/null
+++ b/asm/libgcc.s
@@ -0,0 +1,4634 @@
+ thumb_func_start _call_via_r0
+_call_via_r0: ; 81E082C
+ bx r0
+ mov r8, r8
+ thumb_func_end _call_via_r0
+
+ thumb_func_start _call_via_r1
+_call_via_r1: ; 81E0830
+ bx r1
+ mov r8, r8
+ thumb_func_end _call_via_r1
+
+ thumb_func_start _call_via_r2
+_call_via_r2: ; 81E0834
+ bx r2
+ mov r8, r8
+ thumb_func_end _call_via_r2
+
+ thumb_func_start _call_via_r3
+_call_via_r3: ; 81E0838
+ bx r3
+ mov r8, r8
+ thumb_func_end _call_via_r3
+
+ thumb_func_start _call_via_r4
+_call_via_r4: ; 81E083C
+ bx r4
+ mov r8, r8
+ thumb_func_end _call_via_r4
+
+ thumb_func_start _call_via_r5
+_call_via_r5: ; 81E0840
+ bx r5
+ mov r8, r8
+ thumb_func_end _call_via_r5
+
+ thumb_func_start _call_via_r6
+_call_via_r6: ; 81E0844
+ bx r6
+ mov r8, r8
+ thumb_func_end _call_via_r6
+
+ thumb_func_start _call_via_r7
+_call_via_r7: ; 81E0848
+ bx r7
+ mov r8, r8
+ thumb_func_end _call_via_r7
+
+ thumb_func_start _call_via_r8
+_call_via_r8: ; 81E084C
+ bx r8
+ mov r8, r8
+ thumb_func_end _call_via_r8
+
+ thumb_func_start _call_via_r9
+_call_via_r9: ; 81E0850
+ bx r9
+ mov r8, r8
+ thumb_func_end _call_via_r9
+
+ thumb_func_start _call_via_sl
+_call_via_sl: ; 81E0854
+ bx r10
+ mov r8, r8
+ thumb_func_end _call_via_sl
+
+ thumb_func_start _call_via_fp
+_call_via_fp: ; 81E0858
+ bx r11
+ mov r8, r8
+ thumb_func_end _call_via_fp
+
+ thumb_func_start _call_via_ip
+_call_via_ip: ; 81E085C
+ bx r12
+ mov r8, r8
+ thumb_func_end _call_via_ip
+
+ thumb_func_start _call_via_sp
+_call_via_sp: ; 81E0860
+ bx sp
+ mov r8, r8
+ thumb_func_end _call_via_sp
+
+ thumb_func_start _call_via_lr
+_call_via_lr: ; 81E0864
+ bx lr
+ mov r8, r8
+ thumb_func_end _call_via_lr
+
+ thumb_func_start __divsi3
+; int __divsi3(int dividend, int divisor)
+__divsi3: ; 81E0868
+ cmp r1, 0
+ beq _081E08F0
+ push {r4}
+ adds r4, r0, 0
+ eors r4, r1
+ mov r12, r4
+ movs r3, 0x1
+ movs r2, 0
+ cmp r1, 0
+ bpl _081E087E
+ negs r1, r1
+_081E087E:
+ cmp r0, 0
+ bpl _081E0884
+ negs r0, r0
+_081E0884:
+ cmp r0, r1
+ bcc _081E08E2
+ movs r4, 0x1
+ lsls r4, 28
+_081E088C:
+ cmp r1, r4
+ bcs _081E089A
+ cmp r1, r0
+ bcs _081E089A
+ lsls r1, 4
+ lsls r3, 4
+ b _081E088C
+_081E089A:
+ lsls r4, 3
+_081E089C:
+ cmp r1, r4
+ bcs _081E08AA
+ cmp r1, r0
+ bcs _081E08AA
+ lsls r1, 1
+ lsls r3, 1
+ b _081E089C
+_081E08AA:
+ cmp r0, r1
+ bcc _081E08B2
+ subs r0, r1
+ orrs r2, r3
+_081E08B2:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _081E08BE
+ subs r0, r4
+ lsrs r4, r3, 1
+ orrs r2, r4
+_081E08BE:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _081E08CA
+ subs r0, r4
+ lsrs r4, r3, 2
+ orrs r2, r4
+_081E08CA:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _081E08D6
+ subs r0, r4
+ lsrs r4, r3, 3
+ orrs r2, r4
+_081E08D6:
+ cmp r0, 0
+ beq _081E08E2
+ lsrs r3, 4
+ beq _081E08E2
+ lsrs r1, 4
+ b _081E08AA
+_081E08E2:
+ adds r0, r2, 0
+ mov r4, r12
+ cmp r4, 0
+ bpl _081E08EC
+ negs r0, r0
+_081E08EC:
+ pop {r4}
+ mov pc, lr
+_081E08F0:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __divsi3
+
+ thumb_func_start nullsub_1
+nullsub_1: ; 81E08FC
+ mov pc, lr
+ thumb_func_end nullsub_1
+
+ thumb_func_start __fixunsdfsi
+__fixunsdfsi: ; 81E0900
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ adds r4, r0, 0
+ ldr r3, _081E0920
+ ldr r2, _081E091C
+ bl __gedf2
+ cmp r0, 0
+ bge _081E0924
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __fixdfsi
+ b _081E093A
+ .align 2, 0
+_081E091C: .4byte 0x41e00000
+_081E0920: .4byte 0x00000000
+_081E0924:
+ ldr r3, _081E0940
+ ldr r2, _081E093C
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixdfsi
+ movs r1, 0x80
+ lsls r1, 24
+ adds r0, r1
+_081E093A:
+ pop {r4,r5,pc}
+ .align 2, 0
+_081E093C: .4byte 0xc1e00000
+_081E0940: .4byte 0x00000000
+ thumb_func_end __fixunsdfsi
+
+ thumb_func_start __fixunssfsi
+__fixunssfsi: ; 81E0944
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _081E095C
+ bl __gesf2
+ cmp r0, 0
+ bge _081E0960
+ adds r0, r4, 0
+ bl __fixsfsi
+ b _081E0972
+ .align 2, 0
+_081E095C: .4byte 0x4f000000
+_081E0960:
+ ldr r1, _081E0974
+ adds r0, r4, 0
+ bl __addsf3
+ bl __fixsfsi
+ movs r1, 0x80
+ lsls r1, 24
+ adds r0, r1
+_081E0972:
+ pop {r4,pc}
+ .align 2, 0
+_081E0974: .4byte 0xcf000000
+ thumb_func_end __fixunssfsi
+
+ thumb_func_start __modsi3
+__modsi3: ; 81E0978
+ movs r3, 0x1
+ cmp r1, 0
+ beq _081E0A3C
+ bpl _081E0982
+ negs r1, r1
+_081E0982:
+ push {r4}
+ push {r0}
+ cmp r0, 0
+ bpl _081E098C
+ negs r0, r0
+_081E098C:
+ cmp r0, r1
+ bcc _081E0A30
+ movs r4, 0x1
+ lsls r4, 28
+_081E0994:
+ cmp r1, r4
+ bcs _081E09A2
+ cmp r1, r0
+ bcs _081E09A2
+ lsls r1, 4
+ lsls r3, 4
+ b _081E0994
+_081E09A2:
+ lsls r4, 3
+_081E09A4:
+ cmp r1, r4
+ bcs _081E09B2
+ cmp r1, r0
+ bcs _081E09B2
+ lsls r1, 1
+ lsls r3, 1
+ b _081E09A4
+_081E09B2:
+ movs r2, 0
+ cmp r0, r1
+ bcc _081E09BA
+ subs r0, r1
+_081E09BA:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _081E09CC
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x1
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_081E09CC:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _081E09DE
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x2
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_081E09DE:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _081E09F0
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x3
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_081E09F0:
+ mov r12, r3
+ cmp r0, 0
+ beq _081E09FE
+ lsrs r3, 4
+ beq _081E09FE
+ lsrs r1, 4
+ b _081E09B2
+_081E09FE:
+ movs r4, 0xE
+ lsls r4, 28
+ ands r2, r4
+ beq _081E0A30
+ mov r3, r12
+ movs r4, 0x3
+ rors r3, r4
+ tst r2, r3
+ beq _081E0A14
+ lsrs r4, r1, 3
+ adds r0, r4
+_081E0A14:
+ mov r3, r12
+ movs r4, 0x2
+ rors r3, r4
+ tst r2, r3
+ beq _081E0A22
+ lsrs r4, r1, 2
+ adds r0, r4
+_081E0A22:
+ mov r3, r12
+ movs r4, 0x1
+ rors r3, r4
+ tst r2, r3
+ beq _081E0A30
+ lsrs r4, r1, 1
+ adds r0, r4
+_081E0A30:
+ pop {r4}
+ cmp r4, 0
+ bpl _081E0A38
+ negs r0, r0
+_081E0A38:
+ pop {r4}
+ mov pc, lr
+_081E0A3C:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __modsi3
+
+ thumb_func_start __muldi3
+__muldi3: ; 81E0A48
+ 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, _081E0AB4
+ 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 _081E0A88
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_081E0A88:
+ 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
+_081E0AB4: .4byte 0x0000ffff
+ thumb_func_end __muldi3
+
+ thumb_func_start __udivdi3
+__udivdi3: ; 81E0AB8
+ 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 _081E0AD2
+ b _081E0D20
+_081E0AD2:
+ cmp r7, r8
+ bls _081E0BAC
+ ldr r0, _081E0AE8
+ cmp r7, r0
+ bhi _081E0AEC
+ movs r1, 0
+ cmp r7, 0xFF
+ bls _081E0AF6
+ movs r1, 0x8
+ b _081E0AF6
+ .align 2, 0
+_081E0AE8: .4byte 0x0000ffff
+_081E0AEC:
+ ldr r0, _081E0BA0
+ movs r1, 0x18
+ cmp r7, r0
+ bhi _081E0AF6
+ movs r1, 0x10
+_081E0AF6:
+ ldr r0, _081E0BA4
+ lsrs r2, r1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r1
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ beq _081E0B22
+ 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
+_081E0B22:
+ lsrs r4, r7, 16
+ mov r9, r4
+ ldr r0, _081E0BA8
+ 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 _081E0B62
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _081E0B62
+ cmp r4, r2
+ bcs _081E0B62
+ subs r6, 0x1
+ adds r4, r7
+_081E0B62:
+ 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, _081E0BA8
+ mov r3, r10
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r2
+ bcs _081E0B9A
+ subs r1, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _081E0B9A
+ cmp r5, r2
+ bcs _081E0B9A
+ subs r1, 0x1
+_081E0B9A:
+ lsls r6, 16
+ orrs r6, r1
+ b _081E0D26
+ .align 2, 0
+_081E0BA0: .4byte 0x00ffffff
+_081E0BA4: .4byte gUnknown_086B08F8
+_081E0BA8: .4byte 0x0000ffff
+_081E0BAC:
+ cmp r2, 0
+ bne _081E0BBA
+ movs r0, 0x1
+ movs r1, 0
+ bl __udivsi3
+ adds r7, r0, 0
+_081E0BBA:
+ adds r1, r7, 0
+ ldr r0, _081E0BCC
+ cmp r7, r0
+ bhi _081E0BD0
+ movs r2, 0
+ cmp r7, 0xFF
+ bls _081E0BDA
+ movs r2, 0x8
+ b _081E0BDA
+ .align 2, 0
+_081E0BCC: .4byte 0x0000ffff
+_081E0BD0:
+ ldr r0, _081E0BF8
+ movs r2, 0x18
+ cmp r7, r0
+ bhi _081E0BDA
+ movs r2, 0x10
+_081E0BDA:
+ ldr r0, _081E0BFC
+ lsrs r1, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ bne _081E0C00
+ mov r0, r8
+ subs r0, r7
+ mov r8, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _081E0C9E
+ .align 2, 0
+_081E0BF8: .4byte 0x00ffffff
+_081E0BFC: .4byte gUnknown_086B08F8
+_081E0C00:
+ 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, _081E0D1C
+ 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 _081E0C5A
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _081E0C5A
+ cmp r4, r1
+ bcs _081E0C5A
+ subs r6, 0x1
+ adds r4, r7
+_081E0C5A:
+ 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, _081E0D1C
+ mov r3, r8
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r1
+ bcs _081E0C94
+ subs r2, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _081E0C94
+ cmp r5, r1
+ bcs _081E0C94
+ subs r2, 0x1
+ adds r5, r7
+_081E0C94:
+ lsls r6, 16
+ orrs r6, r2
+ str r6, [sp, 0x4]
+ subs r1, r5, r1
+ mov r8, r1
+_081E0C9E:
+ lsrs r4, r7, 16
+ mov r9, r4
+ ldr r0, _081E0D1C
+ 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 _081E0CDE
+ subs r6, 0x1
+ adds r4, r7
+ cmp r4, r7
+ bcc _081E0CDE
+ cmp r4, r2
+ bcs _081E0CDE
+ subs r6, 0x1
+ adds r4, r7
+_081E0CDE:
+ 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, _081E0D1C
+ mov r3, r10
+ ands r3, r0
+ orrs r5, r3
+ cmp r5, r2
+ bcs _081E0D16
+ subs r1, 0x1
+ adds r5, r7
+ cmp r5, r7
+ bcc _081E0D16
+ cmp r5, r2
+ bcs _081E0D16
+ subs r1, 0x1
+_081E0D16:
+ lsls r6, 16
+ orrs r6, r1
+ b _081E0E76
+ .align 2, 0
+_081E0D1C: .4byte 0x0000ffff
+_081E0D20:
+ cmp r6, r8
+ bls _081E0D2C
+ movs r6, 0
+_081E0D26:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ b _081E0E76
+_081E0D2C:
+ adds r1, r6, 0
+ ldr r0, _081E0D40
+ cmp r6, r0
+ bhi _081E0D44
+ movs r2, 0
+ cmp r6, 0xFF
+ bls _081E0D4E
+ movs r2, 0x8
+ b _081E0D4E
+ .align 2, 0
+_081E0D40: .4byte 0x0000ffff
+_081E0D44:
+ ldr r0, _081E0D70
+ movs r2, 0x18
+ cmp r6, r0
+ bhi _081E0D4E
+ movs r2, 0x10
+_081E0D4E:
+ ldr r0, _081E0D74
+ lsrs r1, r2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r0, r2
+ movs r1, 0x20
+ subs r2, r1, r0
+ cmp r2, 0
+ bne _081E0D7C
+ cmp r8, r6
+ bhi _081E0D68
+ cmp r10, r7
+ bcc _081E0D78
+_081E0D68:
+ movs r6, 0x1
+ mov r1, r10
+ b _081E0E70
+ .align 2, 0
+_081E0D70: .4byte 0x00ffffff
+_081E0D74: .4byte gUnknown_086B08F8
+_081E0D78:
+ movs r6, 0
+ b _081E0E72
+_081E0D7C:
+ 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, _081E0E8C
+ 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 _081E0DDE
+ subs r3, 0x1
+ adds r4, r6
+ cmp r4, r6
+ bcc _081E0DDE
+ cmp r4, r1
+ bcs _081E0DDE
+ subs r3, 0x1
+ adds r4, r6
+_081E0DDE:
+ 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, _081E0E8C
+ mov r4, r8
+ ands r4, r0
+ orrs r5, r4
+ ldr r3, [sp, 0x1C]
+ cmp r5, r1
+ bcs _081E0E1C
+ subs r2, 0x1
+ adds r5, r6
+ cmp r5, r6
+ bcc _081E0E1C
+ cmp r5, r1
+ bcs _081E0E1C
+ subs r2, 0x1
+ adds r5, r6
+_081E0E1C:
+ lsls r6, r3, 16
+ orrs r6, r2
+ subs r1, r5, r1
+ mov r8, r1
+ ldr r0, _081E0E8C
+ 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 _081E0E54
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_081E0E54:
+ 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 _081E0E6E
+ cmp r3, r8
+ bne _081E0E72
+ cmp r1, r10
+ bls _081E0E72
+_081E0E6E:
+ subs r6, 0x1
+_081E0E70:
+ subs r0, r1, r7
+_081E0E72:
+ movs r2, 0
+ str r2, [sp, 0x4]
+_081E0E76:
+ 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
+_081E0E8C: .4byte 0x0000ffff
+ thumb_func_end __udivdi3
+
+ thumb_func_start __udivsi3
+; unsigned int __udivsi3(unsigned int dividend, unsigned int divisor)
+__udivsi3: ; 81E0E90
+ cmp r1, 0
+ beq _081E0EFE
+ movs r3, 0x1
+ movs r2, 0
+ push {r4}
+ cmp r0, r1
+ bcc _081E0EF8
+ movs r4, 0x1
+ lsls r4, 28
+_081E0EA2:
+ cmp r1, r4
+ bcs _081E0EB0
+ cmp r1, r0
+ bcs _081E0EB0
+ lsls r1, 4
+ lsls r3, 4
+ b _081E0EA2
+_081E0EB0:
+ lsls r4, 3
+_081E0EB2:
+ cmp r1, r4
+ bcs _081E0EC0
+ cmp r1, r0
+ bcs _081E0EC0
+ lsls r1, 1
+ lsls r3, 1
+ b _081E0EB2
+_081E0EC0:
+ cmp r0, r1
+ bcc _081E0EC8
+ subs r0, r1
+ orrs r2, r3
+_081E0EC8:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _081E0ED4
+ subs r0, r4
+ lsrs r4, r3, 1
+ orrs r2, r4
+_081E0ED4:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _081E0EE0
+ subs r0, r4
+ lsrs r4, r3, 2
+ orrs r2, r4
+_081E0EE0:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _081E0EEC
+ subs r0, r4
+ lsrs r4, r3, 3
+ orrs r2, r4
+_081E0EEC:
+ cmp r0, 0
+ beq _081E0EF8
+ lsrs r3, 4
+ beq _081E0EF8
+ lsrs r1, 4
+ b _081E0EC0
+_081E0EF8:
+ adds r0, r2, 0
+ pop {r4}
+ mov pc, lr
+_081E0EFE:
+ 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: ; 81E0F08
+ cmp r1, 0
+ beq _081E0FBE
+ movs r3, 0x1
+ cmp r0, r1
+ bcs _081E0F14
+ mov pc, lr
+_081E0F14:
+ push {r4}
+ movs r4, 0x1
+ lsls r4, 28
+_081E0F1A:
+ cmp r1, r4
+ bcs _081E0F28
+ cmp r1, r0
+ bcs _081E0F28
+ lsls r1, 4
+ lsls r3, 4
+ b _081E0F1A
+_081E0F28:
+ lsls r4, 3
+_081E0F2A:
+ cmp r1, r4
+ bcs _081E0F38
+ cmp r1, r0
+ bcs _081E0F38
+ lsls r1, 1
+ lsls r3, 1
+ b _081E0F2A
+_081E0F38:
+ movs r2, 0
+ cmp r0, r1
+ bcc _081E0F40
+ subs r0, r1
+_081E0F40:
+ lsrs r4, r1, 1
+ cmp r0, r4
+ bcc _081E0F52
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x1
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_081E0F52:
+ lsrs r4, r1, 2
+ cmp r0, r4
+ bcc _081E0F64
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x2
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_081E0F64:
+ lsrs r4, r1, 3
+ cmp r0, r4
+ bcc _081E0F76
+ subs r0, r4
+ mov r12, r3
+ movs r4, 0x3
+ rors r3, r4
+ orrs r2, r3
+ mov r3, r12
+_081E0F76:
+ mov r12, r3
+ cmp r0, 0
+ beq _081E0F84
+ lsrs r3, 4
+ beq _081E0F84
+ lsrs r1, 4
+ b _081E0F38
+_081E0F84:
+ movs r4, 0xE
+ lsls r4, 28
+ ands r2, r4
+ bne _081E0F90
+ pop {r4}
+ mov pc, lr
+_081E0F90:
+ mov r3, r12
+ movs r4, 0x3
+ rors r3, r4
+ tst r2, r3
+ beq _081E0F9E
+ lsrs r4, r1, 3
+ adds r0, r4
+_081E0F9E:
+ mov r3, r12
+ movs r4, 0x2
+ rors r3, r4
+ tst r2, r3
+ beq _081E0FAC
+ lsrs r4, r1, 2
+ adds r0, r4
+_081E0FAC:
+ mov r3, r12
+ movs r4, 0x1
+ rors r3, r4
+ tst r2, r3
+ beq _081E0FBA
+ lsrs r4, r1, 1
+ adds r0, r4
+_081E0FBA:
+ pop {r4}
+ mov pc, lr
+_081E0FBE:
+ push {lr}
+ bl nullsub_1
+ movs r0, 0
+ pop {pc}
+ thumb_func_end __umodsi3
+
+ thumb_func_start __pack_d
+__pack_d: ; 81E0FC8
+ 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 _081E0FE0
+ movs r2, 0x1
+_081E0FE0:
+ cmp r2, 0
+ beq _081E1000
+ ldr r6, _081E0FF4
+ ldr r2, _081E0FF8
+ ldr r3, _081E0FFC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ orrs r1, r3
+ b _081E10B8
+ .align 2, 0
+_081E0FF4: .4byte 0x000007ff
+_081E0FF8: .4byte 0x00000000
+_081E0FFC: .4byte 0x00080000
+_081E1000:
+ movs r2, 0
+ cmp r0, 0x4
+ bne _081E1008
+ movs r2, 0x1
+_081E1008:
+ cmp r2, 0
+ bne _081E1054
+ movs r2, 0
+ cmp r0, 0x2
+ bne _081E1014
+ movs r2, 0x1
+_081E1014:
+ cmp r2, 0
+ beq _081E101E
+ movs r4, 0
+ movs r5, 0
+ b _081E10BC
+_081E101E:
+ adds r0, r5, 0
+ orrs r0, r4
+ cmp r0, 0
+ beq _081E10BC
+ ldr r2, [r1, 0x8]
+ ldr r0, _081E103C
+ cmp r2, r0
+ bge _081E104E
+ subs r2, r0, r2
+ cmp r2, 0x38
+ ble _081E1040
+ movs r4, 0
+ movs r5, 0
+ b _081E10AE
+ .align 2, 0
+_081E103C: .4byte 0xfffffc02
+_081E1040:
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __lshrdi3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ b _081E10AE
+_081E104E:
+ ldr r0, _081E105C
+ cmp r2, r0
+ ble _081E1064
+_081E1054:
+ ldr r6, _081E1060
+ movs r4, 0
+ movs r5, 0
+ b _081E10BC
+ .align 2, 0
+_081E105C: .4byte 0x000003ff
+_081E1060: .4byte 0x000007ff
+_081E1064:
+ ldr r0, _081E108C
+ adds r6, r2, r0
+ movs r0, 0xFF
+ adds r1, r4, 0
+ ands r1, r0
+ movs r2, 0
+ cmp r1, 0x80
+ bne _081E1090
+ cmp r2, 0
+ bne _081E1090
+ adds r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ adds r0, r2, 0
+ orrs r0, r1
+ cmp r0, 0
+ beq _081E1098
+ movs r0, 0x80
+ movs r1, 0
+ b _081E1094
+ .align 2, 0
+_081E108C: .4byte 0x000003ff
+_081E1090:
+ movs r0, 0x7F
+ movs r1, 0
+_081E1094:
+ adds r4, r0
+ adcs r5, r1
+_081E1098:
+ ldr r0, _081E10FC
+ cmp r5, r0
+ bls _081E10AE
+ 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
+_081E10AE:
+ lsls r3, r5, 24
+ lsrs r2, r4, 8
+ adds r0, r3, 0
+ orrs r0, r2
+ lsrs r1, r5, 8
+_081E10B8:
+ adds r5, r1, 0
+ adds r4, r0, 0
+_081E10BC:
+ str r4, [sp]
+ ldr r2, _081E1100
+ ands r2, r5
+ ldr r0, [sp, 0x4]
+ ldr r1, _081E1104
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r2, sp
+ ldr r1, _081E1108
+ adds r0, r1, 0
+ ands r6, r0
+ lsls r1, r6, 4
+ ldr r0, _081E110C
+ 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
+_081E10FC: .4byte 0x1fffffff
+_081E1100: .4byte 0x000fffff
+_081E1104: .4byte 0xfff00000
+_081E1108: .4byte 0x000007ff
+_081E110C: .4byte 0xffff800f
+ thumb_func_end __pack_d
+
+ thumb_func_start __unpack_d
+__unpack_d: ; 81E1110
+ 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 _081E1184
+ orrs r1, r5
+ cmp r1, 0
+ bne _081E1144
+ movs r0, 0x2
+ str r0, [r6]
+ b _081E11D8
+_081E1144:
+ ldr r0, _081E117C
+ 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, _081E1180
+ cmp r5, r0
+ bhi _081E11B4
+ adds r7, r0, 0
+_081E1162:
+ 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 _081E1162
+ b _081E11B4
+ .align 2, 0
+_081E117C: .4byte 0xfffffc02
+_081E1180: .4byte 0x0fffffff
+_081E1184:
+ ldr r0, _081E1198
+ cmp r3, r0
+ bne _081E11BA
+ orrs r1, r5
+ cmp r1, 0
+ bne _081E119C
+ movs r0, 0x4
+ str r0, [r6]
+ b _081E11D8
+ .align 2, 0
+_081E1198: .4byte 0x000007ff
+_081E119C:
+ movs r2, 0x80
+ lsls r2, 12
+ movs r0, 0
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ cmp r1, 0
+ beq _081E11B2
+ movs r0, 0x1
+ str r0, [r6]
+ b _081E11B4
+_081E11B2:
+ str r1, [r6]
+_081E11B4:
+ str r4, [r6, 0xC]
+ str r5, [r6, 0x10]
+ b _081E11D8
+_081E11BA:
+ ldr r1, _081E11DC
+ 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, _081E11E0
+ ldr r3, _081E11E4
+ orrs r1, r3
+ str r0, [r6, 0xC]
+ str r1, [r6, 0x10]
+_081E11D8:
+ add sp, 0x8
+ pop {r4-r7,pc}
+ .align 2, 0
+_081E11DC: .4byte 0xfffffc01
+_081E11E0: .4byte 0x00000000
+_081E11E4: .4byte 0x10000000
+ thumb_func_end __unpack_d
+
+ thumb_func_start __fpadd_parts_d
+__fpadd_parts_d: ; 81E11E8
+ 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 _081E1204
+ movs r0, 0x1
+_081E1204:
+ cmp r0, 0
+ beq _081E120C
+_081E1208:
+ adds r0, r3, 0
+ b _081E1444
+_081E120C:
+ movs r1, 0
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bhi _081E1216
+ movs r1, 0x1
+_081E1216:
+ cmp r1, 0
+ bne _081E128E
+ movs r1, 0
+ cmp r2, 0x4
+ bne _081E1222
+ movs r1, 0x1
+_081E1222:
+ cmp r1, 0
+ beq _081E1244
+ movs r1, 0
+ cmp r0, 0x4
+ bne _081E122E
+ movs r1, 0x1
+_081E122E:
+ cmp r1, 0
+ beq _081E1208
+ ldr r1, [r3, 0x4]
+ ldr r0, [r4, 0x4]
+ cmp r1, r0
+ beq _081E1208
+ ldr r0, _081E1240
+ b _081E1444
+ .align 2, 0
+_081E1240: .4byte 0x03000f38
+_081E1244:
+ movs r1, 0
+ cmp r0, 0x4
+ bne _081E124C
+ movs r1, 0x1
+_081E124C:
+ cmp r1, 0
+ bne _081E128E
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E1258
+ movs r1, 0x1
+_081E1258:
+ cmp r1, 0
+ beq _081E1280
+ movs r0, 0
+ cmp r2, 0x2
+ bne _081E1264
+ movs r0, 0x1
+_081E1264:
+ cmp r0, 0
+ beq _081E1208
+ 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 _081E1442
+_081E1280:
+ movs r1, 0
+ ldr r0, [r3]
+ cmp r0, 0x2
+ bne _081E128A
+ movs r1, 0x1
+_081E128A:
+ cmp r1, 0
+ beq _081E1292
+_081E128E:
+ adds r0, r4, 0
+ b _081E1444
+_081E1292:
+ 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 _081E12B2
+ negs r0, r0
+_081E12B2:
+ cmp r0, 0x3F
+ bgt _081E1330
+ ldr r3, [r3, 0x4]
+ mov r12, r3
+ ldr r4, [r4, 0x4]
+ str r4, [sp, 0x8]
+ cmp r9, r8
+ ble _081E12FC
+ mov r3, r9
+ mov r4, r8
+ subs r3, r4
+ mov r8, r3
+_081E12CA:
+ 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 _081E12CA
+ mov r8, r9
+_081E12FC:
+ cmp r8, r9
+ ble _081E134C
+ mov r0, r8
+ mov r1, r9
+ subs r0, r1
+ mov r9, r0
+_081E1308:
+ 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 _081E1308
+ mov r9, r8
+ b _081E134C
+_081E1330:
+ cmp r9, r8
+ ble _081E133E
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ b _081E1344
+_081E133E:
+ mov r9, r8
+ movs r6, 0
+ movs r7, 0
+_081E1344:
+ ldr r3, [r3, 0x4]
+ mov r12, r3
+ ldr r4, [r4, 0x4]
+ str r4, [sp, 0x8]
+_081E134C:
+ ldr r1, [sp, 0x8]
+ cmp r12, r1
+ beq _081E13F4
+ mov r2, r12
+ cmp r2, 0
+ beq _081E136E
+ 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 _081E137A
+_081E136E:
+ adds r3, r7, 0
+ adds r2, r6, 0
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ subs r2, r0
+ sbcs r3, r1
+_081E137A:
+ cmp r3, 0
+ blt _081E1390
+ 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 _081E13A8
+_081E1390:
+ 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]
+_081E13A8:
+ mov r4, r10
+ ldr r2, [r4, 0xC]
+ ldr r3, [r4, 0x10]
+ movs r0, 0x1
+ negs r0, r0
+ asrs r1, r0, 31
+_081E13B4:
+ adds r2, r0
+ adcs r3, r1
+ ldr r0, _081E13F0
+ cmp r3, r0
+ bhi _081E140C
+ cmp r3, r0
+ bne _081E13CA
+ movs r0, 0x2
+ negs r0, r0
+ cmp r2, r0
+ bhi _081E140C
+_081E13CA:
+ 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 _081E13B4
+ .align 2, 0
+_081E13F0: .4byte 0x0fffffff
+_081E13F4:
+ 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]
+_081E140C:
+ movs r0, 0x3
+ mov r5, r10
+ str r0, [r5]
+ ldr r1, [r5, 0x10]
+ ldr r0, _081E1450
+ cmp r1, r0
+ bls _081E1442
+ 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]
+_081E1442:
+ mov r0, r10
+_081E1444:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7,pc}
+ .align 2, 0
+_081E1450: .4byte 0x1fffffff
+ thumb_func_end __fpadd_parts_d
+
+ thumb_func_start __adddf3
+; double __adddf3(double arg_a, double arg_b)
+__adddf3: ; 81E1454
+ 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: ; 81E1484
+ 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: ; 81E14BC
+ 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 _081E14F2
+ movs r0, 0x1
+_081E14F2:
+ cmp r0, 0
+ bne _081E1556
+ movs r2, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1500
+ movs r2, 0x1
+_081E1500:
+ cmp r2, 0
+ beq _081E1508
+ ldr r0, [sp, 0x4]
+ b _081E1578
+_081E1508:
+ movs r2, 0
+ cmp r1, 0x4
+ bne _081E1510
+ movs r2, 0x1
+_081E1510:
+ cmp r2, 0
+ beq _081E1522
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E151C
+ movs r1, 0x1
+_081E151C:
+ cmp r1, 0
+ bne _081E153A
+ b _081E1556
+_081E1522:
+ movs r2, 0
+ cmp r0, 0x4
+ bne _081E152A
+ movs r2, 0x1
+_081E152A:
+ cmp r2, 0
+ beq _081E154A
+ movs r0, 0
+ cmp r1, 0x2
+ bne _081E1536
+ movs r0, 0x1
+_081E1536:
+ cmp r0, 0
+ beq _081E1544
+_081E153A:
+ ldr r0, _081E1540
+ b _081E1742
+ .align 2, 0
+_081E1540: .4byte 0x03000f38
+_081E1544:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ b _081E1578
+_081E154A:
+ movs r2, 0
+ cmp r1, 0x2
+ bne _081E1552
+ movs r2, 0x1
+_081E1552:
+ cmp r2, 0
+ beq _081E1568
+_081E1556:
+ 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 _081E1742
+_081E1568:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E1570
+ movs r1, 0x1
+_081E1570:
+ cmp r1, 0
+ beq _081E1588
+ mov r2, r8
+ ldr r0, [r2, 0x4]
+_081E1578:
+ 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 _081E1742
+_081E1588:
+ 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 _081E1600
+ cmp r7, r3
+ bne _081E1608
+ cmp r6, r2
+ bls _081E1608
+_081E1600:
+ ldr r5, _081E1758
+ ldr r4, _081E1754
+ str r4, [sp, 0x6C]
+ str r5, [sp, 0x70]
+_081E1608:
+ 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 _081E1624
+ ldr r1, [sp, 0x60]
+ cmp r1, r7
+ bne _081E1634
+ cmp r0, r6
+ bls _081E1634
+_081E1624:
+ 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]
+_081E1634:
+ 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, _081E175C
+ cmp r5, r0
+ bls _081E16B6
+ movs r1, 0x1
+ mov r9, r1
+ mov r8, r0
+ mov r12, r2
+_081E167A:
+ movs r2, 0x1
+ add r12, r2
+ mov r0, r9
+ ands r0, r4
+ cmp r0, 0
+ beq _081E16A0
+ 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
+_081E16A0:
+ 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 _081E167A
+ mov r0, r12
+ str r0, [sp, 0x30]
+_081E16B6:
+ ldr r0, _081E1760
+ cmp r5, r0
+ bhi _081E1708
+ movs r1, 0x80
+ lsls r1, 24
+ mov r9, r1
+ mov r8, r0
+ ldr r2, [sp, 0x30]
+ mov r12, r2
+_081E16C8:
+ 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 _081E16F2
+ movs r0, 0x1
+ orrs r0, r4
+ adds r1, r5, 0
+ adds r5, r1, 0
+ adds r4, r0, 0
+_081E16F2:
+ 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 _081E16C8
+ mov r1, r12
+ str r1, [sp, 0x30]
+_081E1708:
+ movs r0, 0xFF
+ adds r1, r4, 0
+ ands r1, r0
+ movs r2, 0
+ cmp r1, 0x80
+ bne _081E1736
+ cmp r2, 0
+ bne _081E1736
+ adds r0, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ adds r0, r2, 0
+ orrs r0, r1
+ cmp r0, 0
+ bne _081E172E
+ adds r0, r7, 0
+ orrs r0, r6
+ cmp r0, 0
+ beq _081E1736
+_081E172E:
+ movs r0, 0x80
+ movs r1, 0
+ adds r4, r0
+ adcs r5, r1
+_081E1736:
+ str r4, [sp, 0x34]
+ str r5, [sp, 0x38]
+ movs r0, 0x3
+ mov r2, r10
+ str r0, [r2]
+ add r0, sp, 0x28
+_081E1742:
+ 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
+_081E1754: .4byte 0x00000000
+_081E1758: .4byte 0x00000001
+_081E175C: .4byte 0x1fffffff
+_081E1760: .4byte 0x0fffffff
+ thumb_func_end __muldf3
+
+ thumb_func_start __divdf3
+__divdf3: ; 81E1764
+ 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 _081E178E
+ movs r0, 0x1
+_081E178E:
+ cmp r0, 0
+ beq _081E1796
+ mov r1, sp
+ b _081E18D8
+_081E1796:
+ movs r0, 0
+ ldr r2, [sp, 0x14]
+ adds r5, r2, 0
+ cmp r2, 0x1
+ bhi _081E17A2
+ movs r0, 0x1
+_081E17A2:
+ cmp r0, 0
+ beq _081E17AA
+ adds r1, r4, 0
+ b _081E18D8
+_081E17AA:
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x18]
+ eors r0, r1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r3, 0x4
+ bne _081E17BA
+ movs r0, 0x1
+_081E17BA:
+ cmp r0, 0
+ bne _081E17CA
+ movs r4, 0
+ cmp r3, 0x2
+ bne _081E17C6
+ movs r4, 0x1
+_081E17C6:
+ cmp r4, 0
+ beq _081E17DC
+_081E17CA:
+ mov r1, r12
+ ldr r0, [r1]
+ cmp r0, r5
+ beq _081E17D4
+ b _081E18D8
+_081E17D4:
+ ldr r1, _081E17D8
+ b _081E18D8
+ .align 2, 0
+_081E17D8: .4byte 0x03000f38
+_081E17DC:
+ movs r0, 0
+ cmp r2, 0x4
+ bne _081E17E4
+ movs r0, 0x1
+_081E17E4:
+ cmp r0, 0
+ beq _081E17F6
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r4, [sp, 0x8]
+ mov r1, sp
+ b _081E18D8
+_081E17F6:
+ movs r0, 0
+ cmp r2, 0x2
+ bne _081E17FE
+ movs r0, 0x1
+_081E17FE:
+ cmp r0, 0
+ beq _081E180A
+ movs r0, 0x4
+ mov r2, r12
+ str r0, [r2]
+ b _081E18D6
+_081E180A:
+ 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 _081E182E
+ ldr r1, [sp, 0x3C]
+ cmp r1, r5
+ bne _081E1842
+ cmp r0, r4
+ bls _081E1842
+_081E182E:
+ 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]
+_081E1842:
+ ldr r7, _081E18E8
+ ldr r6, _081E18E4
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x40]
+ str r1, [sp, 0x44]
+_081E184E:
+ ldr r1, [sp, 0x3C]
+ cmp r1, r5
+ bhi _081E1872
+ cmp r1, r5
+ bne _081E185E
+ ldr r2, [sp, 0x38]
+ cmp r2, r4
+ bhi _081E1872
+_081E185E:
+ 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
+_081E1872:
+ 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 _081E184E
+ movs r0, 0xFF
+ ldr r1, [sp, 0x40]
+ ands r1, r0
+ movs r2, 0
+ cmp r1, 0x80
+ bne _081E18CC
+ cmp r2, 0
+ bne _081E18CC
+ adds r0, 0x1
+ ldr r1, [sp, 0x40]
+ ands r1, r0
+ adds r0, r2, 0
+ orrs r0, r1
+ cmp r0, 0
+ bne _081E18BC
+ adds r0, r5, 0
+ orrs r0, r4
+ cmp r0, 0
+ beq _081E18CC
+_081E18BC:
+ 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]
+_081E18CC:
+ ldr r0, [sp, 0x40]
+ ldr r1, [sp, 0x44]
+ mov r2, r12
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+_081E18D6:
+ mov r1, r12
+_081E18D8:
+ adds r0, r1, 0
+ bl __pack_d
+ add sp, 0x48
+ pop {r4-r7,pc}
+ .align 2, 0
+_081E18E4: .4byte 0x00000000
+_081E18E8: .4byte 0x10000000
+ thumb_func_end __divdf3
+
+ thumb_func_start __fpcmp_parts_d
+__fpcmp_parts_d: ; 81E18EC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0
+ ldr r1, [r5]
+ cmp r1, 0x1
+ bhi _081E18FC
+ movs r0, 0x1
+_081E18FC:
+ cmp r0, 0
+ bne _081E190E
+ movs r0, 0
+ ldr r2, [r6]
+ cmp r2, 0x1
+ bhi _081E190A
+ movs r0, 0x1
+_081E190A:
+ cmp r0, 0
+ beq _081E1912
+_081E190E:
+ movs r0, 0x1
+ b _081E19E8
+_081E1912:
+ movs r0, 0
+ cmp r1, 0x4
+ bne _081E191A
+ movs r0, 0x1
+_081E191A:
+ cmp r0, 0
+ beq _081E1932
+ movs r0, 0
+ cmp r2, 0x4
+ bne _081E1926
+ movs r0, 0x1
+_081E1926:
+ cmp r0, 0
+ beq _081E1932
+ ldr r0, [r6, 0x4]
+ ldr r1, [r5, 0x4]
+ subs r0, r1
+ b _081E19E8
+_081E1932:
+ movs r1, 0
+ ldr r0, [r5]
+ cmp r0, 0x4
+ bne _081E193C
+ movs r1, 0x1
+_081E193C:
+ cmp r1, 0
+ bne _081E198A
+ movs r1, 0
+ cmp r2, 0x4
+ bne _081E1948
+ movs r1, 0x1
+_081E1948:
+ cmp r1, 0
+ beq _081E195A
+_081E194C:
+ ldr r0, [r6, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, 0
+ beq _081E1994
+ movs r1, 0x1
+ b _081E1994
+_081E195A:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E1962
+ movs r1, 0x1
+_081E1962:
+ cmp r1, 0
+ beq _081E1972
+ movs r1, 0
+ cmp r2, 0x2
+ bne _081E196E
+ movs r1, 0x1
+_081E196E:
+ cmp r1, 0
+ bne _081E19E6
+_081E1972:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E197A
+ movs r1, 0x1
+_081E197A:
+ cmp r1, 0
+ bne _081E194C
+ movs r0, 0
+ cmp r2, 0x2
+ bne _081E1986
+ movs r0, 0x1
+_081E1986:
+ cmp r0, 0
+ beq _081E1998
+_081E198A:
+ ldr r0, [r5, 0x4]
+ movs r1, 0x1
+ cmp r0, 0
+ beq _081E1994
+ subs r1, 0x2
+_081E1994:
+ adds r0, r1, 0
+ b _081E19E8
+_081E1998:
+ ldr r0, [r6, 0x4]
+ ldr r4, [r5, 0x4]
+ cmp r4, r0
+ beq _081E19AA
+_081E19A0:
+ movs r0, 0x1
+ cmp r4, 0
+ beq _081E19E8
+ subs r0, 0x2
+ b _081E19E8
+_081E19AA:
+ ldr r1, [r5, 0x8]
+ ldr r0, [r6, 0x8]
+ cmp r1, r0
+ bgt _081E19A0
+ cmp r1, r0
+ bge _081E19C2
+_081E19B6:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, 0
+ beq _081E19E8
+ movs r0, 0x1
+ b _081E19E8
+_081E19C2:
+ ldr r3, [r5, 0x10]
+ ldr r2, [r6, 0x10]
+ cmp r3, r2
+ bhi _081E19A0
+ cmp r3, r2
+ bne _081E19D6
+ ldr r1, [r5, 0xC]
+ ldr r0, [r6, 0xC]
+ cmp r1, r0
+ bhi _081E19A0
+_081E19D6:
+ cmp r2, r3
+ bhi _081E19B6
+ cmp r2, r3
+ bne _081E19E6
+ ldr r1, [r6, 0xC]
+ ldr r0, [r5, 0xC]
+ cmp r1, r0
+ bhi _081E19B6
+_081E19E6:
+ movs r0, 0
+_081E19E8:
+ pop {r4-r6,pc}
+ thumb_func_end __fpcmp_parts_d
+
+ thumb_func_start __cmpdf2
+__cmpdf2: ; 81E19EC
+ 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: ; 81E1A18
+ 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 _081E1A40
+ movs r1, 0x1
+_081E1A40:
+ cmp r1, 0
+ bne _081E1A52
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1A4E
+ movs r1, 0x1
+_081E1A4E:
+ cmp r1, 0
+ beq _081E1A56
+_081E1A52:
+ movs r0, 0x1
+ b _081E1A5E
+_081E1A56:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_081E1A5E:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __eqdf2
+
+ thumb_func_start __nedf2
+__nedf2: ; 81E1A64
+ 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 _081E1A8C
+ movs r1, 0x1
+_081E1A8C:
+ cmp r1, 0
+ bne _081E1A9E
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1A9A
+ movs r1, 0x1
+_081E1A9A:
+ cmp r1, 0
+ beq _081E1AA2
+_081E1A9E:
+ movs r0, 0x1
+ b _081E1AAA
+_081E1AA2:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_081E1AAA:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __nedf2
+
+ thumb_func_start __gtdf2
+__gtdf2: ; 81E1AB0
+ 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 _081E1AD8
+ movs r1, 0x1
+_081E1AD8:
+ cmp r1, 0
+ bne _081E1AEA
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1AE6
+ movs r1, 0x1
+_081E1AE6:
+ cmp r1, 0
+ beq _081E1AF0
+_081E1AEA:
+ movs r0, 0x1
+ negs r0, r0
+ b _081E1AF8
+_081E1AF0:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_081E1AF8:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __gtdf2
+
+ thumb_func_start __gedf2
+; int __gedf2(double arg_a, double arg_b)
+__gedf2: ; 81E1AFC
+ 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 _081E1B24
+ movs r1, 0x1
+_081E1B24:
+ cmp r1, 0
+ bne _081E1B36
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1B32
+ movs r1, 0x1
+_081E1B32:
+ cmp r1, 0
+ beq _081E1B3C
+_081E1B36:
+ movs r0, 0x1
+ negs r0, r0
+ b _081E1B44
+_081E1B3C:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_081E1B44:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __gedf2
+
+ thumb_func_start __ltdf2
+__ltdf2: ; 81E1B48
+ 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 _081E1B70
+ movs r1, 0x1
+_081E1B70:
+ cmp r1, 0
+ bne _081E1B82
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1B7E
+ movs r1, 0x1
+_081E1B7E:
+ cmp r1, 0
+ beq _081E1B86
+_081E1B82:
+ movs r0, 0x1
+ b _081E1B8E
+_081E1B86:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_081E1B8E:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __ltdf2
+
+ thumb_func_start __ledf2
+__ledf2: ; 81E1B94
+ 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 _081E1BBC
+ movs r1, 0x1
+_081E1BBC:
+ cmp r1, 0
+ bne _081E1BCE
+ movs r1, 0
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x1
+ bhi _081E1BCA
+ movs r1, 0x1
+_081E1BCA:
+ cmp r1, 0
+ beq _081E1BD2
+_081E1BCE:
+ movs r0, 0x1
+ b _081E1BDA
+_081E1BD2:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_d
+_081E1BDA:
+ add sp, 0x38
+ pop {r4,pc}
+ thumb_func_end __ledf2
+
+ thumb_func_start __floatsidf
+__floatsidf: ; 81E1BE0
+ 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 _081E1BF8
+ movs r0, 0x2
+ str r0, [sp]
+ b _081E1C4E
+_081E1BF8:
+ movs r0, 0x3C
+ str r0, [sp, 0x8]
+ cmp r1, 0
+ beq _081E1C1E
+ movs r0, 0x80
+ lsls r0, 24
+ cmp r2, r0
+ bne _081E1C18
+ ldr r1, _081E1C14
+ ldr r0, _081E1C10
+ b _081E1C54
+ .align 2, 0
+_081E1C10: .4byte 0xc1e00000
+_081E1C14: .4byte 0x00000000
+_081E1C18:
+ negs r0, r2
+ asrs r1, r0, 31
+ b _081E1C22
+_081E1C1E:
+ adds r0, r2, 0
+ asrs r1, r2, 31
+_081E1C22:
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r0, [sp, 0x10]
+ ldr r1, _081E1C58
+ cmp r0, r1
+ bhi _081E1C4E
+ adds r5, r1, 0
+ ldr r4, [sp, 0x8]
+_081E1C32:
+ 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 _081E1C32
+ str r4, [sp, 0x8]
+_081E1C4E:
+ mov r0, sp
+ bl __pack_d
+_081E1C54:
+ add sp, 0x14
+ pop {r4,r5,pc}
+ .align 2, 0
+_081E1C58: .4byte 0x0fffffff
+ thumb_func_end __floatsidf
+
+ thumb_func_start __fixdfsi
+; int __fixdfsi(double arg_a)
+__fixdfsi: ; 81E1C5C
+ 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 _081E1C76
+ movs r1, 0x1
+_081E1C76:
+ cmp r1, 0
+ bne _081E1CAA
+ movs r1, 0
+ cmp r0, 0x1
+ bhi _081E1C82
+ movs r1, 0x1
+_081E1C82:
+ cmp r1, 0
+ bne _081E1CAA
+ movs r1, 0
+ cmp r0, 0x4
+ bne _081E1C8E
+ movs r1, 0x1
+_081E1C8E:
+ cmp r1, 0
+ beq _081E1CA4
+_081E1C92:
+ ldr r0, [sp, 0x4]
+ ldr r1, _081E1CA0
+ cmp r0, 0
+ beq _081E1CC8
+ adds r1, 0x1
+ b _081E1CC8
+ .align 2, 0
+_081E1CA0: .4byte 0x7fffffff
+_081E1CA4:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bge _081E1CAE
+_081E1CAA:
+ movs r0, 0
+ b _081E1CCA
+_081E1CAE:
+ cmp r0, 0x1E
+ bgt _081E1C92
+ 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 _081E1CC8
+ negs r1, r1
+_081E1CC8:
+ adds r0, r1, 0
+_081E1CCA:
+ add sp, 0x1C
+ pop {pc}
+ thumb_func_end __fixdfsi
+
+ thumb_func_start __negdf2
+__negdf2: ; 81E1CD0
+ 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 _081E1CEA
+ movs r1, 0x1
+_081E1CEA:
+ 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: ; 81E1CF8
+ 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: ; 81E1D20
+ 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, _081E1D60
+ adds r0, r2, 0
+ ands r0, r4
+ movs r1, 0
+ orrs r0, r1
+ cmp r0, 0
+ beq _081E1D50
+ movs r0, 0x1
+ orrs r5, r0
+_081E1D50:
+ 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
+_081E1D60: .4byte 0x3fffffff
+ thumb_func_end __truncdfsf2
+
+ thumb_func_start __pack_f
+__pack_f: ; 81E1D64
+ 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 _081E1D76
+ movs r1, 0x1
+_081E1D76:
+ cmp r1, 0
+ beq _081E1D84
+ movs r5, 0xFF
+ movs r0, 0x80
+ lsls r0, 13
+ orrs r2, r0
+ b _081E1DEA
+_081E1D84:
+ movs r1, 0
+ cmp r3, 0x4
+ bne _081E1D8C
+ movs r1, 0x1
+_081E1D8C:
+ cmp r1, 0
+ bne _081E1DC0
+ movs r1, 0
+ cmp r3, 0x2
+ bne _081E1D98
+ movs r1, 0x1
+_081E1D98:
+ cmp r1, 0
+ beq _081E1DA0
+ movs r2, 0
+ b _081E1DEA
+_081E1DA0:
+ cmp r2, 0
+ beq _081E1DEA
+ ldr r0, [r0, 0x8]
+ movs r3, 0x7E
+ negs r3, r3
+ cmp r0, r3
+ bge _081E1DBC
+ subs r0, r3, r0
+ cmp r0, 0x19
+ ble _081E1DB8
+ movs r2, 0
+ b _081E1DE8
+_081E1DB8:
+ lsrs r2, r0
+ b _081E1DE8
+_081E1DBC:
+ cmp r0, 0x7F
+ ble _081E1DC6
+_081E1DC0:
+ movs r5, 0xFF
+ movs r2, 0
+ b _081E1DEA
+_081E1DC6:
+ adds r5, r0, 0
+ adds r5, 0x7F
+ movs r0, 0x7F
+ ands r0, r2
+ cmp r0, 0x40
+ bne _081E1DDE
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _081E1DE0
+ adds r2, 0x40
+ b _081E1DE0
+_081E1DDE:
+ adds r2, 0x3F
+_081E1DE0:
+ cmp r2, 0
+ bge _081E1DE8
+ lsrs r2, 1
+ adds r5, 0x1
+_081E1DE8:
+ lsrs r2, 7
+_081E1DEA:
+ ldr r0, _081E1E0C
+ ands r2, r0
+ ldr r0, _081E1E10
+ ands r4, r0
+ orrs r4, r2
+ movs r0, 0xFF
+ ands r5, r0
+ lsls r1, r5, 23
+ ldr r0, _081E1E14
+ ands r4, r0
+ orrs r4, r1
+ lsls r1, r6, 31
+ ldr r0, _081E1E18
+ ands r4, r0
+ orrs r4, r1
+ adds r0, r4, 0
+ pop {r4-r6,pc}
+ .align 2, 0
+_081E1E0C: .4byte 0x007fffff
+_081E1E10: .4byte 0xff800000
+_081E1E14: .4byte 0x807fffff
+_081E1E18: .4byte 0x7fffffff
+ thumb_func_end __pack_f
+
+ thumb_func_start __unpack_f
+__unpack_f: ; 81E1E1C
+ 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 _081E1E60
+ cmp r2, 0
+ bne _081E1E3C
+ movs r0, 0x2
+ str r0, [r3]
+ b _081E1E94
+_081E1E3C:
+ adds r4, r1, 0
+ subs r4, 0x7E
+ str r4, [r3, 0x8]
+ lsls r2, 7
+ movs r0, 0x3
+ str r0, [r3]
+ ldr r1, _081E1E5C
+ cmp r2, r1
+ bhi _081E1E7C
+ adds r0, r4, 0
+_081E1E50:
+ lsls r2, 1
+ subs r0, 0x1
+ cmp r2, r1
+ bls _081E1E50
+ str r0, [r3, 0x8]
+ b _081E1E7C
+ .align 2, 0
+_081E1E5C: .4byte 0x3fffffff
+_081E1E60:
+ cmp r1, 0xFF
+ bne _081E1E80
+ cmp r2, 0
+ bne _081E1E6E
+ movs r0, 0x4
+ str r0, [r3]
+ b _081E1E94
+_081E1E6E:
+ movs r0, 0x80
+ lsls r0, 13
+ ands r0, r2
+ cmp r0, 0
+ beq _081E1E7A
+ movs r0, 0x1
+_081E1E7A:
+ str r0, [r3]
+_081E1E7C:
+ str r2, [r3, 0xC]
+ b _081E1E94
+_081E1E80:
+ 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]
+_081E1E94:
+ pop {r4,pc}
+ thumb_func_end __unpack_f
+
+ thumb_func_start __fpadd_parts_f
+__fpadd_parts_f: ; 81E1E98
+ 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 _081E1EAE
+ movs r0, 0x1
+_081E1EAE:
+ cmp r0, 0
+ beq _081E1EB6
+_081E1EB2:
+ adds r0, r6, 0
+ b _081E200C
+_081E1EB6:
+ movs r1, 0
+ ldr r0, [r7]
+ cmp r0, 0x1
+ bhi _081E1EC0
+ movs r1, 0x1
+_081E1EC0:
+ cmp r1, 0
+ bne _081E1F34
+ movs r1, 0
+ cmp r2, 0x4
+ bne _081E1ECC
+ movs r1, 0x1
+_081E1ECC:
+ cmp r1, 0
+ beq _081E1EEC
+ movs r1, 0
+ cmp r0, 0x4
+ bne _081E1ED8
+ movs r1, 0x1
+_081E1ED8:
+ cmp r1, 0
+ beq _081E1EB2
+ ldr r1, [r6, 0x4]
+ ldr r0, [r7, 0x4]
+ cmp r1, r0
+ beq _081E1EB2
+ ldr r0, _081E1EE8
+ b _081E200C
+ .align 2, 0
+_081E1EE8: .4byte 0x03000f50
+_081E1EEC:
+ movs r1, 0
+ cmp r0, 0x4
+ bne _081E1EF4
+ movs r1, 0x1
+_081E1EF4:
+ cmp r1, 0
+ bne _081E1F34
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E1F00
+ movs r1, 0x1
+_081E1F00:
+ cmp r1, 0
+ beq _081E1F26
+ movs r0, 0
+ cmp r2, 0x2
+ bne _081E1F0C
+ movs r0, 0x1
+_081E1F0C:
+ cmp r0, 0
+ beq _081E1EB2
+ 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 _081E200A
+_081E1F26:
+ movs r1, 0
+ ldr r0, [r6]
+ cmp r0, 0x2
+ bne _081E1F30
+ movs r1, 0x1
+_081E1F30:
+ cmp r1, 0
+ beq _081E1F38
+_081E1F34:
+ adds r0, r7, 0
+ b _081E200C
+_081E1F38:
+ ldr r1, [r6, 0x8]
+ ldr r3, [r7, 0x8]
+ ldr r2, [r6, 0xC]
+ ldr r4, [r7, 0xC]
+ subs r0, r1, r3
+ cmp r0, 0
+ bge _081E1F48
+ negs r0, r0
+_081E1F48:
+ cmp r0, 0x1F
+ bgt _081E1F8C
+ ldr r6, [r6, 0x4]
+ ldr r7, [r7, 0x4]
+ mov r8, r7
+ cmp r1, r3
+ ble _081E1F6E
+ movs r7, 0x1
+ mov r12, r7
+ subs r3, r1, r3
+_081E1F5C:
+ subs r3, 0x1
+ adds r0, r4, 0
+ mov r7, r12
+ ands r0, r7
+ lsrs r4, 1
+ orrs r4, r0
+ cmp r3, 0
+ bne _081E1F5C
+ adds r3, r1, 0
+_081E1F6E:
+ cmp r3, r1
+ ble _081E1F9E
+ movs r0, 0x1
+ mov r12, r0
+ subs r1, r3, r1
+_081E1F78:
+ subs r1, 0x1
+ adds r0, r2, 0
+ mov r7, r12
+ ands r0, r7
+ lsrs r2, 1
+ orrs r2, r0
+ cmp r1, 0
+ bne _081E1F78
+ adds r1, r3, 0
+ b _081E1F9E
+_081E1F8C:
+ cmp r1, r3
+ ble _081E1F94
+ movs r4, 0
+ b _081E1F98
+_081E1F94:
+ adds r1, r3, 0
+ movs r2, 0
+_081E1F98:
+ ldr r6, [r6, 0x4]
+ ldr r7, [r7, 0x4]
+ mov r8, r7
+_081E1F9E:
+ cmp r6, r8
+ beq _081E1FE8
+ cmp r6, 0
+ beq _081E1FAA
+ subs r3, r4, r2
+ b _081E1FAC
+_081E1FAA:
+ subs r3, r2, r4
+_081E1FAC:
+ cmp r3, 0
+ blt _081E1FBA
+ movs r0, 0
+ str r0, [r5, 0x4]
+ str r1, [r5, 0x8]
+ str r3, [r5, 0xC]
+ b _081E1FC4
+_081E1FBA:
+ movs r0, 0x1
+ str r0, [r5, 0x4]
+ str r1, [r5, 0x8]
+ negs r0, r3
+ str r0, [r5, 0xC]
+_081E1FC4:
+ ldr r1, [r5, 0xC]
+ subs r0, r1, 0x1
+ ldr r2, _081E1FE4
+ cmp r0, r2
+ bhi _081E1FF0
+_081E1FCE:
+ 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 _081E1FCE
+ b _081E1FF0
+ .align 2, 0
+_081E1FE4: .4byte 0x3ffffffe
+_081E1FE8:
+ str r6, [r5, 0x4]
+ str r1, [r5, 0x8]
+ adds r0, r2, r4
+ str r0, [r5, 0xC]
+_081E1FF0:
+ movs r0, 0x3
+ str r0, [r5]
+ ldr r1, [r5, 0xC]
+ cmp r1, 0
+ bge _081E200A
+ 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]
+_081E200A:
+ adds r0, r5, 0
+_081E200C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7,pc}
+ thumb_func_end __fpadd_parts_f
+
+ thumb_func_start __addsf3
+__addsf3: ; 81E2014
+ 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: ; 81E2040
+ 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: ; 81E2074
+ 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 _081E20A6
+ movs r0, 0x1
+_081E20A6:
+ cmp r0, 0
+ bne _081E2104
+ movs r2, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E20B4
+ movs r2, 0x1
+_081E20B4:
+ cmp r2, 0
+ beq _081E20BC
+ ldr r0, [sp, 0x4]
+ b _081E2124
+_081E20BC:
+ movs r2, 0
+ cmp r1, 0x4
+ bne _081E20C4
+ movs r2, 0x1
+_081E20C4:
+ cmp r2, 0
+ beq _081E20D6
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E20D0
+ movs r1, 0x1
+_081E20D0:
+ cmp r1, 0
+ bne _081E20EE
+ b _081E2104
+_081E20D6:
+ movs r2, 0
+ cmp r0, 0x4
+ bne _081E20DE
+ movs r2, 0x1
+_081E20DE:
+ cmp r2, 0
+ beq _081E20F8
+ movs r0, 0
+ cmp r1, 0x2
+ bne _081E20EA
+ movs r0, 0x1
+_081E20EA:
+ cmp r0, 0
+ beq _081E2122
+_081E20EE:
+ ldr r0, _081E20F4
+ b _081E21C6
+ .align 2, 0
+_081E20F4: .4byte 0x03000f50
+_081E20F8:
+ movs r2, 0
+ cmp r1, 0x2
+ bne _081E2100
+ movs r2, 0x1
+_081E2100:
+ cmp r2, 0
+ beq _081E2116
+_081E2104:
+ 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 _081E21C6
+_081E2116:
+ movs r1, 0
+ cmp r0, 0x2
+ bne _081E211E
+ movs r1, 0x1
+_081E211E:
+ cmp r1, 0
+ beq _081E2134
+_081E2122:
+ ldr r0, [r7, 0x4]
+_081E2124:
+ 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 _081E21C6
+_081E2134:
+ 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 _081E2180
+ movs r2, 0x1
+ movs r1, 0x80
+ lsls r1, 24
+_081E216A:
+ adds r4, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _081E2178
+ lsrs r6, 1
+ orrs r6, r1
+_081E2178:
+ lsrs r5, 1
+ cmp r5, 0
+ blt _081E216A
+ str r4, [sp, 0x28]
+_081E2180:
+ ldr r0, _081E21D4
+ cmp r5, r0
+ bhi _081E21A6
+ movs r4, 0x80
+ lsls r4, 24
+ movs r3, 0x1
+ adds r2, r0, 0
+ ldr r1, [sp, 0x28]
+_081E2190:
+ subs r1, 0x1
+ lsls r5, 1
+ adds r0, r6, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _081E219E
+ orrs r5, r3
+_081E219E:
+ lsls r6, 1
+ cmp r5, r2
+ bls _081E2190
+ str r1, [sp, 0x28]
+_081E21A6:
+ movs r0, 0x7F
+ ands r0, r5
+ cmp r0, 0x40
+ bne _081E21BC
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _081E21BA
+ cmp r6, 0
+ beq _081E21BC
+_081E21BA:
+ adds r5, 0x40
+_081E21BC:
+ str r5, [sp, 0x2C]
+ movs r0, 0x3
+ mov r1, r8
+ str r0, [r1]
+ mov r0, r9
+_081E21C6:
+ bl __pack_f
+ add sp, 0x38
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7,pc}
+ .align 2, 0
+_081E21D4: .4byte 0x3fffffff
+ thumb_func_end __mulsf3
+
+ thumb_func_start __divsf3
+__divsf3: ; 81E21D8
+ 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 _081E21FE
+ movs r0, 0x1
+_081E21FE:
+ cmp r0, 0
+ beq _081E2206
+ mov r1, sp
+ b _081E22B8
+_081E2206:
+ movs r0, 0
+ ldr r2, [sp, 0x10]
+ adds r6, r2, 0
+ cmp r2, 0x1
+ bhi _081E2212
+ movs r0, 0x1
+_081E2212:
+ cmp r0, 0
+ beq _081E221A
+ adds r1, r5, 0
+ b _081E22B8
+_081E221A:
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ eors r0, r1
+ str r0, [sp, 0x4]
+ movs r0, 0
+ cmp r3, 0x4
+ bne _081E222A
+ movs r0, 0x1
+_081E222A:
+ cmp r0, 0
+ bne _081E223A
+ movs r0, 0
+ cmp r3, 0x2
+ bne _081E2236
+ movs r0, 0x1
+_081E2236:
+ cmp r0, 0
+ beq _081E224C
+_081E223A:
+ ldr r0, [r4]
+ adds r1, r4, 0
+ cmp r0, r6
+ bne _081E22B8
+ ldr r1, _081E2248
+ b _081E22B8
+ .align 2, 0
+_081E2248: .4byte 0x03000f50
+_081E224C:
+ movs r1, 0
+ cmp r2, 0x4
+ bne _081E2254
+ movs r1, 0x1
+_081E2254:
+ cmp r1, 0
+ beq _081E2260
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x8]
+ mov r1, sp
+ b _081E22B8
+_081E2260:
+ movs r0, 0
+ cmp r2, 0x2
+ bne _081E2268
+ movs r0, 0x1
+_081E2268:
+ cmp r0, 0
+ beq _081E2272
+ movs r0, 0x4
+ str r0, [r4]
+ b _081E22B6
+_081E2272:
+ 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 _081E2288
+ lsls r2, 1
+ subs r0, 0x1
+ str r0, [r4, 0x8]
+_081E2288:
+ movs r0, 0x80
+ lsls r0, 23
+ movs r1, 0
+_081E228E:
+ cmp r2, r3
+ bcc _081E2296
+ orrs r1, r0
+ subs r2, r3
+_081E2296:
+ lsrs r0, 1
+ lsls r2, 1
+ cmp r0, 0
+ bne _081E228E
+ movs r0, 0x7F
+ ands r0, r1
+ cmp r0, 0x40
+ bne _081E22B4
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081E22B2
+ cmp r2, 0
+ beq _081E22B4
+_081E22B2:
+ adds r1, 0x40
+_081E22B4:
+ str r1, [r4, 0xC]
+_081E22B6:
+ adds r1, r4, 0
+_081E22B8:
+ 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: ; 81E22C4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ ldr r2, [r4]
+ cmp r2, 0x1
+ bhi _081E22D2
+ movs r0, 0x1
+_081E22D2:
+ cmp r0, 0
+ bne _081E22E4
+ movs r0, 0
+ ldr r3, [r1]
+ cmp r3, 0x1
+ bhi _081E22E0
+ movs r0, 0x1
+_081E22E0:
+ cmp r0, 0
+ beq _081E22E8
+_081E22E4:
+ movs r0, 0x1
+ b _081E23A6
+_081E22E8:
+ movs r0, 0
+ cmp r2, 0x4
+ bne _081E22F0
+ movs r0, 0x1
+_081E22F0:
+ cmp r0, 0
+ beq _081E2308
+ movs r0, 0
+ cmp r3, 0x4
+ bne _081E22FC
+ movs r0, 0x1
+_081E22FC:
+ cmp r0, 0
+ beq _081E2308
+ ldr r0, [r1, 0x4]
+ ldr r1, [r4, 0x4]
+ subs r0, r1
+ b _081E23A6
+_081E2308:
+ movs r2, 0
+ ldr r0, [r4]
+ cmp r0, 0x4
+ bne _081E2312
+ movs r2, 0x1
+_081E2312:
+ cmp r2, 0
+ bne _081E2360
+ movs r2, 0
+ cmp r3, 0x4
+ bne _081E231E
+ movs r2, 0x1
+_081E231E:
+ cmp r2, 0
+ beq _081E2330
+_081E2322:
+ ldr r0, [r1, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, 0
+ beq _081E236A
+ movs r1, 0x1
+ b _081E236A
+_081E2330:
+ movs r2, 0
+ cmp r0, 0x2
+ bne _081E2338
+ movs r2, 0x1
+_081E2338:
+ cmp r2, 0
+ beq _081E2348
+ movs r2, 0
+ cmp r3, 0x2
+ bne _081E2344
+ movs r2, 0x1
+_081E2344:
+ cmp r2, 0
+ bne _081E23A4
+_081E2348:
+ movs r2, 0
+ cmp r0, 0x2
+ bne _081E2350
+ movs r2, 0x1
+_081E2350:
+ cmp r2, 0
+ bne _081E2322
+ movs r0, 0
+ cmp r3, 0x2
+ bne _081E235C
+ movs r0, 0x1
+_081E235C:
+ cmp r0, 0
+ beq _081E236E
+_081E2360:
+ ldr r0, [r4, 0x4]
+ movs r1, 0x1
+ cmp r0, 0
+ beq _081E236A
+ subs r1, 0x2
+_081E236A:
+ adds r0, r1, 0
+ b _081E23A6
+_081E236E:
+ ldr r3, [r4, 0x4]
+ ldr r0, [r1, 0x4]
+ cmp r3, r0
+ beq _081E2380
+_081E2376:
+ movs r0, 0x1
+ cmp r3, 0
+ beq _081E23A6
+ subs r0, 0x2
+ b _081E23A6
+_081E2380:
+ ldr r2, [r4, 0x8]
+ ldr r0, [r1, 0x8]
+ cmp r2, r0
+ bgt _081E2376
+ cmp r2, r0
+ bge _081E2398
+_081E238C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, 0
+ beq _081E23A6
+ movs r0, 0x1
+ b _081E23A6
+_081E2398:
+ ldr r0, [r4, 0xC]
+ ldr r1, [r1, 0xC]
+ cmp r0, r1
+ bhi _081E2376
+ cmp r0, r1
+ bcc _081E238C
+_081E23A4:
+ movs r0, 0
+_081E23A6:
+ pop {r4,pc}
+ thumb_func_end __fpcmp_parts_f
+
+ thumb_func_start __cmpsf2
+__cmpsf2: ; 81E23A8
+ 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: ; 81E23D0
+ 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 _081E23F4
+ movs r1, 0x1
+_081E23F4:
+ cmp r1, 0
+ bne _081E2406
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E2402
+ movs r1, 0x1
+_081E2402:
+ cmp r1, 0
+ beq _081E240A
+_081E2406:
+ movs r0, 0x1
+ b _081E2412
+_081E240A:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_081E2412:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __eqsf2
+
+ thumb_func_start __nesf2
+__nesf2: ; 81E2418
+ 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 _081E243C
+ movs r1, 0x1
+_081E243C:
+ cmp r1, 0
+ bne _081E244E
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E244A
+ movs r1, 0x1
+_081E244A:
+ cmp r1, 0
+ beq _081E2452
+_081E244E:
+ movs r0, 0x1
+ b _081E245A
+_081E2452:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_081E245A:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __nesf2
+
+ thumb_func_start __gtsf2
+__gtsf2: ; 81E2460
+ 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 _081E2484
+ movs r1, 0x1
+_081E2484:
+ cmp r1, 0
+ bne _081E2496
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E2492
+ movs r1, 0x1
+_081E2492:
+ cmp r1, 0
+ beq _081E249C
+_081E2496:
+ movs r0, 0x1
+ negs r0, r0
+ b _081E24A4
+_081E249C:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_081E24A4:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __gtsf2
+
+ thumb_func_start __gesf2
+__gesf2: ; 81E24A8
+ 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 _081E24CC
+ movs r1, 0x1
+_081E24CC:
+ cmp r1, 0
+ bne _081E24DE
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E24DA
+ movs r1, 0x1
+_081E24DA:
+ cmp r1, 0
+ beq _081E24E4
+_081E24DE:
+ movs r0, 0x1
+ negs r0, r0
+ b _081E24EC
+_081E24E4:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_081E24EC:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __gesf2
+
+ thumb_func_start __ltsf2
+__ltsf2: ; 81E24F0
+ 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 _081E2514
+ movs r1, 0x1
+_081E2514:
+ cmp r1, 0
+ bne _081E2526
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E2522
+ movs r1, 0x1
+_081E2522:
+ cmp r1, 0
+ beq _081E252A
+_081E2526:
+ movs r0, 0x1
+ b _081E2532
+_081E252A:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_081E2532:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __ltsf2
+
+ thumb_func_start __lesf2
+__lesf2: ; 81E2538
+ 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 _081E255C
+ movs r1, 0x1
+_081E255C:
+ cmp r1, 0
+ bne _081E256E
+ movs r1, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x1
+ bhi _081E256A
+ movs r1, 0x1
+_081E256A:
+ cmp r1, 0
+ beq _081E2572
+_081E256E:
+ movs r0, 0x1
+ b _081E257A
+_081E2572:
+ mov r0, sp
+ adds r1, r4, 0
+ bl __fpcmp_parts_f
+_081E257A:
+ add sp, 0x28
+ pop {r4,pc}
+ thumb_func_end __lesf2
+
+ thumb_func_start __floatsisf
+__floatsisf: ; 81E2580
+ 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 _081E2598
+ movs r0, 0x2
+ str r0, [sp]
+ b _081E25D0
+_081E2598:
+ movs r0, 0x1E
+ str r0, [sp, 0x8]
+ cmp r2, 0
+ beq _081E25B6
+ movs r0, 0x80
+ lsls r0, 24
+ cmp r1, r0
+ bne _081E25B0
+ ldr r0, _081E25AC
+ b _081E25D6
+ .align 2, 0
+_081E25AC: .4byte 0xcf000000
+_081E25B0:
+ negs r0, r1
+ str r0, [sp, 0xC]
+ b _081E25B8
+_081E25B6:
+ str r1, [sp, 0xC]
+_081E25B8:
+ ldr r2, [sp, 0xC]
+ ldr r3, _081E25DC
+ cmp r2, r3
+ bhi _081E25D0
+ ldr r1, [sp, 0x8]
+_081E25C2:
+ lsls r0, r2, 1
+ subs r1, 0x1
+ adds r2, r0, 0
+ cmp r0, r3
+ bls _081E25C2
+ str r1, [sp, 0x8]
+ str r0, [sp, 0xC]
+_081E25D0:
+ mov r0, sp
+ bl __pack_f
+_081E25D6:
+ add sp, 0x10
+ pop {pc}
+ .align 2, 0
+_081E25DC: .4byte 0x3fffffff
+ thumb_func_end __floatsisf
+
+ thumb_func_start __fixsfsi
+__fixsfsi: ; 81E25E0
+ 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 _081E25F8
+ movs r1, 0x1
+_081E25F8:
+ cmp r1, 0
+ bne _081E262A
+ movs r1, 0
+ cmp r0, 0x1
+ bhi _081E2604
+ movs r1, 0x1
+_081E2604:
+ cmp r1, 0
+ bne _081E262A
+ movs r1, 0
+ cmp r0, 0x4
+ bne _081E2610
+ movs r1, 0x1
+_081E2610:
+ cmp r1, 0
+ beq _081E2624
+_081E2614:
+ ldr r0, [sp, 0x4]
+ ldr r1, _081E2620
+ cmp r0, 0
+ beq _081E2642
+ adds r1, 0x1
+ b _081E2642
+ .align 2, 0
+_081E2620: .4byte 0x7fffffff
+_081E2624:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bge _081E262E
+_081E262A:
+ movs r0, 0
+ b _081E2644
+_081E262E:
+ cmp r1, 0x1E
+ bgt _081E2614
+ movs r0, 0x1E
+ subs r0, r1
+ ldr r1, [sp, 0xC]
+ lsrs r1, r0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _081E2642
+ negs r1, r1
+_081E2642:
+ adds r0, r1, 0
+_081E2644:
+ add sp, 0x14
+ pop {pc}
+ thumb_func_end __fixsfsi
+
+ thumb_func_start __negsf2
+__negsf2: ; 81E2648
+ 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 _081E2660
+ movs r1, 0x1
+_081E2660:
+ 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: ; 81E266C
+ 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: ; 81E2684
+ 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: ; 81E26B0
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ adds r5, r0, 0
+ cmp r2, 0
+ beq _081E26E0
+ movs r0, 0x20
+ subs r0, r2
+ cmp r0, 0
+ bgt _081E26CC
+ movs r4, 0
+ negs r0, r0
+ adds r3, r6, 0
+ lsrs r3, r0
+ b _081E26DC
+_081E26CC:
+ 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
+_081E26DC:
+ adds r1, r4, 0
+ adds r0, r3, 0
+_081E26E0:
+ pop {r4-r6,pc}
+ thumb_func_end __lshrdi3
+
+ thumb_func_start __negdi2
+__negdi2: ; 81E26E4
+ push {r4,lr}
+ negs r2, r0
+ adds r3, r2, 0
+ negs r1, r1
+ cmp r2, 0
+ beq _081E26F2
+ subs r1, 0x1
+_081E26F2:
+ adds r4, r1, 0
+ adds r1, r4, 0
+ adds r0, r3, 0
+ pop {r4,pc}
+ thumb_func_end __negdi2
+
+ thumb_func_start memcpy
+; void *memcpy(void *dest, void *src, int size)
+memcpy: ; 81E26FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r3, r1, 0
+ cmp r2, 0xF
+ bls _081E273C
+ adds r0, r3, 0
+ orrs r0, r5
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081E273C
+ adds r1, r5, 0
+_081E2716:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x10
+ cmp r2, 0xF
+ bhi _081E2716
+ cmp r2, 0x3
+ bls _081E273A
+_081E2730:
+ ldm r3!, {r0}
+ stm r1!, {r0}
+ subs r2, 0x4
+ cmp r2, 0x3
+ bhi _081E2730
+_081E273A:
+ adds r4, r1, 0
+_081E273C:
+ subs r2, 0x1
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _081E2756
+ adds r1, r0, 0
+_081E2748:
+ ldrb r0, [r3]
+ strb r0, [r4]
+ adds r3, 0x1
+ adds r4, 0x1
+ subs r2, 0x1
+ cmp r2, r1
+ bne _081E2748
+_081E2756:
+ adds r0, r5, 0
+ pop {r4,r5,pc}
+ thumb_func_end memcpy
+
+ thumb_func_start memset
+; void *memset(void *dest, char c, int size)
+memset: ; 81E275C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r3, r5, 0
+ cmp r2, 0x3
+ bls _081E27A2
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0
+ bne _081E27A2
+ adds r1, r5, 0
+ movs r0, 0xFF
+ ands r4, r0
+ lsls r3, r4, 8
+ orrs r3, r4
+ lsls r0, r3, 16
+ orrs r3, r0
+ cmp r2, 0xF
+ bls _081E2796
+_081E2782:
+ stm r1!, {r3}
+ stm r1!, {r3}
+ stm r1!, {r3}
+ stm r1!, {r3}
+ subs r2, 0x10
+ cmp r2, 0xF
+ bhi _081E2782
+ b _081E2796
+_081E2792:
+ stm r1!, {r3}
+ subs r2, 0x4
+_081E2796:
+ cmp r2, 0x3
+ bhi _081E2792
+ adds r3, r1, 0
+ b _081E27A2
+_081E279E:
+ strb r4, [r3]
+ adds r3, 0x1
+_081E27A2:
+ adds r0, r2, 0
+ subs r2, 0x1
+ cmp r0, 0
+ bne _081E279E
+ adds r0, r5, 0
+ pop {r4,r5,pc}
+ thumb_func_end memset
+
+ thumb_func_start strcmp
+; int strcmp(char *s1, char *s2)
+strcmp: ; 81E27B0
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ orrs r0, r3
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081E27F6
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ bne _081E27F6
+ ldr r5, _081E27DC
+ ldr r4, _081E27E0
+_081E27CC:
+ ldr r1, [r2]
+ adds r0, r1, r5
+ bics r0, r1
+ ands r0, r4
+ cmp r0, 0
+ beq _081E27E4
+ movs r0, 0
+ b _081E2808
+ .align 2, 0
+_081E27DC: .4byte 0xfefefeff
+_081E27E0: .4byte 0x80808080
+_081E27E4:
+ adds r2, 0x4
+ adds r3, 0x4
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _081E27CC
+ b _081E27F6
+_081E27F2:
+ adds r2, 0x1
+ adds r3, 0x1
+_081E27F6:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _081E2802
+ ldrb r1, [r3]
+ cmp r0, r1
+ beq _081E27F2
+_081E2802:
+ ldrb r2, [r2]
+ ldrb r3, [r3]
+ subs r0, r2, r3
+_081E2808:
+ pop {r4,r5,pc}
+ thumb_func_end strcmp