pokeemerald/asm/link.s
2017-11-10 22:08:17 -05:00

3031 lines
46 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start ResetBlockReceivedFlags
ResetBlockReceivedFlags: @ 800A5B4
push {r4,lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x1
bne _0800A5D4
movs r4, 0
_0800A5C0:
lsls r0, r4, 24
lsrs r0, 24
bl sub_800F728
adds r4, 0x1
cmp r4, 0x4
ble _0800A5C0
b _0800A5E2
.pool
_0800A5D4:
ldr r1, =gUnknown_0300307C
movs r2, 0
adds r0, r1, 0x3
_0800A5DA:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _0800A5DA
_0800A5E2:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end ResetBlockReceivedFlags
thumb_func_start ResetBlockReceivedFlag
ResetBlockReceivedFlag: @ 800A5EC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x1
bne _0800A608
adds r0, r1, 0
bl sub_800F728
b _0800A616
.pool
_0800A608:
ldr r0, =gUnknown_0300307C
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
beq _0800A616
movs r0, 0
strb r0, [r1]
_0800A616:
pop {r0}
bx r0
.pool
thumb_func_end ResetBlockReceivedFlag
thumb_func_start sub_800A620
sub_800A620: @ 800A620
push {lr}
ldr r0, =gUnknown_030030E0
ldr r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0800A63C
movs r0, 0x1C
ands r1, r0
cmp r1, 0x4
bls _0800A63C
ldr r1, =gUnknown_03003144
movs r0, 0x1
strb r0, [r1]
_0800A63C:
pop {r0}
bx r0
.pool
thumb_func_end sub_800A620
thumb_func_start sub_800A648
sub_800A648: @ 800A648
push {r4,lr}
adds r4, r0, 0
lsls r1, 16
movs r3, 0
movs r2, 0
lsrs r1, 17
cmp r3, r1
bcs _0800A66E
_0800A658:
lsls r0, r2, 1
adds r0, r4
ldrh r0, [r0]
adds r0, r3, r0
lsls r0, 16
lsrs r3, r0, 16
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, r1
bcc _0800A658
_0800A66E:
adds r0, r3, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_800A648
thumb_func_start sub_800A678
sub_800A678: @ 800A678
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
ldr r4, =gUnknown_03003130
ldr r3, [r4]
lsls r3, 11
movs r5, 0xC0
lsls r5, 19
adds r3, r5
lsrs r2, 19
adds r2, r1
lsls r2, 1
adds r2, r3
ldr r3, [r4, 0x4]
lsls r3, 12
ldr r1, [r4, 0x8]
adds r1, 0x1
adds r0, r1
orrs r3, r0
strh r3, [r2]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800A678
thumb_func_start sub_800A6B0
sub_800A6B0: @ 800A6B0
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
ldr r4, =gUnknown_03003130
ldr r3, [r4]
lsls r3, 11
movs r5, 0xC0
lsls r5, 19
adds r3, r5
lsrs r2, 19
adds r2, r1
lsls r2, 1
adds r2, r3
ldr r3, [r4, 0x4]
lsls r3, 12
ldr r1, [r4, 0x8]
adds r1, r0
orrs r3, r1
strh r3, [r2]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800A6B0
thumb_func_start sub_800A6E8
sub_800A6E8: @ 800A6E8
push {r4-r7,lr}
sub sp, 0x10
adds r5, r0, 0
lsls r1, 24
lsrs r6, r1, 24
lsls r2, 24
lsrs r7, r2, 24
lsls r3, 24
lsrs r3, 24
movs r4, 0
cmp r4, r3
bge _0800A714
movs r2, 0xF
_0800A702:
mov r0, sp
adds r1, r0, r4
adds r0, r5, 0
ands r0, r2
strb r0, [r1]
lsrs r5, 4
adds r4, 0x1
cmp r4, r3
blt _0800A702
_0800A714:
subs r4, r3, 0x1
cmp r4, 0
blt _0800A734
_0800A71A:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
adds r1, r6, 0
adds r2, r7, 0
bl sub_800A678
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
subs r4, 0x1
cmp r4, 0
bge _0800A71A
_0800A734:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_800A6E8
thumb_func_start sub_800A73C
sub_800A73C: @ 800A73C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
adds r6, r0, 0
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r2, 24
mov r9, r2
lsls r3, 24
lsrs r3, 24
mov r8, r3
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x10]
cmp r6, 0
bge _0800A768
str r7, [sp, 0x10]
negs r6, r6
_0800A768:
movs r5, 0
movs r1, 0x1
negs r1, r1
add r1, r8
mov r10, r1
cmp r5, r8
bge _0800A794
_0800A776:
mov r0, sp
adds r4, r0, r5
adds r0, r6, 0
movs r1, 0xA
bl __modsi3
strb r0, [r4]
adds r0, r6, 0
movs r1, 0xA
bl __divsi3
adds r6, r0, 0
adds r5, 0x1
cmp r5, r8
blt _0800A776
_0800A794:
mov r5, r10
cmp r5, 0
blt _0800A7B4
_0800A79A:
mov r1, sp
adds r0, r1, r5
ldrb r0, [r0]
adds r1, r7, 0
mov r2, r9
bl sub_800A678
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
subs r5, 0x1
cmp r5, 0
bge _0800A79A
_0800A7B4:
movs r0, 0x1
negs r0, r0
ldr r1, [sp, 0x10]
cmp r1, r0
beq _0800A7CA
lsls r1, 24
lsrs r1, 24
movs r0, 0xA
mov r2, r9
bl sub_800A678
_0800A7CA:
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_800A73C
thumb_func_start sub_800A7DC
sub_800A7DC: @ 800A7DC
push {r4-r7,lr}
adds r3, r0, 0
lsls r1, 24
lsrs r7, r1, 24
lsls r2, 24
lsrs r2, 24
movs r6, 0
ldrb r0, [r3]
cmp r0, 0
beq _0800A81C
adds r4, r3, 0
lsls r5, r2, 24
_0800A7F4:
ldrb r0, [r4]
cmp r0, 0xA
bne _0800A804
movs r0, 0x80
lsls r0, 17
adds r5, r0
movs r6, 0
b _0800A814
_0800A804:
ldrb r0, [r4]
adds r1, r7, r6
lsls r1, 24
lsrs r1, 24
lsrs r2, r5, 24
bl sub_800A6B0
adds r6, 0x1
_0800A814:
adds r4, 0x1
ldrb r0, [r4]
cmp r0, 0
bne _0800A7F4
_0800A81C:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_800A7DC
thumb_func_start sub_800A824
sub_800A824: @ 800A824
push {lr}
ldr r0, =gUnknown_030030E0
ldr r0, [r0]
movs r1, 0x20
ands r0, r1
cmp r0, 0
_0800A830:
beq _0800A838
ldr r0, =0x00002222
bl sub_8009D90
_0800A838:
ldr r1, =gUnknown_03003140
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.pool
thumb_func_end sub_800A824
thumb_func_start task00_link_test
task00_link_test: @ 800A850
push {r4-r6,lr}
sub sp, 0x20
ldr r1, =gASCIITestPrint
mov r0, sp
bl strcpy
mov r0, sp
movs r1, 0x5
movs r2, 0x2
bl sub_800A7DC
ldr r0, =gUnknown_03003144
ldrb r0, [r0]
movs r1, 0x2
movs r2, 0x1
movs r3, 0x2
bl sub_800A6E8
ldr r4, =gUnknown_030030E0
ldr r0, [r4]
movs r1, 0xF
movs r2, 0x1
movs r3, 0x8
bl sub_800A6E8
ldr r0, =gUnknown_03003170
ldrb r0, [r0, 0x1]
movs r1, 0x2
movs r2, 0xA
movs r3, 0x2
bl sub_800A6E8
ldr r0, [r4]
movs r1, 0x1C
ands r0, r1
lsrs r0, 2
movs r1, 0xF
movs r2, 0xA
movs r3, 0x2
bl sub_800A6E8
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
movs r1, 0xF
movs r2, 0xC
movs r3, 0x2
bl sub_800A6E8
ldr r0, =gUnknown_03003160
ldrb r0, [r0]
movs r1, 0x19
movs r2, 0x1
movs r3, 0x2
bl sub_800A6E8
ldr r0, =gUnknown_03004130
ldrb r0, [r0]
movs r1, 0x19
movs r2, 0x2
movs r3, 0x2
bl sub_800A6E8
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
movs r1, 0xF
movs r2, 0x5
movs r3, 0x2
bl sub_800A6E8
ldr r0, =gUnknown_0300302C
ldr r0, [r0]
movs r1, 0x2
movs r2, 0xC
movs r3, 0x8
bl sub_800A6E8
ldr r0, =gUnknown_03003070
ldr r0, [r0]
movs r1, 0x2
movs r2, 0xD
movs r3, 0x8
bl sub_800A6E8
bl sub_800B2E8
lsls r0, 24
lsrs r0, 24
movs r1, 0x19
movs r2, 0x5
movs r3, 0x1
bl sub_800A6E8
bl sub_800B2F8
lsls r0, 24
lsrs r0, 24
movs r1, 0x19
movs r2, 0x6
movs r3, 0x1
bl sub_800A6E8
bl sub_800B320
lsls r0, 24
lsrs r0, 24
movs r1, 0x19
movs r2, 0x7
movs r3, 0x1
bl sub_800A6E8
bl sub_800B33C
lsls r0, 24
lsrs r0, 24
movs r1, 0x19
movs r2, 0x8
movs r3, 0x1
bl sub_800A6E8
movs r6, 0
movs r5, 0x80
lsls r5, 19
ldr r4, =gUnknown_03003148
_0800A94E:
ldrh r0, [r4]
lsrs r2, r5, 24
movs r1, 0xA
movs r3, 0x4
bl sub_800A6E8
movs r0, 0x80
lsls r0, 17
adds r5, r0
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0800A94E
add sp, 0x20
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end task00_link_test
thumb_func_start sub_800A994
sub_800A994: @ 800A994
ldr r2, =gUnknown_0300302C
str r0, [r2]
ldr r0, =gUnknown_03003070
str r1, [r0]
bx lr
.pool
thumb_func_end sub_800A994
thumb_func_start sub_800A9A8
sub_800A9A8: @ 800A9A8
push {r4,lr}
movs r1, 0
movs r2, 0
ldr r0, =gUnknown_03003100
ldrb r0, [r0]
cmp r1, r0
bge _0800A9CA
movs r4, 0x1
adds r3, r0, 0
_0800A9BA:
adds r0, r4, 0
lsls r0, r2
orrs r1, r0
lsls r0, r1, 24
lsrs r1, r0, 24
adds r2, 0x1
cmp r2, r3
blt _0800A9BA
_0800A9CA:
adds r0, r1, 0
pop {r4}
pop {r1}
bx r1
.pool
thumb_func_end sub_800A9A8
thumb_func_start sub_800A9D8
sub_800A9D8: @ 800A9D8
push {r4-r6,lr}
movs r4, 0
movs r5, 0
movs r6, 0x1
b _0800A9EE
_0800A9E2:
adds r0, r6, 0
lsls r0, r5
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
adds r5, 0x1
_0800A9EE:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r5, r0
blt _0800A9E2
adds r0, r4, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_800A9D8
thumb_func_start sub_800AA04
sub_800AA04: @ 800AA04
push {r4-r7,lr}
ldr r1, =gUnknown_03003100
strb r0, [r1]
bl GetMultiplayerId
ldr r1, =gUnknown_03003120
strb r0, [r1]
ldr r4, =gLinkPlayers
ldr r3, =gUnknown_02022A74
movs r2, 0x4
_0800AA18:
adds r0, r3, 0
adds r1, r4, 0
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldr r1, [r1]
str r1, [r0]
adds r4, 0x1C
adds r3, 0x1C
subs r2, 0x1
cmp r2, 0
bge _0800AA18
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800AA04
thumb_func_start sub_800AA48
sub_800AA48: @ 800AA48
ldr r0, =gUnknown_03003100
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_800AA48
thumb_func_start sub_800AA54
sub_800AA54: @ 800AA54
ldr r0, =gUnknown_03003120
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_800AA54
thumb_func_start sub_800AA60
sub_800AA60: @ 800AA60
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r3, 0
ldr r0, =gUnknown_03003100
ldrb r1, [r0]
mov r9, r0
cmp r3, r1
bge _0800AAB4
ldr r0, =gLinkPlayers
mov r12, r0
ldr r0, =gUnknown_02022A74
ldr r2, =0x00002288
mov r8, r2
ldr r7, =gUnknown_020229C6
mov r6, r12
adds r6, 0x14
adds r5, r0, 0x4
movs r4, 0
adds r2, r1, 0
_0800AA8A:
mov r0, r12
adds r0, 0x4
adds r0, r4, r0
ldr r1, [r0]
ldr r0, [r5]
cmp r1, r0
bne _0800AAA8
ldrh r0, [r7]
cmp r0, r8
bne _0800AAA6
adds r1, r0, 0
ldr r0, [r6]
cmp r1, r0
bne _0800AAA8
_0800AAA6:
adds r3, 0x1
_0800AAA8:
adds r6, 0x1C
adds r5, 0x1C
adds r4, 0x1C
subs r2, 0x1
cmp r2, 0
bne _0800AA8A
_0800AAB4:
mov r0, r9
ldrb r0, [r0]
cmp r3, r0
bne _0800AAE4
bl sub_800ABAC
lsls r0, 24
lsrs r0, 24
mov r1, r9
ldrb r1, [r1]
cmp r0, r1
bne _0800AAE4
movs r0, 0x1
b _0800AAE6
.pool
_0800AAE4:
movs r0, 0
_0800AAE6:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_800AA60
thumb_func_start sub_800AAF4
sub_800AAF4: @ 800AAF4
push {r4,r5,lr}
ldr r5, =gUnknown_02022A74
movs r4, 0x3
_0800AAFA:
adds r0, r5, 0
movs r1, 0
movs r2, 0x1C
bl CpuSet
adds r5, 0x1C
subs r4, 0x1
cmp r4, 0
bge _0800AAFA
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800AAF4
thumb_func_start sub_800AB18
sub_800AB18: @ 800AB18
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r4, 0
ldr r0, =gUnknown_03003100
ldrb r0, [r0]
cmp r4, r0
bcs _0800AB78
ldr r6, =gUnknown_02022A74
ldr r5, =gLinkPlayers
movs r0, 0x8
adds r0, r6
mov r8, r0
adds r7, r5, 0
adds r7, 0x8
_0800AB36:
lsls r0, r4, 3
subs r0, r4
lsls r2, r0, 2
adds r1, r6, 0x4
adds r1, r2, r1
adds r0, r5, 0x4
adds r0, r2, r0
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
bne _0800AB5A
mov r1, r8
adds r0, r2, r1
adds r1, r2, r7
bl StringCompare
cmp r0, 0
beq _0800AB6A
_0800AB5A:
ldr r1, =gUnknown_0300306C
movs r0, 0x1
strb r0, [r1]
bl sub_80097E8
ldr r0, =c2_800ACD4
bl SetMainCallback2
_0800AB6A:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldr r0, =gUnknown_03003100
ldrb r0, [r0]
cmp r4, r0
bcc _0800AB36
_0800AB78:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800AB18
thumb_func_start sub_800AB98
sub_800AB98: @ 800AB98
ldr r0, =gUnknown_03003100
movs r1, 0
strb r1, [r0]
ldr r0, =gUnknown_03003120
strb r1, [r0]
bx lr
.pool
thumb_func_end sub_800AB98
thumb_func_start sub_800ABAC
sub_800ABAC: @ 800ABAC
ldr r0, =gUnknown_030030E0
ldr r0, [r0]
movs r1, 0x1C
ands r0, r1
lsrs r0, 2
bx lr
.pool
thumb_func_end sub_800ABAC
thumb_func_start sub_800ABBC
sub_800ABBC: @ 800ABBC
push {lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0
bne _0800ABDC
ldr r0, =gUnknown_030030E0
ldr r0, [r0]
lsrs r0, 5
movs r1, 0x1
ands r0, r1
b _0800ABE4
.pool
_0800ABDC:
bl sub_8011AB0
lsls r0, 24
lsrs r0, 24
_0800ABE4:
pop {r1}
bx r1
thumb_func_end sub_800ABBC
thumb_func_start sub_800ABE8
sub_800ABE8: @ 800ABE8
ldr r0, =gUnknown_03000D58
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_800ABE8
thumb_func_start sub_800ABF4
sub_800ABF4: @ 800ABF4
push {lr}
lsls r0, 16
lsrs r3, r0, 16
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x1
bne _0800AC0C
bl task_add_05_task_del_08FA224_when_no_RfuFunc
b _0800AC20
.pool
_0800AC0C:
ldr r2, =gUnknown_03003140
ldr r1, [r2]
cmp r1, 0
bne _0800AC20
ldr r0, =sub_800AC80
str r0, [r2]
ldr r0, =gUnknown_030030E4
strb r1, [r0]
ldr r0, =gUnknown_030030F4
strh r3, [r0]
_0800AC20:
pop {r0}
bx r0
.pool
thumb_func_end sub_800ABF4
thumb_func_start sub_800AC34
sub_800AC34: @ 800AC34
push {lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x1
bne _0800AC48
bl task_add_05_task_del_08FA224_when_no_RfuFunc
b _0800AC70
.pool
_0800AC48:
ldr r2, =gUnknown_03003140
ldr r1, [r2]
cmp r1, 0
beq _0800AC64
ldr r1, =gUnknown_02022B08
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _0800AC70
.pool
_0800AC64:
ldr r0, =sub_800AC80
str r0, [r2]
ldr r0, =gUnknown_030030E4
strb r1, [r0]
ldr r0, =gUnknown_030030F4
strh r1, [r0]
_0800AC70:
pop {r0}
bx r0
.pool
thumb_func_end sub_800AC34
thumb_func_start sub_800AC80
sub_800AC80: @ 800AC80
push {lr}
ldr r0, =gUnknown_03004130
ldrb r0, [r0]
cmp r0, 0
bne _0800AC96
ldr r0, =0x00005fff
bl sub_8009D90
ldr r1, =gUnknown_03003140
ldr r0, =sub_800ACAC
str r0, [r1]
_0800AC96:
pop {r0}
bx r0
.pool
thumb_func_end sub_800AC80
thumb_func_start sub_800ACAC
sub_800ACAC: @ 800ACAC
push {r4,lr}
bl GetLinkPlayerCount
lsls r0, 24
lsrs r2, r0, 24
movs r3, 0
movs r1, 0
cmp r3, r2
bge _0800ACD0
ldr r4, =gUnknown_030030F0
_0800ACC0:
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0
beq _0800ACCA
adds r3, 0x1
_0800ACCA:
adds r1, 0x1
cmp r1, r2
blt _0800ACC0
_0800ACD0:
cmp r3, r2
bne _0800ACF4
ldr r2, =gBattleTypeFlags
ldr r0, [r2]
movs r1, 0x21
negs r1, r1
ands r0, r1
str r0, [r2]
ldr r0, =gUnknown_03002748
movs r4, 0x1
strb r4, [r0]
bl sub_80097E8
ldr r1, =gUnknown_03003140
movs r0, 0
str r0, [r1]
ldr r0, =gUnknown_030030E4
strb r4, [r0]
_0800ACF4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800ACAC
thumb_func_start sub_800AD10
sub_800AD10: @ 800AD10
push {lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x1
bne _0800AD24
bl task_add_05_task_del_08FA224_when_no_RfuFunc
b _0800AD4C
.pool
_0800AD24:
ldr r2, =gUnknown_03003140
ldr r1, [r2]
cmp r1, 0
beq _0800AD40
ldr r1, =gUnknown_02022B08
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _0800AD4C
.pool
_0800AD40:
ldr r0, =sub_800AD5C
str r0, [r2]
ldr r0, =gUnknown_030030E4
strb r1, [r0]
ldr r0, =gUnknown_030030F4
strh r1, [r0]
_0800AD4C:
pop {r0}
bx r0
.pool
thumb_func_end sub_800AD10
thumb_func_start sub_800AD5C
sub_800AD5C: @ 800AD5C
push {lr}
ldr r0, =gUnknown_03004130
ldrb r0, [r0]
cmp r0, 0
bne _0800AD72
ldr r0, =0x00005fff
bl sub_8009D90
ldr r1, =gUnknown_03003140
ldr r0, =sub_800AD88
str r0, [r1]
_0800AD72:
pop {r0}
bx r0
.pool
thumb_func_end sub_800AD5C
thumb_func_start sub_800AD88
sub_800AD88: @ 800AD88
push {r4,r5,lr}
bl GetLinkPlayerCount
lsls r0, 24
lsrs r3, r0, 24
movs r1, 0
movs r2, 0
cmp r1, r3
bge _0800ADB6
ldr r5, =gUnknown_030030F0
ldr r4, =gLinkPlayers
_0800AD9E:
ldrh r0, [r4, 0x1A]
cmp r0, 0x1
beq _0800ADAC
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, 0
beq _0800ADAE
_0800ADAC:
adds r1, 0x1
_0800ADAE:
adds r4, 0x1C
adds r2, 0x1
cmp r2, r3
blt _0800AD9E
_0800ADB6:
cmp r1, r3
bne _0800ADDA
ldr r2, =gBattleTypeFlags
ldr r0, [r2]
movs r1, 0x21
negs r1, r1
ands r0, r1
str r0, [r2]
ldr r0, =gUnknown_03002748
movs r4, 0x1
strb r4, [r0]
bl sub_80097E8
ldr r1, =gUnknown_03003140
movs r0, 0
str r0, [r1]
ldr r0, =gUnknown_030030E4
strb r4, [r0]
_0800ADDA:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800AD88
thumb_func_start sub_800ADF8
sub_800ADF8: @ 800ADF8
push {lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x1
bne _0800AE0C
bl sub_8010434
b _0800AE1E
.pool
_0800AE0C:
ldr r1, =gUnknown_03003140
ldr r0, [r1]
cmp r0, 0
bne _0800AE18
ldr r0, =sub_800AE30
str r0, [r1]
_0800AE18:
ldr r1, =gUnknown_030030E4
movs r0, 0
strb r0, [r1]
_0800AE1E:
pop {r0}
bx r0
.pool
thumb_func_end sub_800ADF8
thumb_func_start sub_800AE30
sub_800AE30: @ 800AE30
push {lr}
ldr r0, =gUnknown_03004130
ldrb r0, [r0]
cmp r0, 0
bne _0800AE46
ldr r0, =0x00002ffe
bl sub_8009D90
ldr r1, =gUnknown_03003140
ldr r0, =sub_800AE5C
str r0, [r1]
_0800AE46:
pop {r0}
bx r0
.pool
thumb_func_end sub_800AE30
thumb_func_start sub_800AE5C
sub_800AE5C: @ 800AE5C
push {r4,lr}
bl GetLinkPlayerCount
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
cmp r1, r2
bcs _0800AE86
ldr r3, =gUnknown_030030EC
ldrb r0, [r3]
cmp r0, 0
beq _0800AE86
_0800AE74:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r2
bcs _0800AE86
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
bne _0800AE74
_0800AE86:
cmp r1, r2
bne _0800AEA4
movs r1, 0
ldr r4, =gUnknown_03003140
ldr r3, =gUnknown_030030EC
movs r2, 0
_0800AE92:
adds r0, r1, r3
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x3
bls _0800AE92
movs r0, 0
str r0, [r4]
_0800AEA4:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800AE5C
thumb_func_start sub_800AEB4
sub_800AEB4: @ 800AEB4
push {lr}
ldr r0, =gUnknown_020229C4
ldrb r0, [r0]
cmp r0, 0
beq _0800AEF4
ldr r0, =gUnknown_030030E0
ldr r2, [r0]
movs r0, 0xFE
lsls r0, 11
ands r0, r2
cmp r0, 0
beq _0800AEF4
ldr r0, =gUnknown_030030F8
ldrb r0, [r0]
cmp r0, 0
bne _0800AEEA
ldr r1, =gUnknown_02022B00
str r2, [r1]
ldr r0, =gUnknown_03004130
ldrb r0, [r0]
strb r0, [r1, 0x4]
ldr r0, =gUnknown_03003160
ldrb r0, [r0]
strb r0, [r1, 0x5]
ldr r0, =c2_800ACD4
bl SetMainCallback2
_0800AEEA:
ldr r1, =gUnknown_0300306C
movs r0, 0x1
strb r0, [r1]
bl sub_80097E8
_0800AEF4:
pop {r0}
bx r0
.pool
thumb_func_end sub_800AEB4
thumb_func_start sub_800AF18
sub_800AF18: @ 800AF18
push {r4,lr}
ldr r4, =gUnknown_02022B00
str r0, [r4]
strb r1, [r4, 0x5]
strb r2, [r4, 0x4]
strb r3, [r4, 0x6]
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800AF18
thumb_func_start c2_800ACD4
c2_800ACD4: @ 800AF30
push {r4,lr}
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r0, =gMPlay_SE1
bl m4aMPlayStop
ldr r0, =gMPlay_SE2
bl m4aMPlayStop
ldr r0, =gMPlay_SE3
bl m4aMPlayStop
ldr r0, =0x02000000
movs r1, 0xE0
lsls r1, 9
bl InitHeap
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetPaletteFadeControl
movs r0, 0
movs r1, 0
movs r2, 0x2
bl FillPalette
bl ResetTasks
bl remove_some_task
ldr r1, =gSerialIsRFU
ldrb r0, [r1]
cmp r0, 0
beq _0800AF8C
ldr r0, =gUnknown_02022B00
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _0800AF88
movs r0, 0x3
strb r0, [r1]
_0800AF88:
bl sub_800E604
_0800AF8C:
ldr r0, =sub_80096BC
bl SetVBlankCallback
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_082ED1FC
movs r0, 0
movs r2, 0x2
bl InitBgsFromTemplates
ldr r4, =gUnknown_02022B0C
movs r0, 0x80
lsls r0, 4
bl Alloc
adds r1, r0, 0
str r1, [r4]
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r0, =gUnknown_082ED204
bl InitWindows
lsls r0, 16
cmp r0, 0
beq _0800B03C
bl DeactivateAllTextPrinters
bl reset_temp_tile_data_buffers
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
movs r0, 0x14
movs r1, 0
bl SetGpuReg
movs r0, 0x16
movs r1, 0
bl SetGpuReg
movs r1, 0xE0
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
ldr r0, =gUnknown_0860F074
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
ldr r1, =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
ldr r0, =sub_8009404
movs r1, 0
bl CreateTask
bl StopMapMusic
ldr r1, =gMain
movs r0, 0
str r0, [r1]
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
ldr r0, =sub_800B1A0
bl SetMainCallback2
_0800B03C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end c2_800ACD4
thumb_func_start sub_800B080
sub_800B080: @ 800B080
push {r4,r5,lr}
sub sp, 0xC
ldr r1, =g2BlankTilesGfx
movs r0, 0
movs r2, 0x20
movs r3, 0
bl LoadBgTiles
ldr r1, =gWirelessLinkDisplayGfx
movs r5, 0
str r5, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl copy_decompressed_tile_data_to_vram_autofree
ldr r1, =gWirelessLinkDisplayTilemap
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, =gWirelessLinkDisplayPal
movs r1, 0
movs r2, 0x20
bl LoadPalette
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
ldr r4, =gUnknown_082ED224
str r4, [sp]
str r5, [sp, 0x4]
ldr r0, =gText_CommErrorEllipsis
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x3
movs r2, 0x2
movs r3, 0x6
bl box_print
str r4, [sp]
str r5, [sp, 0x4]
ldr r0, =gText_MoveCloserToLinkPartner
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x3
movs r2, 0x2
movs r3, 0x1
bl box_print
movs r0, 0
bl PutWindowTilemap
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0
movs r1, 0
bl CopyWindowToVram
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B080
thumb_func_start sub_800B138
sub_800B138: @ 800B138
push {lr}
sub sp, 0xC
ldr r1, =g2BlankTilesGfx
movs r0, 0
movs r2, 0x20
movs r3, 0
bl LoadBgTiles
movs r0, 0x1
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, =gUnknown_082ED224
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r0, =gText_CommErrorCheckConnections
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x3
movs r2, 0x2
movs r3, 0
bl box_print
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0
bl CopyWindowToVram
movs r0, 0x2
movs r1, 0x3
bl CopyWindowToVram
add sp, 0xC
pop {r0}
bx r0
.pool
thumb_func_end sub_800B138
thumb_func_start sub_800B1A0
sub_800B1A0: @ 800B1A0
push {r4,lr}
sub sp, 0xC
ldr r0, =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1E
beq _0800B20C
cmp r0, 0x1E
bgt _0800B1C4
cmp r0, 0
beq _0800B1D8
cmp r0, 0x2
beq _0800B1F2
b _0800B260
.pool
_0800B1C4:
cmp r0, 0x5A
beq _0800B20C
cmp r0, 0x5A
bgt _0800B1D2
cmp r0, 0x3C
beq _0800B20C
b _0800B260
_0800B1D2:
cmp r0, 0x82
beq _0800B214
b _0800B260
_0800B1D8:
ldr r0, =gUnknown_02022B00
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _0800B1EC
bl sub_800B080
b _0800B260
.pool
_0800B1EC:
bl sub_800B138
b _0800B260
_0800B1F2:
movs r0, 0
bl ShowBg
ldr r0, =gUnknown_02022B00
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _0800B260
movs r0, 0x1
bl ShowBg
b _0800B260
.pool
_0800B20C:
movs r0, 0x16
bl PlaySE
b _0800B260
_0800B214:
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0x2
bne _0800B244
ldr r0, =gUnknown_082ED224
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r0, =gText_ABtnTitleScreen
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x3
movs r2, 0x2
movs r3, 0x14
bl box_print
b _0800B260
.pool
_0800B244:
cmp r0, 0x1
bne _0800B260
ldr r0, =gUnknown_082ED224
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r0, =gText_ABtnRegistrationCounter
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x3
movs r2, 0x2
movs r3, 0x14
bl box_print
_0800B260:
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
ldrb r1, [r1]
cmp r1, 0xA0
bne _0800B2D0
ldr r4, =gSerialIsRFU
ldrb r2, [r4]
cmp r2, 0x1
bne _0800B2A8
ldrh r0, [r0, 0x2E]
ands r2, r0
cmp r2, 0
beq _0800B2C2
movs r0, 0x15
bl PlaySE
movs r0, 0
strb r0, [r4]
ldr r1, =gUnknown_02022B00
movs r0, 0
strb r0, [r1, 0x6]
bl sub_81700F8
b _0800B2C2
.pool
_0800B2A8:
cmp r2, 0x2
bne _0800B2C2
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0800B2C2
bl rfu_REQ_stopMode
bl rfu_waitREQComplete
bl DoSoftReset
_0800B2C2:
ldr r0, =gMain
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
ldrb r1, [r1]
cmp r1, 0xA0
beq _0800B2DC
_0800B2D0:
movs r2, 0x87
lsls r2, 3
adds r1, r0, r2
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_0800B2DC:
add sp, 0xC
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B1A0
thumb_func_start sub_800B2E8
sub_800B2E8: @ 800B2E8
ldr r0, =0x04000128
ldrh r0, [r0]
lsrs r0, 2
movs r1, 0x1
ands r0, r1
bx lr
.pool
thumb_func_end sub_800B2E8
thumb_func_start sub_800B2F8
sub_800B2F8: @ 800B2F8
push {lr}
movs r3, 0
ldr r2, =0x04000128
ldrh r1, [r2]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _0800B314
ldrh r1, [r2]
movs r0, 0x4
ands r0, r1
cmp r0, 0
bne _0800B314
movs r3, 0x1
_0800B314:
adds r0, r3, 0
pop {r1}
bx r1
.pool
thumb_func_end sub_800B2F8
thumb_func_start sub_800B320
sub_800B320: @ 800B320
ldr r0, =gUnknown_030030E0
ldr r0, [r0]
lsrs r0, 6
movs r1, 0x1
ands r0, r1
bx lr
.pool
thumb_func_end sub_800B320
thumb_func_start sub_800B330
sub_800B330: @ 800B330
ldr r1, =gUnknown_030030F8
strb r0, [r1]
bx lr
.pool
thumb_func_end sub_800B330
thumb_func_start sub_800B33C
sub_800B33C: @ 800B33C
ldr r0, =gUnknown_0300306C
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_800B33C
thumb_func_start sub_800B348
sub_800B348: @ 800B348
push {r4-r6,lr}
bl sub_8009638
ldr r1, =gUnknown_03003030
adds r2, r1, 0
adds r2, 0x10
ldr r0, =gUnknown_020229CC
ldm r0!, {r3-r5}
stm r2!, {r3-r5}
ldm r0!, {r3,r4,r6}
stm r2!, {r3,r4,r6}
ldr r0, [r0]
str r0, [r2]
ldr r3, =gASCIIGameFreakInc
adds r2, r1, 0
adds r0, r3, 0
ldm r0!, {r4-r6}
stm r2!, {r4-r6}
ldrh r4, [r0]
strh r4, [r2]
ldrb r0, [r0, 0x2]
strb r0, [r2, 0x2]
adds r0, r1, 0
adds r0, 0x2C
ldm r3!, {r2,r5,r6}
stm r0!, {r2,r5,r6}
ldrh r2, [r3]
strh r2, [r0]
ldrb r2, [r3, 0x2]
strb r2, [r0, 0x2]
ldr r0, =gUnknown_020228C4
movs r2, 0x3C
bl memcpy
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B348
thumb_func_start sub_800B3A4
sub_800B3A4: @ 800B3A4
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r2, r0, 8
ldr r1, =gBlockRecvBuffer
adds r4, r2, r1
lsls r2, r0, 3
subs r2, r0
lsls r2, 2
ldr r0, =gLinkPlayers
adds r2, r0
adds r1, r2, 0
adds r0, r4, 0
adds r0, 0x10
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldr r0, [r0]
str r0, [r1]
adds r0, r2, 0
bl sub_800B524
ldr r5, =gASCIIGameFreakInc
adds r0, r4, 0
adds r1, r5, 0
bl strcmp
cmp r0, 0
bne _0800B3EE
adds r0, r4, 0
adds r0, 0x2C
adds r1, r5, 0
bl strcmp
cmp r0, 0
beq _0800B3F4
_0800B3EE:
ldr r0, =c2_800ACD4
bl SetMainCallback2
_0800B3F4:
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B3A4
thumb_func_start HandleLinkConnection
HandleLinkConnection: @ 800B40C
push {r4,r5,lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0
bne _0800B45C
ldr r0, =gUnknown_03003144
ldr r1, =gUnknown_03003110
ldr r2, =gUnknown_03003090
bl sub_800B638
ldr r4, =gUnknown_030030E0
str r0, [r4]
ldr r0, =gMain+0x2c
bl sub_80099E0
ldr r0, [r4]
movs r1, 0x80
lsls r1, 1
ands r0, r1
cmp r0, 0
beq _0800B480
bl sub_808766C
cmp r0, 0x1
bne _0800B480
_0800B43E:
movs r0, 0x1
b _0800B482
.pool
_0800B45C:
bl sub_8010EC0
adds r4, r0, 0
bl sub_8010F1C
adds r5, r0, 0
bl sub_808766C
cmp r0, 0x1
bne _0800B480
cmp r4, 0x1
beq _0800B43E
bl sub_800F0B8
cmp r0, 0
bne _0800B43E
cmp r5, 0
bne _0800B43E
_0800B480:
movs r0, 0
_0800B482:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end HandleLinkConnection
thumb_func_start sub_800B488
sub_800B488: @ 800B488
push {lr}
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0800B498
ldr r1, =gSerialIsRFU
movs r0, 0x1
strb r0, [r1]
_0800B498:
pop {r0}
bx r0
.pool
thumb_func_end sub_800B488
thumb_func_start sub_800B4A4
sub_800B4A4: @ 800B4A4
push {lr}
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r1, [r0]
cmp r1, 0
bne _0800B4B2
ldr r0, =gSerialIsRFU
strb r1, [r0]
_0800B4B2:
pop {r0}
bx r0
.pool
thumb_func_end sub_800B4A4
thumb_func_start sub_800B4C0
sub_800B4C0: @ 800B4C0
push {lr}
ldr r0, =gReceivedRemoteLinkPlayers
ldrb r1, [r0]
cmp r1, 0
bne _0800B4CE
ldr r0, =gSerialIsRFU
strb r1, [r0]
_0800B4CE:
pop {r0}
bx r0
.pool
thumb_func_end sub_800B4C0
thumb_func_start sub_800B4DC
sub_800B4DC: @ 800B4DC
push {lr}
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
cmp r0, 0
bne _0800B4FC
ldr r0, =gUnknown_03003170
ldr r1, =0x00000fbd
adds r0, r1
ldrb r0, [r0]
b _0800B500
.pool
_0800B4FC:
bl sub_80124D4
_0800B500:
pop {r1}
bx r1
thumb_func_end sub_800B4DC
thumb_func_start sub_800B504
sub_800B504: @ 800B504
push {lr}
bl sub_800B4DC
cmp r0, 0x2
bhi _0800B512
movs r0, 0
b _0800B514
_0800B512:
movs r0, 0x1
_0800B514:
pop {r1}
bx r1
thumb_func_end sub_800B504
thumb_func_start sub_800B518
sub_800B518: @ 800B518
ldr r0, =gSerialIsRFU
ldrb r0, [r0]
bx lr
.pool
thumb_func_end sub_800B518
thumb_func_start sub_800B524
sub_800B524: @ 800B524
push {lr}
ldrb r1, [r0, 0x10]
strb r1, [r0, 0x12]
adds r2, r0, 0
adds r2, 0x8
ldrb r1, [r0, 0x1A]
adds r0, r2, 0
bl ConvertInternationalString
pop {r0}
bx r0
thumb_func_end sub_800B524
thumb_func_start sub_800B53C
sub_800B53C: @ 800B53C
push {lr}
sub sp, 0x4
movs r0, 0xC0
bl DisableInterrupts
ldr r1, =0x04000128
movs r2, 0x80
lsls r2, 6
adds r0, r2, 0
strh r0, [r1]
ldr r0, =0x0400010e
movs r2, 0
strh r2, [r0]
adds r1, 0xDA
movs r0, 0xC0
strh r0, [r1]
ldr r0, =0x0400012a
strh r2, [r0]
ldr r2, =0x04000120
movs r0, 0
movs r1, 0
str r0, [r2]
str r1, [r2, 0x4]
str r0, [sp]
ldr r1, =gUnknown_03003170
ldr r2, =0x050003f0
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end sub_800B53C
thumb_func_start sub_800B594
sub_800B594: @ 800B594
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0xC0
bl DisableInterrupts
ldr r0, =0x04000134
movs r4, 0
strh r4, [r0]
ldr r2, =0x04000128
movs r1, 0x80
lsls r1, 6
adds r0, r1, 0
strh r0, [r2]
ldrh r0, [r2]
ldr r3, =0x00004003
adds r1, r3, 0
orrs r0, r1
strh r0, [r2]
movs r0, 0x80
bl EnableInterrupts
ldr r0, =0x0400012a
strh r4, [r0]
movs r5, 0
str r5, [sp]
ldr r1, =gUnknown_03003170
ldr r2, =0x050003f0
mov r0, sp
bl CpuSet
ldr r0, =gUnknown_03000D6C
strb r4, [r0]
ldr r0, =gUnknown_03000D6E
strh r5, [r0]
ldr r0, =gUnknown_03000D70
strh r5, [r0]
ldr r0, =gUnknown_03000D72
strb r4, [r0]
ldr r0, =gUnknown_03000D73
strb r4, [r0]
ldr r0, =gUnknown_03003160
strb r4, [r0]
ldr r0, =gUnknown_03004130
strb r4, [r0]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B594
thumb_func_start sub_800B628
sub_800B628: @ 800B628
push {lr}
bl sub_800B594
bl sub_800B53C
pop {r0}
bx r0
thumb_func_end sub_800B628
thumb_func_start sub_800B638
sub_800B638: @ 800B638
push {r4-r7,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
ldr r0, =gUnknown_03003170
ldrb r0, [r0, 0x1]
cmp r0, 0x4
bhi _0800B6EA
lsls r0, 2
ldr r1, =_0800B65C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0800B65C:
.4byte _0800B670
.4byte _0800B680
.4byte _0800B698
.4byte _0800B6D4
.4byte _0800B6DE
_0800B670:
bl sub_800B53C
ldr r1, =gUnknown_03003170
movs r0, 0x1
strb r0, [r1, 0x1]
b _0800B6EA
.pool
_0800B680:
ldrb r0, [r4]
cmp r0, 0x1
bne _0800B6EA
bl sub_800B594
ldr r1, =gUnknown_03003170
movs r0, 0x2
strb r0, [r1, 0x1]
b _0800B6EA
.pool
_0800B698:
ldrb r1, [r4]
cmp r1, 0x1
beq _0800B6A8
cmp r1, 0x2
beq _0800B6C0
bl sub_800B764
b _0800B6EA
_0800B6A8:
ldr r2, =gUnknown_03003170
ldrb r0, [r2]
cmp r0, 0x8
bne _0800B6EA
ldrb r0, [r2, 0x3]
cmp r0, 0x1
bls _0800B6EA
strb r1, [r2, 0xE]
b _0800B6EA
.pool
_0800B6C0:
ldr r0, =gUnknown_03003170
movs r1, 0
strb r1, [r0, 0x1]
ldr r0, =0x0400012a
strh r1, [r0]
b _0800B6EA
.pool
_0800B6D4:
bl sub_800B790
ldr r1, =gUnknown_03003170
movs r0, 0x4
strb r0, [r1, 0x1]
_0800B6DE:
adds r0, r5, 0
bl sub_800B7C0
adds r0, r6, 0
bl sub_800B8A8
_0800B6EA:
movs r0, 0
strb r0, [r4]
ldr r1, =gUnknown_03003170
ldrb r2, [r1, 0x2]
ldrb r0, [r1, 0x3]
lsls r0, 2
orrs r2, r0
ldrb r0, [r1]
cmp r0, 0x8
bne _0800B702
movs r0, 0x20
orrs r2, r0
_0800B702:
ldrb r0, [r1, 0xC]
lsls r3, r0, 8
ldrb r0, [r1, 0xF]
lsls r4, r0, 9
ldrb r0, [r1, 0x10]
lsls r5, r0, 12
ldrb r0, [r1, 0x11]
lsls r6, r0, 13
ldrb r0, [r1, 0x12]
lsls r7, r0, 14
ldrb r0, [r1, 0x1]
cmp r0, 0x4
bne _0800B728
movs r0, 0x40
orrs r0, r3
orrs r0, r2
b _0800B72C
.pool
_0800B728:
adds r0, r2, 0
orrs r0, r3
_0800B72C:
orrs r0, r4
orrs r0, r5
orrs r0, r6
orrs r0, r7
adds r2, r0, 0
ldrb r3, [r1, 0x13]
cmp r3, 0x1
bne _0800B742
movs r0, 0x80
lsls r0, 9
orrs r2, r0
_0800B742:
ldrb r0, [r1, 0x2]
cmp r0, 0x3
bls _0800B74E
movs r0, 0x80
lsls r0, 10
orrs r2, r0
_0800B74E:
adds r1, r2, 0
cmp r3, 0x2
bne _0800B75A
movs r0, 0x80
lsls r0, 11
orrs r1, r0
_0800B75A:
adds r0, r1, 0
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_800B638
thumb_func_start sub_800B764
sub_800B764: @ 800B764
push {lr}
ldr r0, =0x04000128
ldr r1, [r0]
movs r0, 0xC
ands r1, r0
ldr r2, =gUnknown_03003170
cmp r1, 0x8
bne _0800B788
ldrb r0, [r2, 0x2]
cmp r0, 0
bne _0800B788
strb r1, [r2]
b _0800B78C
.pool
_0800B788:
movs r0, 0
strb r0, [r2]
_0800B78C:
pop {r0}
bx r0
thumb_func_end sub_800B764
thumb_func_start sub_800B790
sub_800B790: @ 800B790
push {lr}
ldr r0, =gUnknown_03003170
ldrb r0, [r0]
cmp r0, 0
beq _0800B7AE
ldr r1, =0x0400010c
ldr r2, =0x0000ff3b
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x2
movs r0, 0x41
strh r0, [r1]
movs r0, 0x40
bl EnableInterrupts
_0800B7AE:
pop {r0}
bx r0
.pool
thumb_func_end sub_800B790
thumb_func_start sub_800B7C0
sub_800B7C0: @ 800B7C0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r3, r0, 0
ldr r2, =gUnknown_03004134
ldr r1, =0x04000208
ldrh r0, [r1]
strh r0, [r2]
movs r0, 0
strh r0, [r1]
ldr r1, =gUnknown_03003170
ldr r4, =0x00000339
adds r0, r1, r4
ldrb r4, [r0]
adds r6, r1, 0
cmp r4, 0x31
bhi _0800B850
movs r1, 0xCE
lsls r1, 2
adds r0, r6, r1
ldrb r0, [r0]
adds r0, r4, r0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x31
bls _0800B7FE
subs r0, 0x32
lsls r0, 24
lsrs r0, 24
_0800B7FE:
movs r2, 0
ldr r4, =gUnknown_03000D6E
mov r9, r4
ldr r1, =gUnknown_03003160
mov r10, r1
lsls r5, r0, 1
movs r0, 0x18
adds r0, r6
mov r8, r0
mov r12, r2
movs r7, 0x64
_0800B814:
ldrh r0, [r4]
ldrh r1, [r3]
orrs r0, r1
strh r0, [r4]
adds r0, r2, 0
muls r0, r7
adds r0, r5, r0
add r0, r8
strh r1, [r0]
mov r1, r12
strh r1, [r3]
adds r3, 0x2
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _0800B814
b _0800B85C
.pool
_0800B850:
movs r0, 0x1
strb r0, [r6, 0x12]
ldr r2, =gUnknown_03000D6E
mov r9, r2
ldr r4, =gUnknown_03003160
mov r10, r4
_0800B85C:
mov r1, r9
ldrh r0, [r1]
cmp r0, 0
beq _0800B874
ldr r2, =0x00000339
adds r0, r6, r2
ldrb r1, [r0]
adds r1, 0x1
movs r2, 0
strb r1, [r0]
mov r4, r9
strh r2, [r4]
_0800B874:
ldr r1, =0x04000208
ldr r2, =gUnknown_03004134
ldrh r0, [r2]
strh r0, [r1]
ldr r4, =0x00000339
adds r0, r6, r4
ldrb r0, [r0]
mov r1, r10
strb r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B7C0
thumb_func_start sub_800B8A8
sub_800B8A8: @ 800B8A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r9, r0
ldr r2, =gUnknown_03004134
ldr r1, =0x04000208
ldrh r0, [r1]
strh r0, [r2]
movs r0, 0
strh r0, [r1]
ldr r1, =gUnknown_03003170
ldr r3, =0x00000fbd
adds r0, r1, r3
ldrb r0, [r0]
mov r12, r1
cmp r0, 0
bne _0800B914
movs r3, 0
ldrb r0, [r1, 0x3]
cmp r3, r0
bcs _0800B8FA
movs r5, 0
adds r6, r0, 0
_0800B8DA:
movs r2, 0
lsls r1, r3, 4
adds r4, r3, 0x1
add r1, r9
_0800B8E2:
lsls r0, r2, 1
adds r0, r1
strh r5, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _0800B8E2
lsls r0, r4, 24
lsrs r3, r0, 24
cmp r3, r6
bcc _0800B8DA
_0800B8FA:
movs r0, 0x1
mov r7, r12
strb r0, [r7, 0xC]
b _0800B990
.pool
_0800B914:
movs r3, 0
mov r0, r12
ldrb r1, [r0, 0x3]
cmp r3, r1
bcs _0800B96A
ldr r0, =0x00000fbc
add r0, r12
ldrb r0, [r0]
lsls r6, r0, 1
movs r2, 0xCF
lsls r2, 2
add r2, r12
mov r8, r2
mov r10, r1
_0800B930:
movs r2, 0
lsls r1, r3, 4
adds r4, r3, 0x1
lsls r0, r3, 1
mov r7, r9
adds r5, r1, r7
adds r0, r3
lsls r0, 3
adds r0, r3
lsls r3, r0, 5
_0800B944:
lsls r1, r2, 1
adds r1, r5
movs r7, 0x64
adds r0, r2, 0
muls r0, r7
adds r0, r6, r0
adds r0, r3
add r0, r8
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x7
bls _0800B944
lsls r0, r4, 24
lsrs r3, r0, 24
cmp r3, r10
bcc _0800B930
_0800B96A:
mov r2, r12
ldr r0, =0x00000fbd
adds r1, r2, r0
ldrb r0, [r1]
subs r0, 0x1
movs r3, 0
strb r0, [r1]
ldr r1, =0x00000fbc
adds r2, r1
ldrb r0, [r2]
adds r0, 0x1
strb r0, [r2]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x31
bls _0800B98C
strb r3, [r2]
_0800B98C:
mov r2, r12
strb r3, [r2, 0xC]
_0800B990:
ldr r1, =0x04000208
ldr r3, =gUnknown_03004134
ldrh r0, [r3]
strh r0, [r1]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B8A8
thumb_func_start sub_800B9B8
sub_800B9B8: @ 800B9B8
push {r4,lr}
ldr r3, =gUnknown_03003170
ldrb r4, [r3]
cmp r4, 0
beq _0800B9F4
ldrb r0, [r3, 0x1]
cmp r0, 0x2
beq _0800B9EE
cmp r0, 0x4
bne _0800BA1E
movs r0, 0xD
ldrsb r0, [r3, r0]
cmp r0, 0x8
bgt _0800B9E4
ldrb r0, [r3, 0x10]
cmp r0, 0x1
beq _0800B9EE
movs r0, 0x1
strb r0, [r3, 0x13]
b _0800BA1E
.pool
_0800B9E4:
ldrb r0, [r3, 0x13]
cmp r0, 0x1
beq _0800BA1E
movs r0, 0
strb r0, [r3, 0xD]
_0800B9EE:
bl sub_800BAC0
b _0800BA1E
_0800B9F4:
ldrb r2, [r3, 0x1]
cmp r2, 0x4
beq _0800B9FE
cmp r2, 0x2
bne _0800BA1E
_0800B9FE:
ldr r1, =gUnknown_03000D6C
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xA
bls _0800BA1E
cmp r2, 0x4
bne _0800BA16
movs r0, 0x2
strb r0, [r3, 0x13]
_0800BA16:
cmp r2, 0x2
bne _0800BA1E
strb r4, [r3, 0x3]
strb r4, [r3, 0xF]
_0800BA1E:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800B9B8
thumb_func_start Timer3Intr
Timer3Intr: @ 800BA28
push {lr}
bl sub_800BD98
bl sub_800BAC0
pop {r0}
bx r0
thumb_func_end Timer3Intr
thumb_func_start sub_800BA38
sub_800BA38: @ 800BA38
push {r4,lr}
ldr r4, =gUnknown_03003170
ldr r0, =0x04000128
ldr r1, [r0]
lsls r0, r1, 26
lsrs r0, 30
strb r0, [r4, 0x2]
ldrb r0, [r4, 0x1]
cmp r0, 0x2
beq _0800BA6C
cmp r0, 0x4
bne _0800BA8A
lsls r0, r1, 25
lsrs r0, 31
strb r0, [r4, 0x10]
bl sub_800BBCC
bl sub_800BCE4
bl sub_800BDCC
b _0800BA8A
.pool
_0800BA6C:
bl sub_800BAD0
lsls r0, 24
cmp r0, 0
beq _0800BA8A
ldrb r0, [r4]
cmp r0, 0
beq _0800BA86
movs r0, 0x3
strb r0, [r4, 0x1]
movs r0, 0x8
strb r0, [r4, 0xD]
b _0800BA8A
_0800BA86:
movs r0, 0x4
strb r0, [r4, 0x1]
_0800BA8A:
ldr r3, =gUnknown_03003170
ldrb r0, [r3, 0xD]
adds r0, 0x1
movs r2, 0
strb r0, [r3, 0xD]
ldr r1, =gUnknown_03000D6C
strb r2, [r1]
lsls r0, 24
asrs r0, 24
cmp r0, 0x8
bne _0800BAAA
ldr r0, =gUnknown_03004130
ldr r2, =0x00000fbd
adds r1, r3, r2
ldrb r1, [r1]
strb r1, [r0]
_0800BAAA:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800BA38
thumb_func_start sub_800BAC0
sub_800BAC0: @ 800BAC0
ldr r0, =0x04000128
ldrh r1, [r0]
movs r2, 0x80
orrs r1, r2
strh r1, [r0]
bx lr
.pool
thumb_func_end sub_800BAC0
thumb_func_start sub_800BAD0
sub_800BAD0: @ 800BAD0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r5, 0
ldr r6, =0x0000ffff
ldr r0, =gUnknown_03003170
ldrb r1, [r0, 0xE]
adds r7, r0, 0
cmp r1, 0x1
bne _0800BAFC
ldr r1, =0x0400012a
ldr r2, =0x00008fff
b _0800BB00
.pool
_0800BAFC:
ldr r1, =0x0400012a
ldr r2, =0x0000b9a0
_0800BB00:
adds r0, r2, 0
strh r0, [r1]
ldr r2, =gUnknown_03003170+0x4
ldr r3, =0x04000120
ldr r0, [r3]
ldr r1, [r3, 0x4]
str r0, [r2]
str r1, [r2, 0x4]
movs r0, 0
movs r1, 0
str r0, [r3]
str r1, [r3, 0x4]
strb r0, [r2, 0xA]
movs r4, 0
ldr r0, =gUnknown_03000D73
mov r9, r0
mov r8, r2
ldr r2, =0x00008fff
ldr r1, =0x0000ffff
mov r12, r1
_0800BB28:
lsls r0, r4, 1
add r0, r8
ldrh r3, [r0]
movs r0, 0x4
negs r0, r0
ands r0, r3
ldr r1, =0x0000b9a0
cmp r0, r1
beq _0800BB40
adds r0, r3, 0
cmp r0, r2
bne _0800BB70
_0800BB40:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r0, r3, 0
cmp r6, r0
bls _0800BB78
cmp r0, 0
beq _0800BB78
adds r6, r3, 0
b _0800BB78
.pool
_0800BB70:
cmp r0, r12
beq _0800BB82
movs r5, 0
b _0800BB82
_0800BB78:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _0800BB28
_0800BB82:
strb r5, [r7, 0x3]
adds r0, r5, 0
cmp r0, 0x1
bls _0800BBB2
mov r2, r9
ldrb r2, [r2]
cmp r0, r2
bne _0800BBA4
ldrh r1, [r7, 0x4]
ldr r0, =0x00008fff
cmp r1, r0
bne _0800BBA4
movs r0, 0x1
b _0800BBBE
.pool
_0800BBA4:
ldrb r0, [r7, 0x3]
cmp r0, 0x1
bls _0800BBB2
movs r0, 0x3
ands r6, r0
adds r0, r6, 0x1
b _0800BBB4
_0800BBB2:
movs r0, 0
_0800BBB4:
strb r0, [r7, 0xF]
ldrb r0, [r7, 0x3]
mov r1, r9
strb r0, [r1]
movs r0, 0
_0800BBBE:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_800BAD0
thumb_func_start sub_800BBCC
sub_800BBCC: @ 800BBCC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r0, =0x04000120
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
ldr r0, =gUnknown_03003170
ldrb r1, [r0, 0x16]
adds r6, r0, 0
cmp r1, 0
bne _0800BC30
movs r4, 0
ldr r7, =gUnknown_03000D72
ldrb r0, [r6, 0x3]
cmp r4, r0
bcs _0800BC1A
adds r5, r6, 0
ldrh r1, [r6, 0x14]
adds r3, r7, 0
adds r2, r6, 0
_0800BBFA:
lsls r0, r4, 1
add r0, sp
ldrh r0, [r0]
cmp r1, r0
beq _0800BC0E
ldrb r0, [r3]
cmp r0, 0
beq _0800BC0E
movs r0, 0x1
strb r0, [r5, 0x11]
_0800BC0E:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r2, 0x3]
cmp r4, r0
bcc _0800BBFA
_0800BC1A:
movs r0, 0
strh r0, [r6, 0x14]
movs r0, 0x1
strb r0, [r7]
b _0800BCD0
.pool
_0800BC30:
ldr r2, =0x00000fbc
adds r1, r6, r2
adds r2, 0x1
adds r0, r6, r2
ldrb r2, [r0]
ldrb r1, [r1]
adds r0, r2, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x31
bls _0800BC4C
subs r0, 0x32
lsls r0, 24
lsrs r0, 24
_0800BC4C:
cmp r2, 0x31
bhi _0800BCA8
movs r4, 0
ldrb r1, [r6, 0x3]
cmp r4, r1
bcs _0800BCAC
adds r5, r6, 0
ldr r7, =gUnknown_03000D70
lsls r0, 1
mov r12, r0
movs r2, 0xCF
lsls r2, 2
adds r2, r6
mov r8, r2
_0800BC68:
lsls r1, r4, 1
mov r2, sp
adds r0, r2, r1
ldrh r3, [r0]
ldrh r2, [r5, 0x14]
adds r0, r3, r2
strh r0, [r5, 0x14]
ldrh r0, [r7]
orrs r0, r3
strh r0, [r7]
ldrb r2, [r5, 0x17]
movs r0, 0x64
muls r0, r2
add r0, r12
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 5
adds r0, r1
add r0, r8
strh r3, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r5, 0x3]
cmp r4, r0
bcc _0800BC68
b _0800BCAC
.pool
_0800BCA8:
movs r0, 0x2
strb r0, [r6, 0x12]
_0800BCAC:
ldrb r0, [r6, 0x17]
adds r0, 0x1
strb r0, [r6, 0x17]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x8
bne _0800BCD0
ldr r2, =gUnknown_03000D70
ldrh r0, [r2]
cmp r0, 0
beq _0800BCD0
ldr r1, =0x00000fbd
adds r0, r6, r1
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
movs r0, 0
strh r0, [r2]
_0800BCD0:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800BBCC
thumb_func_start sub_800BCE4
sub_800BCE4: @ 800BCE4
push {r4,lr}
ldr r0, =gUnknown_03003170
ldrb r1, [r0, 0x16]
adds r4, r0, 0
cmp r1, 0x8
bne _0800BD36
ldr r1, =0x0400012a
ldrh r0, [r4, 0x14]
strh r0, [r1]
ldr r1, =gUnknown_03000D6D
ldrb r2, [r1]
cmp r2, 0
bne _0800BD30
ldr r0, =0x00000339
adds r1, r4, r0
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
movs r0, 0xCE
lsls r0, 2
adds r1, r4, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x31
bls _0800BD8C
strb r2, [r1]
b _0800BD8C
.pool
_0800BD30:
movs r0, 0
strb r0, [r1]
b _0800BD8C
_0800BD36:
ldr r1, =gUnknown_03000D6D
ldrb r0, [r1]
cmp r0, 0
bne _0800BD52
ldr r2, =0x00000339
adds r0, r4, r2
ldrb r0, [r0]
cmp r0, 0
bne _0800BD4C
movs r0, 0x1
strb r0, [r1]
_0800BD4C:
ldrb r0, [r1]
cmp r0, 0
beq _0800BD68
_0800BD52:
ldr r1, =0x0400012a
movs r0, 0
strh r0, [r1]
b _0800BD86
.pool
_0800BD68:
ldr r3, =0x0400012a
movs r1, 0xCE
lsls r1, 2
adds r0, r4, r1
ldrb r0, [r0]
lsls r0, 1
ldrb r2, [r4, 0x16]
movs r1, 0x64
muls r1, r2
adds r0, r1
adds r1, r4, 0
adds r1, 0x18
adds r0, r1
ldrh r0, [r0]
strh r0, [r3]
_0800BD86:
ldrb r0, [r4, 0x16]
adds r0, 0x1
strb r0, [r4, 0x16]
_0800BD8C:
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_800BCE4
thumb_func_start sub_800BD98
sub_800BD98: @ 800BD98
push {lr}
ldr r0, =gUnknown_03003170
ldrb r0, [r0]
cmp r0, 0
beq _0800BDB4
ldr r2, =0x0400010e
ldrh r1, [r2]
ldr r0, =0x0000ff7f
ands r0, r1
strh r0, [r2]
ldr r1, =0x0400010c
ldr r2, =0x0000ff3b
adds r0, r2, 0
strh r0, [r1]
_0800BDB4:
pop {r0}
bx r0
.pool
thumb_func_end sub_800BD98
thumb_func_start sub_800BDCC
sub_800BDCC: @ 800BDCC
push {lr}
ldr r1, =gUnknown_03003170
ldrb r0, [r1, 0x17]
cmp r0, 0x8
bne _0800BDE4
movs r0, 0
strb r0, [r1, 0x16]
strb r0, [r1, 0x17]
b _0800BDF4
.pool
_0800BDE4:
ldrb r0, [r1]
cmp r0, 0
beq _0800BDF4
ldr r0, =0x0400010e
ldrh r1, [r0]
movs r2, 0x80
orrs r1, r2
strh r1, [r0]
_0800BDF4:
pop {r0}
bx r0
.pool
thumb_func_end sub_800BDCC
thumb_func_start sub_800BDFC
sub_800BDFC: @ 800BDFC
push {r4-r6,lr}
ldr r1, =gUnknown_03003170
ldr r2, =0x00000339
adds r0, r1, r2
movs r2, 0
strb r2, [r0]
movs r3, 0xCE
lsls r3, 2
adds r0, r1, r3
strb r2, [r0]
movs r0, 0
movs r6, 0x64
adds r5, r1, 0
adds r5, 0x18
ldr r4, =0x0000efff
_0800BE1A:
movs r2, 0
adds r1, r0, 0x1
adds r3, r0, 0
muls r3, r6
_0800BE22:
lsls r0, r2, 1
adds r0, r3
adds r0, r5
strh r4, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x31
bls _0800BE22
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0x7
bls _0800BE1A
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_800BDFC
thumb_func_start sub_800BE50
sub_800BE50: @ 800BE50
push {r4-r7,lr}
ldr r1, =gUnknown_03003170
ldr r2, =0x00000fbd
adds r0, r1, r2
movs r2, 0
strb r2, [r0]
ldr r3, =0x00000fbc
adds r0, r1, r3
strb r2, [r0]
movs r0, 0x64
mov r12, r0
movs r3, 0xCF
lsls r3, 2
adds r7, r1, r3
ldr r6, =0x0000efff
_0800BE6E:
movs r3, 0
lsls r0, r2, 1
adds r5, r2, 0x1
adds r0, r2
lsls r0, 3
adds r0, r2
lsls r4, r0, 5
_0800BE7C:
movs r2, 0
adds r1, r3, 0x1
mov r0, r12
muls r0, r3
adds r3, r0, 0
_0800BE86:
lsls r0, r2, 1
adds r0, r3
adds r0, r4
adds r0, r7
strh r6, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x31
bls _0800BE86
lsls r0, r1, 24
lsrs r3, r0, 24
cmp r3, 0x7
bls _0800BE7C
lsls r0, r5, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _0800BE6E
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800BE50
@ break
.align 2, 0 @ Don't pad with nop.