pokeemerald/asm/pokedex_cry_screen.s
2016-11-01 10:16:34 -07:00

1011 lines
15 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8145354
sub_8145354: @ 8145354
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
lsls r1, 24
lsrs r7, r1, 24
movs r0, 0
mov r8, r0
ldr r0, =0x030061ec
ldrb r0, [r0]
cmp r0, 0x1
beq _081453F8
cmp r0, 0x1
bgt _0814537C
cmp r0, 0
beq _08145382
b _0814544A
.pool
_0814537C:
cmp r0, 0x2
beq _08145434
b _0814544A
_08145382:
ldr r5, =0x0203ab90
ldr r0, [r5]
cmp r0, 0
bne _0814539E
movs r0, 0x1C
bl AllocZeroed
str r0, [r5]
ldr r4, =0x0203ab94
adds r0, r7, 0
movs r1, 0x7
bl GetWindowAttribute
str r0, [r4]
_0814539E:
ldr r1, [r5]
ldrh r0, [r6]
movs r2, 0
strh r0, [r1, 0x14]
ldrb r0, [r6, 0x5]
strb r0, [r1, 0x16]
ldr r0, [r5]
strb r2, [r0, 0x1A]
ldr r0, [r5]
strb r2, [r0, 0x1B]
ldr r0, [r5]
strb r2, [r0, 0x10]
ldr r1, [r5]
movs r0, 0x1C
strb r0, [r1, 0x12]
ldr r0, [r5]
strb r2, [r0, 0x11]
ldrb r1, [r6, 0x4]
lsls r1, 19
negs r1, r1
asrs r1, 16
adds r0, r7, 0
movs r2, 0x1
bl sub_8145824
movs r4, 0
_081453D2:
adds r0, r7, 0
ldr r1, =gUnknown_085B8C10
movs r2, 0x20
adds r3, r4, 0
bl CopyToWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xDF
bls _081453D2
b _08145420
.pool
_081453F8:
movs r4, 0
ldr r1, =0x0203ab90
ldr r0, [r1]
ldrb r0, [r0, 0x16]
lsls r0, 3
cmp r8, r0
bge _08145420
adds r5, r1, 0
_08145408:
adds r0, r4, 0
movs r1, 0
bl sub_81456A8
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
ldr r0, [r5]
ldrb r0, [r0, 0x16]
lsls r0, 3
cmp r4, r0
blt _08145408
_08145420:
ldr r1, =0x030061ec
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _0814544A
.pool
_08145434:
adds r0, r7, 0
bl sub_8145814
ldr r0, =gUnknown_085B8BF0
ldrb r1, [r6, 0x3]
lsls r1, 4
movs r2, 0x20
bl gpu_pal_apply
movs r0, 0x1
mov r8, r0
_0814544A:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8145354
thumb_func_start sub_814545C
sub_814545C: @ 814545C
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
bl sub_8145814
adds r0, r4, 0
bl sub_8145648
ldr r2, =0x0203ab90
ldr r1, [r2]
ldrb r0, [r1, 0x1B]
cmp r0, 0
beq _0814547E
subs r0, 0x1
strb r0, [r1, 0x1B]
_0814547E:
ldr r1, [r2]
ldrb r0, [r1, 0x1A]
cmp r0, 0
beq _081454A4
subs r0, 0x1
strb r0, [r1, 0x1A]
ldr r1, [r2]
ldrb r0, [r1, 0x1A]
cmp r0, 0
bne _081454A4
ldrh r0, [r1, 0x18]
bl sub_8145588
bl sub_814560C
b _0814552A
.pool
_081454A4:
ldr r5, =0x0203ab90
ldr r0, [r5]
ldrb r0, [r0, 0x10]
cmp r0, 0
bne _081454B8
bl sub_814560C
b _0814552A
.pool
_081454B8:
cmp r0, 0x1
bne _081454C2
bl sub_81455A8
b _081454E6
_081454C2:
cmp r0, 0x8
bls _081454E6
bl sub_80A36EC
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _081454DC
bl sub_814560C
ldr r0, [r5]
strb r4, [r0, 0x10]
b _0814552A
_081454DC:
bl sub_81455A8
ldr r1, [r5]
movs r0, 0x1
strb r0, [r1, 0x10]
_081454E6:
ldr r5, =0x0203ab90
ldr r1, [r5]
ldrb r4, [r1, 0x10]
subs r4, 0x1
lsls r4, 25
lsrs r4, 24
ldrb r0, [r1, 0x16]
lsls r0, 3
ldrb r2, [r1, 0x11]
adds r0, r2
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
adds r1, r4
ldrb r1, [r1]
bl sub_81456A8
ldr r1, [r5]
ldrb r0, [r1, 0x16]
lsls r0, 3
ldrb r2, [r1, 0x11]
adds r0, r2
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
adds r4, 0x1
adds r1, r4
ldrb r1, [r1]
bl sub_81456A8
ldr r1, [r5]
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
_0814552A:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_814545C
thumb_func_start sub_8145534
sub_8145534: @ 8145534
push {r4-r6,lr}
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
ldr r0, =0x03007420
ldr r0, [r0, 0x4]
cmp r0, 0
bge _08145582
ldr r6, =0x0203ab90
ldr r1, [r6]
ldrb r0, [r1, 0x1A]
cmp r0, 0
bne _08145582
ldrb r0, [r1, 0x1B]
cmp r0, 0
bne _08145582
movs r0, 0x4
strb r0, [r1, 0x1B]
bl sub_80A36EC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0814557C
bl sub_80A36B4
ldr r1, [r6]
strh r4, [r1, 0x18]
movs r0, 0x2
strb r0, [r1, 0x1A]
b _08145582
.pool
_0814557C:
adds r0, r5, 0
bl sub_8145588
_08145582:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8145534
thumb_func_start sub_8145588
sub_8145588: @ 8145588
push {lr}
lsls r0, 16
lsrs r0, 16
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl sub_80A32C0
ldr r0, =0x0203ab90
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x10]
pop {r0}
bx r0
.pool
thumb_func_end sub_8145588
thumb_func_start sub_81455A8
sub_81455A8: @ 81455A8
push {r4,lr}
ldr r3, =0x03002f50
movs r0, 0
ldrsb r0, [r3, r0]
cmp r0, 0x1
bgt _081455C0
ldr r0, =0x030066d0
b _081455D8
.pool
_081455C0:
ldr r2, =0x03006380
ldrb r1, [r2, 0xB]
movs r0, 0
ldrsb r0, [r3, r0]
subs r0, 0x1
subs r1, r0
ldr r0, [r2, 0x10]
muls r0, r1
movs r1, 0xD4
lsls r1, 2
adds r2, r1
adds r0, r2
_081455D8:
movs r1, 0xC6
lsls r1, 3
adds r3, r0, r1
movs r2, 0
ldr r4, =0x0203ab90
_081455E2:
ldr r1, [r4]
adds r1, r2
lsls r0, r2, 1
adds r0, r3
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
lsls r0, 1
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xF
bls _081455E2
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_81455A8
thumb_func_start sub_814560C
sub_814560C: @ 814560C
push {r4,lr}
ldr r4, =0x0203ab90
ldr r1, [r4]
ldrb r0, [r1, 0x16]
lsls r0, 3
ldrb r1, [r1, 0x11]
adds r0, r1
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_81456A8
ldr r1, [r4]
ldrb r0, [r1, 0x16]
lsls r0, 3
ldrb r1, [r1, 0x11]
adds r0, r1
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_81456A8
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_814560C
thumb_func_start sub_8145648
sub_8145648: @ 8145648
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r4, =0x0203ab90
ldr r0, [r4]
ldrb r1, [r0, 0x11]
adds r0, r6, 0
movs r2, 0
bl sub_8145824
ldr r1, [r4]
ldrb r0, [r1, 0x11]
adds r0, 0x2
strb r0, [r1, 0x11]
ldr r1, [r4]
ldrb r0, [r1, 0x11]
lsrs r0, 3
ldrb r1, [r1, 0x16]
adds r1, r0, r1
adds r2, r1, 0x1
adds r0, r2, 0
asrs r0, 5
lsls r0, 5
subs r0, r2, r0
lsls r0, 16
lsrs r5, r0, 16
movs r4, 0
_0814567E:
lsls r3, r4, 5
adds r3, r5, r3
lsls r3, 16
lsrs r3, 16
adds r0, r6, 0
ldr r1, =gUnknown_085B8C10
movs r2, 0x20
bl CopyToWindowPixelBuffer
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x6
bls _0814567E
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8145648
thumb_func_start sub_81456A8
sub_81456A8: @ 81456A8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r7, r0, 24
lsrs r4, r7, 24
lsls r1, 24
movs r0, 0xFE
lsls r0, 23
adds r1, r0
lsrs r1, 16
adds r0, r1, 0
bl __floatsidf
ldr r3, _08145768
ldr r2, _08145764
bl __divdf3
bl __fixunsdfsi
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x37
bls _081456DE
movs r5, 0x37
_081456DE:
str r5, [sp]
movs r6, 0x1
ands r6, r4
ldr r0, _0814576C
ldr r1, [r0]
lsrs r7, 27
mov r8, r7
ldr r0, _08145770
ldrb r1, [r1, 0x12]
cmp r5, r1
bls _08145780
ldr r3, _08145774
adds r0, r6, r0
ldrb r0, [r0]
mov r9, r0
movs r7, 0x7
ands r7, r4
_08145700:
lsls r1, r5, 1
lsls r0, r7, 3
adds r0, r7
lsls r0, 4
adds r1, r0
ldr r2, _08145778
adds r1, r2
mov r4, r8
lsls r0, r4, 5
ldrh r1, [r1]
adds r0, r1
lsls r0, 16
lsrs r2, r0, 16
ldr r1, [r3]
adds r1, r2
ldrb r0, [r1]
mov r4, r9
ands r0, r4
strb r0, [r1]
ldr r4, [r3]
adds r4, r2
adds r0, r5, 0
movs r1, 0x3
str r3, [sp, 0x4]
bl __udivsi3
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
movs r1, 0xF
ands r0, r1
lsls r1, r6, 4
adds r0, r1
ldr r1, _0814577C
adds r0, r1
ldrb r1, [r4]
ldrb r0, [r0]
orrs r1, r0
strb r1, [r4]
subs r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _0814576C
ldr r0, [r2]
ldr r3, [sp, 0x4]
ldrb r0, [r0, 0x12]
cmp r5, r0
bhi _08145700
b _081457EA
.align 2, 0
_08145764: .4byte 0x40920000
_08145768: .4byte 0x00000000
_0814576C: .4byte 0x0203ab90
_08145770: .4byte gUnknown_085B8C30
_08145774: .4byte 0x0203ab94
_08145778: .4byte gUnknown_085B8770
_0814577C: .4byte gUnknown_085B8C32
_08145780:
lsls r3, r6, 4
mov r10, r3
ldr r7, _08145804
adds r0, r6, r0
ldrb r0, [r0]
mov r9, r0
movs r6, 0x7
ands r6, r4
_08145790:
lsls r1, r5, 1
lsls r0, r6, 3
adds r0, r6
lsls r0, 4
adds r1, r0
ldr r4, _08145808
adds r1, r4
mov r2, r8
lsls r0, r2, 5
ldrh r1, [r1]
adds r0, r1
lsls r0, 16
lsrs r2, r0, 16
ldr r1, [r7]
adds r1, r2
ldrb r0, [r1]
mov r3, r9
ands r0, r3
strb r0, [r1]
ldr r4, [r7]
adds r4, r2
adds r0, r5, 0
movs r1, 0x3
bl __udivsi3
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
movs r1, 0xF
ands r0, r1
add r0, r10
ldr r1, _0814580C
adds r0, r1
ldrb r1, [r4]
ldrb r0, [r0]
orrs r1, r0
strb r1, [r4]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _08145810
ldr r0, [r2]
ldrb r0, [r0, 0x12]
cmp r5, r0
bcc _08145790
_081457EA:
ldr r3, _08145810
ldr r0, [r3]
mov r4, sp
ldrb r4, [r4]
strb r4, [r0, 0x12]
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08145804: .4byte 0x0203ab94
_08145808: .4byte gUnknown_085B8770
_0814580C: .4byte gUnknown_085B8C32
_08145810: .4byte 0x0203ab90
thumb_func_end sub_81456A8
thumb_func_start sub_8145814
sub_8145814: @ 8145814
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_8145814
thumb_func_start sub_8145824
sub_8145824: @ 8145824
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 24
cmp r2, 0
bne _08145848
movs r1, 0
bl GetWindowAttribute
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 16
asrs r1, 8
movs r2, 0
bl ChangeBgX
_08145848:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8145824
thumb_func_start sub_8145850
sub_8145850: @ 8145850
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
lsls r1, 24
lsrs r7, r1, 24
movs r0, 0
mov r8, r0
ldr r6, =0x030061ec
ldrb r0, [r6]
cmp r0, 0
beq _08145874
cmp r0, 0x1
beq _081458B0
b _081458F8
.pool
_08145874:
ldr r5, =0x0203ab98
ldr r0, [r5]
cmp r0, 0
bne _08145884
movs r0, 0x8
bl AllocZeroed
str r0, [r5]
_08145884:
ldr r1, =gUnknown_085B8438
adds r0, r7, 0
movs r2, 0
movs r3, 0
bl CopyToWindowPixelBuffer
ldr r0, =gUnknown_085B8418
ldrb r1, [r4, 0x3]
lsls r1, 4
movs r2, 0x20
bl gpu_pal_apply
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
b _081458F8
.pool
_081458B0:
ldr r0, =gUnknown_085B8C80
bl LoadObjectPics
ldr r0, =gUnknown_085B8C90
bl LoadTaggedObjectPalettes
ldr r0, =gUnknown_085B8C68
ldrb r1, [r4, 0x4]
lsls r1, 19
movs r2, 0xA0
lsls r2, 14
adds r1, r2
asrs r1, 16
ldrb r2, [r4, 0x5]
lsls r2, 19
movs r3, 0xE0
lsls r3, 14
adds r2, r3
asrs r2, 16
movs r3, 0x1
bl AddObjectToFront
ldr r2, =0x0203ab98
ldr r3, [r2]
lsls r0, 24
lsrs r0, 24
movs r4, 0
strh r0, [r3, 0x4]
movs r1, 0x20
strb r1, [r3]
ldr r0, [r2]
strb r1, [r0, 0x1]
ldr r0, [r2]
strb r4, [r0, 0x2]
movs r0, 0x1
mov r8, r0
_081458F8:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.pool
thumb_func_end sub_8145850
thumb_func_start sub_8145914
sub_8145914: @ 8145914
push {r4-r6,lr}
ldr r4, =0x02020630
ldr r6, =0x0203ab98
ldr r0, [r6]
ldrh r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r0, [r0, 0x5]
lsrs r0, 4
bl GetObjectPaletteTagBySlot
lsls r0, 16
lsrs r0, 16
bl FreeObjectPaletteByTag
ldr r0, [r6]
ldrh r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl RemoveObjectAndFreeTiles
ldr r4, =0x0203ab90
ldr r0, [r4]
bl Free
movs r5, 0
str r5, [r4]
ldr r0, [r6]
bl Free
str r5, [r6]
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_8145914
thumb_func_start sub_814596C
sub_814596C: @ 814596C
push {r4-r7,lr}
sub sp, 0x14
adds r7, r0, 0
ldr r3, =0x02020630
ldr r4, =0x0203ab98
ldr r0, [r4]
ldrh r1, [r0, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r2, [r0, 0x1]
movs r1, 0x4
negs r1, r1
ands r1, r2
movs r2, 0x1
orrs r1, r2
strb r1, [r0, 0x1]
ldr r2, [r4]
ldrh r1, [r2, 0x4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x6]
ldr r0, =0x0203ab90
ldr r0, [r0]
ldrb r1, [r0, 0x10]
cmp r1, 0x2
beq _081459E8
cmp r1, 0x2
bgt _081459C0
cmp r1, 0
beq _081459C6
b _08145A2E
.pool
_081459C0:
cmp r1, 0x6
beq _08145A20
b _08145A2E
_081459C6:
movs r0, 0x20
strb r0, [r2, 0x1]
ldr r1, [r4]
movs r0, 0
ldrsb r0, [r1, r0]
cmp r0, 0
ble _081459E2
ldrb r0, [r1, 0x2]
add r4, sp, 0xC
cmp r0, 0x1
beq _08145A30
subs r0, 0x1
strb r0, [r1, 0x2]
b _08145A30
_081459E2:
movs r0, 0x5
strb r0, [r1, 0x2]
b _08145A2E
_081459E8:
movs r3, 0
movs r2, 0
add r4, sp, 0xC
adds r5, r0, 0
_081459F0:
lsls r1, r3, 24
asrs r1, 24
adds r0, r5, r2
ldrb r0, [r0]
cmp r1, r0
bge _081459FE
adds r3, r0, 0
_081459FE:
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0xF
bls _081459F0
lsls r0, r3, 24
asrs r0, 24
movs r1, 0xD0
muls r0, r1
cmp r0, 0
bge _08145A16
adds r0, 0xFF
_08145A16:
lsls r0, 16
asrs r0, 24
bl sub_8145B24
b _08145A30
_08145A20:
ldrb r1, [r0, 0xA]
movs r0, 0xD0
muls r0, r1
lsls r0, 16
asrs r0, 24
bl sub_8145B24
_08145A2E:
add r4, sp, 0xC
_08145A30:
ldr r0, =0x0203ab98
ldr r2, [r0]
ldrb r5, [r2]
movs r1, 0
ldrsb r1, [r2, r1]
movs r3, 0x1
ldrsb r3, [r2, r3]
adds r6, r0, 0
cmp r1, r3
beq _08145A82
cmp r1, r3
bge _08145A64
ldrb r0, [r2, 0x2]
adds r0, r5, r0
strb r0, [r2]
ldr r2, [r6]
movs r1, 0
ldrsb r1, [r2, r1]
ldrb r3, [r2, 0x1]
movs r0, 0x1
ldrsb r0, [r2, r0]
cmp r1, r0
ble _08145A82
b _08145A7A
.pool
_08145A64:
ldrb r0, [r2, 0x2]
subs r0, r5, r0
strb r0, [r2]
ldr r2, [r6]
movs r1, 0
ldrsb r1, [r2, r1]
ldrb r3, [r2, 0x1]
movs r0, 0x1
ldrsb r0, [r2, r0]
cmp r1, r0
bge _08145A82
_08145A7A:
strb r3, [r2]
ldr r1, [r6]
movs r0, 0
strb r0, [r1, 0x1]
_08145A82:
ldr r2, =0xffff0000
ldr r0, [sp, 0x4]
ands r0, r2
movs r1, 0x80
lsls r1, 1
orrs r0, r1
ldr r1, =0x0000ffff
ands r0, r1
movs r1, 0x80
lsls r1, 17
orrs r0, r1
str r0, [sp, 0x4]
ldr r0, [r6]
movs r1, 0
ldrsb r1, [r0, r1]
lsls r1, 24
lsrs r1, 16
ldr r0, [sp, 0x8]
ands r0, r2
orrs r0, r1
str r0, [sp, 0x8]
add r0, sp, 0x4
adds r1, r4, 0
movs r2, 0x1
movs r3, 0x2
bl ObjAffineSet
add r0, sp, 0xC
ldrh r1, [r0]
ldrh r2, [r4, 0x2]
ldrh r3, [r4, 0x4]
ldrh r0, [r4, 0x6]
str r0, [sp]
movs r0, 0
bl SetSpriteTransformationMatrix
ldr r2, =gUnknown_08329F40
ldr r0, [r6]
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
adds r0, 0x7F
movs r1, 0xFF
ands r0, r1
lsls r1, r0, 1
adds r1, r2
adds r0, 0x40
lsls r0, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0
ldrsh r1, [r1, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
cmp r0, 0
bge _08145AF6
adds r0, 0xFF
_08145AF6:
asrs r0, 8
strh r0, [r7, 0x24]
lsls r1, r2, 16
asrs r1, 16
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
cmp r0, 0
bge _08145B0A
adds r0, 0xFF
_08145B0A:
asrs r0, 8
strh r0, [r7, 0x26]
add sp, 0x14
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_814596C
thumb_func_start sub_8145B24
sub_8145B24: @ 8145B24
push {lr}
lsls r0, 24
asrs r0, 24
movs r1, 0x20
subs r2, r1, r0
movs r0, 0xFF
ands r2, r0
adds r0, r2, 0
subs r0, 0x21
lsls r0, 16
lsrs r0, 16
cmp r0, 0xBE
bhi _08145B40
movs r2, 0xE0
_08145B40:
ldr r1, =0x0203ab98
ldr r0, [r1]
strb r2, [r0, 0x1]
ldr r1, [r1]
movs r0, 0x5
strb r0, [r1, 0x2]
pop {r0}
bx r0
.pool
thumb_func_end sub_8145B24
.align 2, 0 @ Don't pad with nop.