summaryrefslogtreecommitdiff
path: root/asm/mail.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
commit670fef77ac4d9116d5fdc28c0da40622919a062b (patch)
tree61c0e925f059404473826ac775305ba5e2706ab1 /asm/mail.s
first commit
Diffstat (limited to 'asm/mail.s')
-rw-r--r--asm/mail.s1041
1 files changed, 1041 insertions, 0 deletions
diff --git a/asm/mail.s b/asm/mail.s
new file mode 100644
index 000000000..692bb9793
--- /dev/null
+++ b/asm/mail.s
@@ -0,0 +1,1041 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BEBEC
+sub_80BEBEC: @ 80BEBEC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r4, _080BEC38 @ =gUnknown_20399C4
+ ldr r0, _080BEC3C @ =0x000020fc
+ bl sub_8002BB0
+ str r0, [r4]
+ adds r0, 0xED
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xEE
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xF0
+ ldr r0, _080BEC40 @ =sub_80BD850
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080BEC44 @ =sub_80BD89C
+ str r0, [r1]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _080BEC48
+ subs r1, 0x79
+ adds r0, r2, 0
+ adds r0, 0xEA
+ strb r1, [r0]
+ b _080BEC52
+ .align 2, 0
+_080BEC38: .4byte gUnknown_20399C4
+_080BEC3C: .4byte 0x000020fc
+_080BEC40: .4byte sub_80BD850
+_080BEC44: .4byte sub_80BD89C
+_080BEC48:
+ adds r1, r2, 0
+ adds r1, 0xEA
+ movs r0, 0
+ strb r0, [r1]
+ movs r6, 0
+_080BEC52:
+ ldr r0, _080BEC78 @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xEE
+ ldrb r1, [r1]
+ cmp r1, 0
+ beq _080BEC64
+ cmp r1, 0x1
+ beq _080BEC80
+_080BEC64:
+ adds r2, r0, 0
+ adds r2, 0xF8
+ adds r0, 0xEA
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BEC7C @ =gUnknown_83EEAC4
+ b _080BEC90
+ .align 2, 0
+_080BEC78: .4byte gUnknown_20399C4
+_080BEC7C: .4byte gUnknown_83EEAC4
+_080BEC80:
+ adds r2, r0, 0
+ adds r2, 0xF8
+ adds r0, 0xEA
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BECC8 @ =gUnknown_83EEB68
+_080BEC90:
+ adds r0, r1
+ str r0, [r2]
+ ldrh r0, [r5, 0x1E]
+ mov r1, sp
+ bl sub_8097F20
+ lsls r0, 16
+ ldr r1, _080BECCC @ =0xffff0000
+ adds r0, r1
+ movs r1, 0xCD
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080BECE4
+ ldr r0, _080BECD0 @ =gUnknown_20399C4
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xEA
+ ldrb r2, [r2]
+ adds r3, r0, 0
+ cmp r2, 0x6
+ beq _080BECD4
+ cmp r2, 0x9
+ beq _080BECDC
+ adds r1, 0xEB
+ movs r0, 0
+ strb r0, [r1]
+ b _080BECF0
+ .align 2, 0
+_080BECC8: .4byte gUnknown_83EEB68
+_080BECCC: .4byte 0xffff0000
+_080BECD0: .4byte gUnknown_20399C4
+_080BECD4:
+ adds r1, 0xEB
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080BECF0
+_080BECDC:
+ adds r1, 0xEB
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080BECF0
+_080BECE4:
+ ldr r0, _080BED10 @ =gUnknown_20399C4
+ ldr r1, [r0]
+ adds r1, 0xEB
+ movs r2, 0
+ strb r2, [r1]
+ adds r3, r0, 0
+_080BECF0:
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0xE4
+ str r5, [r0]
+ subs r0, 0x8
+ str r7, [r0]
+ adds r0, 0xC
+ strb r6, [r0]
+ ldr r0, _080BED14 @ =sub_80BF110
+ bl sub_8000544
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BED10: .4byte gUnknown_20399C4
+_080BED14: .4byte sub_80BF110
+ thumb_func_end sub_80BEBEC
+
+ thumb_func_start sub_80BED18
+sub_80BED18: @ 80BED18
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, _080BED38 @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _080BED2C
+ b _080BF102
+_080BED2C:
+ lsls r0, 2
+ ldr r1, _080BED3C @ =_080BED40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BED38: .4byte gUnknown_30030F0
+_080BED3C: .4byte _080BED40
+ .align 2, 0
+_080BED40:
+ .4byte _080BED8C
+ .4byte _080BEDBC
+ .4byte _080BEDD4
+ .4byte _080BEDDA
+ .4byte _080BEDE0
+ .4byte _080BEDE6
+ .4byte _080BEE40
+ .4byte _080BEE78
+ .4byte _080BEE88
+ .4byte _080BEEB8
+ .4byte _080BEEC6
+ .4byte _080BEF14
+ .4byte _080BEF28
+ .4byte _080BEFE8
+ .4byte _080BF000
+ .4byte _080BF01C
+ .4byte _080BF026
+ .4byte _080BF040
+ .4byte _080BF0A4
+_080BED8C:
+ movs r0, 0
+ bl sub_80006F4
+ bl sub_8087E64
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ ldr r0, _080BEDB0 @ =gUnknown_203AAC4
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _080BEDB4
+ movs r0, 0x22
+ bl sub_812B1F0
+ b _080BF0F4
+ .align 2, 0
+_080BEDB0: .4byte gUnknown_203AAC4
+_080BEDB4:
+ movs r0, 0x1E
+ bl sub_812B1F0
+ b _080BF0F4
+_080BEDBC:
+ add r1, sp, 0x8
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, _080BEDD0 @ =0x01000200
+ add r0, sp, 0x8
+ bl CpuSet
+ b _080BF0F4
+ .align 2, 0
+_080BEDD0: .4byte 0x01000200
+_080BEDD4:
+ bl sub_8070528
+ b _080BF0F4
+_080BEDDA:
+ bl sub_80773BC
+ b _080BF0F4
+_080BEDE0:
+ bl sub_8006B10
+ b _080BF0F4
+_080BEDE6:
+ bl sub_80088F0
+ bl sub_80F6808
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x12
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x14
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x16
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x1A
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x18
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x1C
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x1E
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x52
+ movs r1, 0
+ bl sub_8000A38
+ b _080BF0F4
+_080BEE40:
+ movs r0, 0
+ bl sub_8001618
+ ldr r1, _080BEE6C @ =gUnknown_83EE998
+ movs r0, 0
+ movs r2, 0x3
+ bl sub_8001658
+ ldr r4, _080BEE70 @ =gUnknown_20399C4
+ ldr r1, [r4]
+ adds r1, 0xFC
+ movs r0, 0x1
+ bl sub_8001FA0
+ ldr r1, [r4]
+ ldr r0, _080BEE74 @ =0x000010fc
+ adds r1, r0
+ movs r0, 0x2
+ bl sub_8001FA0
+ b _080BF0F4
+ .align 2, 0
+_080BEE6C: .4byte gUnknown_83EE998
+_080BEE70: .4byte gUnknown_20399C4
+_080BEE74: .4byte 0x000010fc
+_080BEE78:
+ ldr r0, _080BEE84 @ =gUnknown_83EE9A4
+ bl sub_8003B24
+ bl sub_8002C28
+ b _080BF0F4
+ .align 2, 0
+_080BEE84: .4byte gUnknown_83EE9A4
+_080BEE88:
+ ldr r2, _080BEEB0 @ =gUnknown_83EE9C8
+ ldr r0, _080BEEB4 @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xEA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ b _080BF0F4
+ .align 2, 0
+_080BEEB0: .4byte gUnknown_83EE9C8
+_080BEEB4: .4byte gUnknown_20399C4
+_080BEEB8:
+ bl sub_80F682C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BEEC4
+ b _080BF0F4
+_080BEEC4:
+ b _080BF102
+_080BEEC6:
+ movs r5, 0x1E
+ str r5, [sp]
+ movs r4, 0x14
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002454
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002454
+ ldr r2, _080BEF0C @ =gUnknown_83EE9C8
+ ldr r0, _080BEF10 @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xEA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002040
+ b _080BF0F4
+ .align 2, 0
+_080BEF0C: .4byte gUnknown_83EE9C8
+_080BEF10: .4byte gUnknown_20399C4
+_080BEF14:
+ movs r0, 0
+ bl sub_80020BC
+ movs r0, 0x1
+ bl sub_80020BC
+ movs r0, 0x2
+ bl sub_80020BC
+ b _080BF0F4
+_080BEF28:
+ movs r0, 0
+ bl sub_8150408
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r6, _080BEFD0 @ =gUnknown_20371F8
+ ldr r4, _080BEFD4 @ =gUnknown_83EE9C8
+ ldr r0, _080BEFD8 @ =gUnknown_20399C4
+ ldr r3, [r0]
+ adds r3, 0xEA
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x10]
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r0, r6, r2
+ strh r1, [r0]
+ ldr r5, _080BEFDC @ =gUnknown_20375F8
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x10]
+ adds r2, r5, r2
+ strh r0, [r2]
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x12]
+ movs r2, 0xFB
+ lsls r2, 1
+ adds r0, r6, r2
+ strh r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x12]
+ adds r2, r5, r2
+ strh r0, [r2]
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r1, _080BEFE0 @ =gUnknown_83EE9C0
+ ldr r0, _080BEFE4 @ =gUnknown_300500C
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r6, 0x14]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r6, 0x16]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x16]
+ b _080BF0F4
+ .align 2, 0
+_080BEFD0: .4byte gUnknown_20371F8
+_080BEFD4: .4byte gUnknown_83EE9C8
+_080BEFD8: .4byte gUnknown_20399C4
+_080BEFDC: .4byte gUnknown_20375F8
+_080BEFE0: .4byte gUnknown_83EE9C0
+_080BEFE4: .4byte gUnknown_300500C
+_080BEFE8:
+ ldr r0, _080BEFFC @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BEFF6
+ b _080BF0F4
+_080BEFF6:
+ bl sub_80BF13C
+ b _080BF0F4
+ .align 2, 0
+_080BEFFC: .4byte gUnknown_20399C4
+_080BF000:
+ ldr r0, _080BF018 @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BF0F4
+ bl sub_80BF224
+ bl sub_8002DE8
+ b _080BF0F4
+ .align 2, 0
+_080BF018: .4byte gUnknown_20399C4
+_080BF01C:
+ bl sub_8058244
+ cmp r0, 0x1
+ bne _080BF0F4
+ b _080BF102
+_080BF026:
+ ldr r0, _080BF038 @ =sub_80BF354
+ bl sub_80006F4
+ ldr r2, _080BF03C @ =gUnknown_2037AB8
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ b _080BF0F4
+ .align 2, 0
+_080BF038: .4byte sub_80BF354
+_080BF03C: .4byte gUnknown_2037AB8
+_080BF040:
+ ldr r5, _080BF064 @ =gUnknown_20399C4
+ ldr r0, [r5]
+ adds r0, 0xE4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_8096FD4
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ adds r0, 0xEB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080BF068
+ cmp r0, 0x2
+ beq _080BF080
+ b _080BF0F4
+ .align 2, 0
+_080BF064: .4byte gUnknown_20399C4
+_080BF068:
+ adds r0, r4, 0
+ bl sub_80970E0
+ ldr r1, _080BF07C @ =nullsub_8
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x60
+ b _080BF092
+ .align 2, 0
+_080BF07C: .4byte nullsub_8
+_080BF080:
+ adds r0, r4, 0
+ bl sub_80970E0
+ ldr r1, _080BF0A0 @ =nullsub_8
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x28
+_080BF092:
+ movs r3, 0x80
+ bl sub_8096ECC
+ ldr r1, [r5]
+ adds r1, 0xEC
+ strb r0, [r1]
+ b _080BF0F4
+ .align 2, 0
+_080BF0A0: .4byte nullsub_8
+_080BF0A4:
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl sub_8000A38
+ movs r0, 0
+ bl sub_80019BC
+ movs r0, 0x1
+ bl sub_80019BC
+ movs r0, 0x2
+ bl sub_80019BC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ ldr r2, _080BF0E8 @ =gUnknown_2037AB8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080BF0EC @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xE0
+ ldr r1, _080BF0F0 @ =sub_80BF394
+ str r1, [r0]
+ movs r0, 0x1
+ b _080BF104
+ .align 2, 0
+_080BF0E8: .4byte gUnknown_2037AB8
+_080BF0EC: .4byte gUnknown_20399C4
+_080BF0F0: .4byte sub_80BF394
+_080BF0F4:
+ ldr r1, _080BF10C @ =gUnknown_30030F0
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080BF102:
+ movs r0, 0
+_080BF104:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BF10C: .4byte gUnknown_30030F0
+ thumb_func_end sub_80BED18
+
+ thumb_func_start sub_80BF110
+sub_80BF110: @ 80BF110
+ push {lr}
+_080BF112:
+ bl sub_80BED18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BF12C
+ ldr r0, _080BF128 @ =sub_80BF368
+ bl sub_8000544
+ b _080BF138
+ .align 2, 0
+_080BF128: .4byte sub_80BF368
+_080BF12C:
+ bl sub_80BF708
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BF112
+_080BF138:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF110
+
+ thumb_func_start sub_80BF13C
+sub_80BF13C: @ 80BF13C
+ push {r4-r7,lr}
+ movs r6, 0
+ movs r5, 0
+ ldr r2, _080BF1E0 @ =gUnknown_20399C4
+ ldr r0, [r2]
+ adds r0, 0xF8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080BF19C
+ adds r7, r2, 0
+_080BF152:
+ movs r0, 0x1A
+ muls r0, r5
+ ldr r2, [r7]
+ adds r0, r2, r0
+ adds r1, r2, 0
+ adds r1, 0xE4
+ lsls r3, r6, 1
+ ldr r1, [r1]
+ adds r1, r3
+ adds r2, 0xF8
+ ldr r2, [r2]
+ ldr r2, [r2, 0x8]
+ lsls r4, r5, 2
+ adds r2, r4, r2
+ ldr r2, [r2]
+ lsls r2, 30
+ lsrs r2, 30
+ movs r3, 0x1
+ bl sub_80BD89C
+ ldr r0, [r7]
+ adds r0, 0xF8
+ ldr r1, [r0]
+ ldr r0, [r1, 0x8]
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r0, 30
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r1, [r1]
+ cmp r5, r1
+ bcc _080BF152
+_080BF19C:
+ ldr r4, _080BF1E0 @ =gUnknown_20399C4
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xEE
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF1E8
+ adds r0, r1, 0
+ adds r0, 0xD0
+ adds r1, 0xE4
+ ldr r1, [r1]
+ adds r1, 0x12
+ bl sub_8008D84
+ ldr r1, _080BF1E4 @ =gUnknown_841E234
+ bl sub_8008D84
+ ldr r0, [r4]
+ adds r0, 0xD0
+ bl sub_8008E08
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xF8
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 13
+ subs r0, 0x60
+ ldrb r1, [r1, 0x2]
+ subs r1, r0
+ adds r2, 0xE9
+ strb r1, [r2]
+ b _080BF21E
+ .align 2, 0
+_080BF1E0: .4byte gUnknown_20399C4
+_080BF1E4: .4byte gUnknown_841E234
+_080BF1E8:
+ adds r0, r1, 0
+ adds r0, 0xD0
+ adds r1, 0xE4
+ ldr r1, [r1]
+ adds r1, 0x12
+ bl sub_8008D84
+ ldr r0, [r4]
+ adds r0, 0xD0
+ bl sub_8008E08
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _080BF210
+ ldr r0, [r4]
+ adds r0, 0xD0
+ movs r1, 0x1
+ bl sub_80093BC
+_080BF210:
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xF8
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x2]
+ adds r0, 0xE9
+ strb r1, [r0]
+_080BF21E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF13C
+
+ thumb_func_start sub_80BF224
+sub_80BF224: @ 80BF224
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ movs r7, 0
+ movs r0, 0
+ bl sub_8003FA0
+ movs r0, 0x1
+ bl sub_8003FA0
+ movs r0, 0
+ movs r1, 0
+ bl sub_800445C
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_800445C
+ movs r6, 0
+ ldr r0, _080BF348 @ =gUnknown_20399C4
+ mov r9, r0
+ ldr r0, [r0]
+ adds r0, 0xF8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080BF2CE
+ mov r8, r9
+_080BF260:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0x1A
+ muls r0, r6
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080BF2BA
+ cmp r0, 0
+ beq _080BF2BA
+ adds r0, r1, 0
+ adds r0, 0xF8
+ ldr r1, [r0]
+ ldr r0, [r1, 0x8]
+ lsls r4, r6, 2
+ adds r0, r4, r0
+ ldr r2, [r0]
+ lsls r2, 24
+ lsrs r2, 26
+ ldrb r0, [r1, 0x4]
+ adds r2, r0
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r1, 0x3]
+ adds r3, r7, r3
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080BF34C @ =gUnknown_83EE9BC
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ bl sub_812E51C
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xF8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ adds r4, r0
+ ldrb r0, [r4, 0x1]
+ adds r0, r7, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080BF2BA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xF8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080BF260
+_080BF2CE:
+ ldr r4, _080BF350 @ =gUnknown_841E234
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8005ED4
+ mov r9, r0
+ ldr r5, _080BF348 @ =gUnknown_20399C4
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0xE9
+ ldrb r2, [r1]
+ adds r0, 0xF8
+ ldr r0, [r0]
+ ldrb r3, [r0, 0x1]
+ ldr r0, _080BF34C @ =gUnknown_83EE9BC
+ mov r8, r0
+ str r0, [sp]
+ movs r6, 0
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_812E51C
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0xE9
+ ldrb r2, [r0]
+ add r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, 0xF
+ ldr r0, [r0]
+ ldrb r3, [r0, 0x1]
+ mov r0, r8
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ adds r0, r1, 0
+ adds r0, 0xD0
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_812E51C
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8003F20
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_8003F20
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF348: .4byte gUnknown_20399C4
+_080BF34C: .4byte gUnknown_83EE9BC
+_080BF350: .4byte gUnknown_841E234
+ thumb_func_end sub_80BF224
+
+ thumb_func_start sub_80BF354
+sub_80BF354: @ 80BF354
+ push {lr}
+ bl sub_8007320
+ bl sub_8007610
+ bl sub_8070474
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF354
+
+ thumb_func_start sub_80BF368
+sub_80BF368: @ 80BF368
+ push {r4,lr}
+ ldr r4, _080BF390 @ =gUnknown_20399C4
+ ldr r0, [r4]
+ adds r0, 0xEB
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BF37E
+ bl sub_8006B5C
+ bl sub_8006BA8
+_080BF37E:
+ ldr r0, [r4]
+ adds r0, 0xE0
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF390: .4byte gUnknown_20399C4
+ thumb_func_end sub_80BF368
+
+ thumb_func_start sub_80BF394
+sub_80BF394: @ 80BF394
+ push {lr}
+ bl sub_80704D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BF3AA
+ ldr r0, _080BF3B0 @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xE0
+ ldr r1, _080BF3B4 @ =sub_80BF3B8
+ str r1, [r0]
+_080BF3AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF3B0: .4byte gUnknown_20399C4
+_080BF3B4: .4byte sub_80BF3B8
+ thumb_func_end sub_80BF394
+
+ thumb_func_start sub_80BF3B8
+sub_80BF3B8: @ 80BF3B8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080BF3E8 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080BF3E2
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ ldr r0, _080BF3EC @ =gUnknown_20399C4
+ ldr r0, [r0]
+ adds r0, 0xE0
+ ldr r1, _080BF3F0 @ =sub_80BF3F4
+ str r1, [r0]
+_080BF3E2:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF3E8: .4byte gUnknown_30030F0
+_080BF3EC: .4byte gUnknown_20399C4
+_080BF3F0: .4byte sub_80BF3F4
+ thumb_func_end sub_80BF3B8
+
+ thumb_func_start sub_80BF3F4
+sub_80BF3F4: @ 80BF3F4
+ push {r4,lr}
+ bl sub_80704D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BF460
+ ldr r4, _080BF468 @ =gUnknown_20399C4
+ ldr r0, [r4]
+ adds r0, 0xDC
+ ldr r0, [r0]
+ bl sub_8000544
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xEB
+ ldrb r1, [r1]
+ cmp r1, 0x2
+ bgt _080BF442
+ cmp r1, 0x1
+ blt _080BF442
+ adds r0, 0xE4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_8096FD4
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8097168
+ ldr r0, [r4]
+ adds r0, 0xEC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF46C @ =gUnknown_202063C
+ adds r0, r1
+ bl sub_8097070
+_080BF442:
+ ldr r4, _080BF468 @ =gUnknown_20399C4
+ ldr r0, [r4]
+ ldr r2, _080BF470 @ =0x000020fc
+ movs r1, 0
+ bl memset
+ bl sub_8070528
+ bl sub_8003ECC
+ ldr r0, [r4]
+ bl sub_8002BC4
+ movs r0, 0
+ str r0, [r4]
+_080BF460:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF468: .4byte gUnknown_20399C4
+_080BF46C: .4byte gUnknown_202063C
+_080BF470: .4byte 0x000020fc
+ thumb_func_end sub_80BF3F4
+
+ .align 2, 0 @ Don't pad with nop.