tmc/asm/code_0805E3B0.s

400 lines
7.1 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0805E3B0
sub_0805E3B0: @ 0x0805E3B0
push {lr}
adds r3, r0, #0
ldrb r1, [r3, #0x10]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0805E3C2
movs r0, #1
b _0805E404
_0805E3C2:
ldrb r0, [r3, #0xc]
cmp r0, #0
bne _0805E3CC
movs r0, #0
b _0805E404
_0805E3CC:
ldr r1, _0805E3DC @ =gUnk_03003DC0
ldrb r0, [r1]
ldrb r2, [r1, #1]
cmp r0, r2
bls _0805E3E0
adds r2, r0, #0
b _0805E3E2
.align 2, 0
_0805E3DC: .4byte gUnk_03003DC0
_0805E3E0:
ldrb r2, [r1, #1]
_0805E3E2:
ldr r0, _0805E408 @ =gTextBox
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0805E3F4
cmp r2, #2
bhs _0805E3F4
movs r2, #2
_0805E3F4:
movs r1, #0
ldrb r0, [r3, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r2, r0
bls _0805E402
movs r1, #1
_0805E402:
adds r0, r1, #0
_0805E404:
pop {pc}
.align 2, 0
_0805E408: .4byte gTextBox
thumb_func_start sub_0805E40C
sub_0805E40C: @ 0x0805E40C
push {lr}
ldr r1, _0805E424 @ =gUnk_03003DC0
ldrb r0, [r1]
ldrb r2, [r1, #1]
cmp r0, r2
bhi _0805E41A
ldrb r0, [r1, #1]
_0805E41A:
cmp r0, #0
beq _0805E420
movs r0, #1
_0805E420:
pop {pc}
.align 2, 0
_0805E424: .4byte gUnk_03003DC0
thumb_func_start sub_0805E428
sub_0805E428: @ 0x0805E428
push {lr}
bl sub_0805E524
ldr r2, _0805E440 @ =gUnk_03003DC0
ldrb r3, [r2, #2]
adds r1, r3, #0
cmp r1, #0
beq _0805E444
movs r0, #0
strb r3, [r2, #1]
strb r0, [r2, #2]
b _0805E44E
.align 2, 0
_0805E440: .4byte gUnk_03003DC0
_0805E444:
ldrb r0, [r2, #3]
cmp r0, #0
beq _0805E44E
strb r1, [r2, #3]
strb r1, [r2, #1]
_0805E44E:
pop {pc}
thumb_func_start sub_0805E450
sub_0805E450: @ 0x0805E450
push {lr}
ldr r1, _0805E464 @ =gUnk_03003DC0
ldrb r2, [r1, #2]
cmp r0, r2
blo _0805E460
ldrb r2, [r1, #1]
cmp r0, r2
bhs _0805E468
_0805E460:
movs r0, #0
b _0805E46C
.align 2, 0
_0805E464: .4byte gUnk_03003DC0
_0805E468:
strb r0, [r1, #2]
movs r0, #1
_0805E46C:
pop {pc}
.align 2, 0
thumb_func_start sub_0805E470
sub_0805E470: @ 0x0805E470
ldr r1, _0805E478 @ =gUnk_03003DC0
movs r0, #1
strb r0, [r1, #3]
bx lr
.align 2, 0
_0805E478: .4byte gUnk_03003DC0
thumb_func_start sub_0805E47C
sub_0805E47C: @ 0x0805E47C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x18
movs r1, #2
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #2
bl sub_0805E450
cmp r0, #0
beq _0805E49A
ldr r0, _0805E49C @ =gUnk_03003DC0
str r4, [r0, #4]
_0805E49A:
pop {r4, pc}
.align 2, 0
_0805E49C: .4byte gUnk_03003DC0
thumb_func_start sub_0805E4A0
sub_0805E4A0: @ 0x0805E4A0
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08078A90
ldrb r0, [r4, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x18
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #1
bl sub_0805E450
cmp r0, #0
beq _0805E4C4
ldr r0, _0805E4C8 @ =gUnk_03003DC0
str r4, [r0, #4]
_0805E4C4:
pop {r4, pc}
.align 2, 0
_0805E4C8: .4byte gUnk_03003DC0
thumb_func_start sub_0805E4CC
sub_0805E4CC: @ 0x0805E4CC
push {r4, lr}
adds r4, r0, #0
movs r0, #0
bl sub_08078A90
adds r0, r4, #0
bl sub_0805E584
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805E4E0
sub_0805E4E0: @ 0x0805E4E0
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
cmp r4, #0
beq _0805E4F6
ldrb r0, [r4, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x18
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
_0805E4F6:
movs r0, #1
bl sub_0805E450
cmp r0, #0
beq _0805E504
ldr r0, _0805E50C @ =gUnk_03003DC0
str r4, [r0, #4]
_0805E504:
adds r0, r5, #0
bl sub_0805E510
pop {r4, r5, pc}
.align 2, 0
_0805E50C: .4byte gUnk_03003DC0
thumb_func_start sub_0805E510
sub_0805E510: @ 0x0805E510
push {lr}
adds r1, r0, #0
ldr r2, _0805E520 @ =gUnk_03003DC0
ldrh r0, [r2, #8]
cmp r0, r1
bhs _0805E51E
strh r1, [r2, #8]
_0805E51E:
pop {pc}
.align 2, 0
_0805E520: .4byte gUnk_03003DC0
thumb_func_start sub_0805E524
sub_0805E524: @ 0x0805E524
push {lr}
ldr r1, _0805E540 @ =gUnk_03003DC0
ldrh r0, [r1, #8]
cmp r0, #0
beq _0805E53C
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _0805E53C
bl sub_0805E470
_0805E53C:
pop {pc}
.align 2, 0
_0805E540: .4byte gUnk_03003DC0
thumb_func_start sub_0805E544
sub_0805E544: @ 0x0805E544
ldr r1, _0805E55C @ =gUnk_03003DC0
movs r3, #6
movs r0, #6
strb r0, [r1]
ldr r2, _0805E560 @ =gPlayerEntity
ldrb r1, [r2, #0x11]
subs r0, #0x16
ands r0, r1
orrs r0, r3
strb r0, [r2, #0x11]
bx lr
.align 2, 0
_0805E55C: .4byte gUnk_03003DC0
_0805E560: .4byte gPlayerEntity
thumb_func_start UnfreezeTime
UnfreezeTime: @ 0x0805E564
ldr r1, _0805E57C @ =gUnk_03003DC0
movs r0, #0
strb r0, [r1]
ldr r2, _0805E580 @ =gPlayerEntity
ldrb r1, [r2, #0x11]
subs r0, #0x10
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x11]
bx lr
.align 2, 0
_0805E57C: .4byte gUnk_03003DC0
_0805E580: .4byte gPlayerEntity
thumb_func_start sub_0805E584
sub_0805E584: @ 0x0805E584
push {lr}
ldrb r2, [r0, #0x11]
lsrs r3, r2, #4
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x11]
bl sub_0805E470
pop {pc}
.align 2, 0
thumb_func_start sub_0805E59C
sub_0805E59C: @ 0x0805E59C
ldr r1, _0805E5A4 @ =gUnk_03003DC0
movs r0, #6
strb r0, [r1]
bx lr
.align 2, 0
_0805E5A4: .4byte gUnk_03003DC0
thumb_func_start sub_0805E5A8
sub_0805E5A8: @ 0x0805E5A8
ldr r1, _0805E5B0 @ =gUnk_03003DC0
movs r0, #7
strb r0, [r1]
bx lr
.align 2, 0
_0805E5B0: .4byte gUnk_03003DC0
thumb_func_start sub_0805E5B4
sub_0805E5B4: @ 0x0805E5B4
ldr r1, _0805E5BC @ =gUnk_03003DC0
movs r0, #0
strb r0, [r1]
bx lr
.align 2, 0
_0805E5BC: .4byte gUnk_03003DC0
thumb_func_start sub_0805E5C0
sub_0805E5C0: @ 0x0805E5C0
push {lr}
ldr r0, _0805E5F0 @ =gRoomVars
ldrb r1, [r0, #4]
movs r2, #0
strb r1, [r0, #5]
strb r2, [r0, #4]
bl sub_0805ED30
bl sub_0805E428
bl ClearHitboxList
bl sub_0806F0A4
ldr r1, _0805E5F4 @ =gUnk_03005F40
movs r0, #0
bl _call_via_r1
bl ClearAllDeletedEntities
bl sub_0805EE88
pop {pc}
.align 2, 0
_0805E5F0: .4byte gRoomVars
_0805E5F4: .4byte gUnk_03005F40
thumb_func_start sub_0805E5F8
sub_0805E5F8: @ 0x0805E5F8
push {lr}
ldr r1, _0805E608 @ =gUnk_03005F40
movs r0, #1
bl _call_via_r1
bl ClearAllDeletedEntities
pop {pc}
.align 2, 0
_0805E608: .4byte gUnk_03005F40
thumb_func_start EraseAllEntities
EraseAllEntities: @ 0x0805E60C
push {lr}
bl DeleteAllEntities
ldr r0, _0805E654 @ =gUnk_03003DC0
movs r1, #0xc
bl MemClear
ldr r0, _0805E658 @ =gPlayerEntity
movs r1, #0xaa
lsls r1, r1, #6
bl MemClear
ldr r0, _0805E65C @ =gUnk_02033290
movs r1, #0x80
lsls r1, r1, #4
bl MemClear
bl sub_0805E98C
ldr r0, _0805E660 @ =gEntCount
movs r1, #0
strb r1, [r0]
ldr r0, _0805E664 @ =gManagerCount
strb r1, [r0]
ldr r1, _0805E668 @ =gUnk_03000000
ldr r2, _0805E66C @ =0x00000427
adds r0, r1, r2
movs r2, #1
strb r2, [r0]
ldr r3, _0805E670 @ =0x00000426
adds r0, r1, r3
strb r2, [r0]
ldr r0, _0805E674 @ =0x0000042E
adds r1, r1, r0
strb r2, [r1]
pop {pc}
.align 2, 0
_0805E654: .4byte gUnk_03003DC0
_0805E658: .4byte gPlayerEntity
_0805E65C: .4byte gUnk_02033290
_0805E660: .4byte gEntCount
_0805E664: .4byte gManagerCount
_0805E668: .4byte gUnk_03000000
_0805E66C: .4byte 0x00000427
_0805E670: .4byte 0x00000426
_0805E674: .4byte 0x0000042E