mirror of
https://github.com/YohannDR/mzm.git
synced 2025-03-02 18:48:18 +00:00
2059 lines
40 KiB
ArmAsm
2059 lines
40 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
thumb_func_start sub_0807f120
|
|
sub_0807f120: @ 0x0807f120
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
adds r4, r1, #0
|
|
lsls r2, r2, #0x18
|
|
lsrs r5, r2, #0x18
|
|
movs r3, #0
|
|
cmp r3, r4
|
|
bge lbl_0807f140
|
|
lbl_0807f130:
|
|
adds r2, r6, r3
|
|
ldrb r1, [r2]
|
|
adds r0, r5, #0
|
|
eors r0, r1
|
|
strb r0, [r2]
|
|
adds r3, #1
|
|
cmp r3, r4
|
|
blt lbl_0807f130
|
|
lbl_0807f140:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start get_value_from_seed
|
|
get_value_from_seed: @ 0x0807f148
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
adds r2, r1, #0
|
|
adds r0, r2, #0
|
|
cmp r2, #0
|
|
bge lbl_0807f156
|
|
adds r0, r2, #7
|
|
lbl_0807f156:
|
|
asrs r0, r0, #3
|
|
lsls r1, r0, #3
|
|
subs r1, r2, r1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x1f
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f16c
|
|
sub_0807f16c: @ 0x0807f16c
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
adds r0, r1, #0
|
|
adds r3, r2, #0
|
|
movs r4, #1
|
|
ands r3, r4
|
|
adds r2, r0, #0
|
|
cmp r0, #0
|
|
bge lbl_0807f180
|
|
adds r2, r0, #7
|
|
lbl_0807f180:
|
|
asrs r2, r2, #3
|
|
lsls r1, r2, #3
|
|
subs r1, r0, r1
|
|
movs r0, #7
|
|
subs r0, r0, r1
|
|
lsls r3, r0
|
|
lsls r4, r0
|
|
lsls r0, r4, #0x18
|
|
lsrs r4, r0, #0x18
|
|
adds r2, r5, r2
|
|
ldrb r0, [r2]
|
|
bics r0, r4
|
|
orrs r0, r3
|
|
strb r0, [r2]
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f1a4
|
|
sub_0807f1a4: @ 0x0807f1a4
|
|
push {r4, r5, r6, lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
adds r6, r2, #0
|
|
bl get_value_from_seed
|
|
mov r8, r0
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
bl get_value_from_seed
|
|
adds r2, r0, #0
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f16c
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
mov r2, r8
|
|
bl sub_0807f16c
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start sub_0807f1dc
|
|
sub_0807f1dc: @ 0x0807f1dc
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
lsls r5, r1, #2
|
|
movs r4, #0
|
|
cmp r4, r5
|
|
bge lbl_0807f1f8
|
|
lbl_0807f1e8:
|
|
adds r2, r4, r5
|
|
adds r0, r6, #0
|
|
adds r1, r4, #0
|
|
bl sub_0807f1a4
|
|
adds r4, #2
|
|
cmp r4, r5
|
|
blt lbl_0807f1e8
|
|
lbl_0807f1f8:
|
|
pop {r4, r5, r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f200
|
|
sub_0807f200: @ 0x0807f200
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
lsls r6, r1, #2
|
|
lsls r1, r1, #3
|
|
subs r5, r1, #1
|
|
movs r4, #0
|
|
cmp r4, r6
|
|
bge lbl_0807f222
|
|
lbl_0807f210:
|
|
adds r0, r7, #0
|
|
adds r1, r4, #0
|
|
adds r2, r5, #0
|
|
bl sub_0807f1a4
|
|
adds r4, #1
|
|
subs r5, #1
|
|
cmp r4, r6
|
|
blt lbl_0807f210
|
|
lbl_0807f222:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start sub_0807f228
|
|
sub_0807f228: @ 0x0807f228
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
lsls r0, r1, #3
|
|
movs r1, #9
|
|
bl __divsi3
|
|
adds r6, r0, #0
|
|
adds r5, r6, #0
|
|
movs r4, #0
|
|
cmp r4, r6
|
|
bge lbl_0807f250
|
|
lbl_0807f23e:
|
|
adds r0, r7, #0
|
|
adds r1, r4, #0
|
|
adds r2, r5, #0
|
|
bl sub_0807f1a4
|
|
adds r4, #1
|
|
adds r5, #8
|
|
cmp r4, r6
|
|
blt lbl_0807f23e
|
|
lbl_0807f250:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f258
|
|
sub_0807f258: @ 0x0807f258
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
adds r6, r1, #0
|
|
adds r5, r6, #0
|
|
movs r4, #0
|
|
cmp r4, r6
|
|
bge lbl_0807f278
|
|
lbl_0807f266:
|
|
adds r0, r7, #0
|
|
adds r1, r4, #0
|
|
adds r2, r5, #0
|
|
bl sub_0807f1a4
|
|
adds r4, #1
|
|
adds r5, #7
|
|
cmp r4, r6
|
|
blt lbl_0807f266
|
|
lbl_0807f278:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f280
|
|
sub_0807f280: @ 0x0807f280
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
lsls r0, r1, #3
|
|
movs r1, #6
|
|
bl __divsi3
|
|
adds r6, r0, #0
|
|
adds r5, r6, #0
|
|
movs r4, #0
|
|
cmp r4, r6
|
|
bge lbl_0807f2a8
|
|
lbl_0807f296:
|
|
adds r0, r7, #0
|
|
adds r1, r4, #0
|
|
adds r2, r5, #0
|
|
bl sub_0807f1a4
|
|
adds r4, #1
|
|
adds r5, #5
|
|
cmp r4, r6
|
|
blt lbl_0807f296
|
|
lbl_0807f2a8:
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start generate_time_attack_password
|
|
generate_time_attack_password: @ 0x0807f2b0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x14
|
|
adds r7, r0, #0
|
|
mov sb, r1
|
|
cmp r2, #0
|
|
ble lbl_0807f354
|
|
movs r0, #4
|
|
str r0, [sp]
|
|
movs r1, #3
|
|
str r1, [sp, #4]
|
|
movs r0, #2
|
|
str r0, [sp, #8]
|
|
movs r1, #1
|
|
str r1, [sp, #0xc]
|
|
movs r0, #0
|
|
str r0, [sp, #0x10]
|
|
mov sl, r2
|
|
lbl_0807f2da:
|
|
adds r0, r7, #0
|
|
ldr r1, [sp, #0x10]
|
|
bl get_value_from_seed
|
|
adds r4, r0, #0
|
|
adds r0, r7, #0
|
|
ldr r1, [sp, #0xc]
|
|
bl get_value_from_seed
|
|
mov r8, r0
|
|
adds r0, r7, #0
|
|
ldr r1, [sp, #8]
|
|
bl get_value_from_seed
|
|
adds r6, r0, #0
|
|
adds r0, r7, #0
|
|
ldr r1, [sp, #4]
|
|
bl get_value_from_seed
|
|
adds r5, r0, #0
|
|
adds r0, r7, #0
|
|
ldr r1, [sp]
|
|
bl get_value_from_seed
|
|
lsls r4, r4, #4
|
|
mov r1, r8
|
|
lsls r1, r1, #3
|
|
orrs r4, r1
|
|
lsls r6, r6, #2
|
|
orrs r4, r6
|
|
lsls r5, r5, #1
|
|
orrs r4, r5
|
|
orrs r4, r0
|
|
ldr r0, lbl_0807f36c @ =0x0845fcf4
|
|
adds r4, r4, r0
|
|
ldrb r0, [r4]
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
add sb, r0
|
|
ldr r1, [sp]
|
|
adds r1, #5
|
|
str r1, [sp]
|
|
ldr r0, [sp, #4]
|
|
adds r0, #5
|
|
str r0, [sp, #4]
|
|
ldr r1, [sp, #8]
|
|
adds r1, #5
|
|
str r1, [sp, #8]
|
|
ldr r0, [sp, #0xc]
|
|
adds r0, #5
|
|
str r0, [sp, #0xc]
|
|
ldr r1, [sp, #0x10]
|
|
adds r1, #5
|
|
str r1, [sp, #0x10]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
add sl, r0
|
|
mov r1, sl
|
|
cmp r1, #0
|
|
bne lbl_0807f2da
|
|
lbl_0807f354:
|
|
movs r0, #0
|
|
mov r1, sb
|
|
strb r0, [r1]
|
|
add sp, #0x14
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
lbl_0807f36c: .4byte 0x0845fcf4
|
|
|
|
thumb_func_start is_save_file_not_legit
|
|
is_save_file_not_legit: @ 0x0807f370
|
|
push {r4, r5, lr}
|
|
sub sp, #0x10
|
|
movs r4, #0
|
|
ldr r5, lbl_0807f3e0 @ =gInGameTimerAtBosses
|
|
lbl_0807f378:
|
|
lsls r2, r4, #2
|
|
mov r0, sp
|
|
adds r3, r0, r2
|
|
adds r2, r2, r5
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #0x18
|
|
ldrb r0, [r2, #1]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #3]
|
|
adds r1, r1, r0
|
|
str r1, [r3]
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls lbl_0807f378
|
|
movs r4, #0
|
|
lbl_0807f3a2:
|
|
adds r1, r4, #1
|
|
lsls r0, r1, #0x18
|
|
lsrs r3, r0, #0x18
|
|
lsls r2, r4, #2
|
|
adds r4, r1, #0
|
|
cmp r3, #3
|
|
bhi lbl_0807f3ca
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
ldr r1, [r0]
|
|
lbl_0807f3b6:
|
|
lsls r0, r3, #2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bhs lbl_0807f3da
|
|
adds r0, r3, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #3
|
|
bls lbl_0807f3b6
|
|
lbl_0807f3ca:
|
|
mov r0, sp
|
|
adds r1, r0, r2
|
|
ldr r0, lbl_0807f3e4 @ =0x0845fd14
|
|
adds r0, r2, r0
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bhi lbl_0807f3e8
|
|
lbl_0807f3da:
|
|
movs r0, #0
|
|
b lbl_0807f3f2
|
|
.align 2, 0
|
|
lbl_0807f3e0: .4byte gInGameTimerAtBosses
|
|
lbl_0807f3e4: .4byte 0x0845fd14
|
|
lbl_0807f3e8:
|
|
lsls r0, r4, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls lbl_0807f3a2
|
|
movs r0, #1
|
|
lbl_0807f3f2:
|
|
add sp, #0x10
|
|
pop {r4, r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f3fc
|
|
sub_0807f3fc: @ 0x0807f3fc
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
sub sp, #0x30
|
|
ldr r7, lbl_0807f604 @ =gFileScreenOptionsUnlocked
|
|
ldr r0, [r7, #8]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq lbl_0807f414
|
|
b lbl_0807f5f4
|
|
lbl_0807f414:
|
|
bl is_save_file_not_legit
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne lbl_0807f420
|
|
b lbl_0807f5f4
|
|
lbl_0807f420:
|
|
bl ChozodiaEscapeGetPercentAndEndingNumber
|
|
adds r3, r0, #0
|
|
movs r0, #0xff
|
|
lsrs r1, r3, #0x18
|
|
lsrs r6, r3, #0x10
|
|
ands r6, r0
|
|
lsrs r5, r3, #0xc
|
|
movs r0, #0xf
|
|
ands r5, r0
|
|
lsrs r4, r3, #8
|
|
ands r4, r0
|
|
lsrs r2, r3, #4
|
|
ands r2, r0
|
|
cmp r1, #0xc
|
|
bls lbl_0807f442
|
|
b lbl_0807f5f4
|
|
lbl_0807f442:
|
|
cmp r6, #0x32
|
|
bls lbl_0807f448
|
|
b lbl_0807f5f4
|
|
lbl_0807f448:
|
|
cmp r5, #0xf
|
|
bls lbl_0807f44e
|
|
b lbl_0807f5f4
|
|
lbl_0807f44e:
|
|
cmp r4, #9
|
|
bls lbl_0807f454
|
|
b lbl_0807f5f4
|
|
lbl_0807f454:
|
|
cmp r2, #0xe
|
|
bls lbl_0807f45a
|
|
b lbl_0807f5f4
|
|
lbl_0807f45a:
|
|
cmp r2, #7
|
|
bhi lbl_0807f460
|
|
b lbl_0807f5f4
|
|
lbl_0807f460:
|
|
cmp r6, #0
|
|
bne lbl_0807f466
|
|
b lbl_0807f5f4
|
|
lbl_0807f466:
|
|
movs r4, #0
|
|
mov sb, r7
|
|
add r3, sp, #0x10
|
|
movs r1, #0
|
|
lbl_0807f46e:
|
|
lsls r0, r4, #2
|
|
add r0, sp
|
|
str r1, [r0]
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls lbl_0807f46e
|
|
movs r4, #0
|
|
ldr r6, lbl_0807f608 @ =gInGameTimerAtBosses
|
|
lbl_0807f482:
|
|
lsls r2, r4, #2
|
|
adds r2, r2, r6
|
|
ldrb r1, [r2]
|
|
ldr r0, [sp]
|
|
adds r5, r0, r1
|
|
str r5, [sp]
|
|
ldrb r1, [r2, #1]
|
|
ldr r0, [sp, #4]
|
|
adds r0, r0, r1
|
|
str r0, [sp, #4]
|
|
ldrb r1, [r2, #2]
|
|
ldr r0, [sp, #8]
|
|
adds r0, r0, r1
|
|
str r0, [sp, #8]
|
|
ldrb r1, [r2, #3]
|
|
ldr r0, [sp, #0xc]
|
|
adds r1, r0, r1
|
|
str r1, [sp, #0xc]
|
|
adds r0, r4, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls lbl_0807f482
|
|
movs r0, #0x1f
|
|
ands r5, r0
|
|
str r5, [sp]
|
|
lsrs r0, r1, #7
|
|
movs r1, #1
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
ldr r0, [sp, #4]
|
|
movs r2, #1
|
|
ands r0, r2
|
|
strb r0, [r3, #1]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #7
|
|
ands r0, r1
|
|
strb r0, [r3, #2]
|
|
ldr r0, [sp, #0xc]
|
|
lsrs r0, r0, #6
|
|
ands r0, r1
|
|
strb r0, [r3, #3]
|
|
ldr r0, [sp]
|
|
ands r0, r2
|
|
strb r0, [r3, #4]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #1
|
|
ands r0, r1
|
|
strb r0, [r3, #5]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #6
|
|
ands r0, r1
|
|
strb r0, [r3, #6]
|
|
ldr r0, [sp, #0xc]
|
|
lsrs r0, r0, #5
|
|
ands r0, r1
|
|
strb r0, [r3, #7]
|
|
ldr r0, [sp]
|
|
lsrs r0, r0, #1
|
|
ands r0, r1
|
|
strb r0, [r3, #8]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #5
|
|
ands r0, r1
|
|
strb r0, [r3, #9]
|
|
ldr r0, [sp, #0xc]
|
|
lsrs r0, r0, #4
|
|
ands r0, r1
|
|
strb r0, [r3, #0xa]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #2
|
|
ands r0, r1
|
|
strb r0, [r3, #0xb]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #4
|
|
ands r0, r1
|
|
strb r0, [r3, #0xc]
|
|
ldr r0, [sp, #0xc]
|
|
lsrs r0, r0, #3
|
|
ands r0, r1
|
|
strb r0, [r3, #0xd]
|
|
ldr r0, [sp]
|
|
lsrs r0, r0, #2
|
|
ands r0, r1
|
|
strb r0, [r3, #0xe]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #3
|
|
ands r0, r1
|
|
strb r0, [r3, #0xf]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #7
|
|
ands r0, r1
|
|
strb r0, [r3, #0x10]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #3
|
|
ands r0, r1
|
|
strb r0, [r3, #0x11]
|
|
ldr r0, [sp]
|
|
lsrs r0, r0, #3
|
|
ands r0, r1
|
|
strb r0, [r3, #0x12]
|
|
ldr r0, [sp, #0xc]
|
|
lsrs r0, r0, #2
|
|
ands r0, r1
|
|
strb r0, [r3, #0x13]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #2
|
|
ands r0, r1
|
|
strb r0, [r3, #0x14]
|
|
ldr r0, [sp, #0xc]
|
|
lsrs r0, r0, #1
|
|
ands r0, r1
|
|
strb r0, [r3, #0x15]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #4
|
|
ands r0, r1
|
|
strb r0, [r3, #0x16]
|
|
ldr r0, [sp, #8]
|
|
lsrs r0, r0, #1
|
|
ands r0, r1
|
|
strb r0, [r3, #0x17]
|
|
ldr r0, [sp, #8]
|
|
ands r0, r2
|
|
strb r0, [r3, #0x18]
|
|
ldr r0, [sp, #0xc]
|
|
ands r0, r2
|
|
strb r0, [r3, #0x19]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #6
|
|
ands r0, r1
|
|
strb r0, [r3, #0x1a]
|
|
ldr r0, [sp]
|
|
lsrs r0, r0, #4
|
|
ands r0, r1
|
|
strb r0, [r3, #0x1b]
|
|
ldr r0, [sp, #4]
|
|
lsrs r0, r0, #5
|
|
ands r0, r1
|
|
strb r0, [r3, #0x1c]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
strb r0, [r3, #0x1d]
|
|
movs r0, #2
|
|
ands r0, r2
|
|
strb r0, [r3, #0x1e]
|
|
strb r2, [r3, #0x1f]
|
|
movs r0, #0
|
|
mov r8, r0
|
|
movs r1, #0x18
|
|
mov ip, r1
|
|
movs r4, #0
|
|
adds r7, r3, #0
|
|
lbl_0807f5b2:
|
|
movs r3, #0
|
|
movs r2, #7
|
|
movs r1, #0
|
|
adds r6, r4, #1
|
|
mov r5, ip
|
|
subs r5, #8
|
|
lsls r4, r4, #3
|
|
lbl_0807f5c0:
|
|
adds r0, r4, r1
|
|
adds r0, r7, r0
|
|
ldrb r0, [r0]
|
|
lsls r0, r2
|
|
adds r3, r3, r0
|
|
subs r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
adds r0, r1, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #7
|
|
bls lbl_0807f5c0
|
|
mov r0, ip
|
|
lsls r3, r0
|
|
add r8, r3
|
|
lsls r0, r5, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov ip, r0
|
|
lsls r0, r6, #0x18
|
|
lsrs r4, r0, #0x18
|
|
cmp r4, #3
|
|
bls lbl_0807f5b2
|
|
mov r1, r8
|
|
mov r0, sb
|
|
str r1, [r0, #8]
|
|
lbl_0807f5f4:
|
|
add sp, #0x30
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
lbl_0807f604: .4byte gFileScreenOptionsUnlocked
|
|
lbl_0807f608: .4byte gInGameTimerAtBosses
|
|
|
|
thumb_func_start sub_0807f60c
|
|
sub_0807f60c: @ 0x0807f60c
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
ldr r0, lbl_0807f620 @ =gFileScreenOptionsUnlocked
|
|
ldr r1, [r0, #8]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne lbl_0807f624
|
|
movs r0, #0
|
|
b lbl_0807f688
|
|
.align 2, 0
|
|
lbl_0807f620: .4byte gFileScreenOptionsUnlocked
|
|
lbl_0807f624:
|
|
adds r3, r1, #0
|
|
movs r4, #0
|
|
movs r2, #0x1f
|
|
movs r1, #0
|
|
movs r5, #1
|
|
lbl_0807f62e:
|
|
adds r0, r3, #0
|
|
lsrs r0, r1
|
|
ands r0, r5
|
|
lsls r0, r2
|
|
adds r4, r4, r0
|
|
subs r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
adds r0, r1, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #0x1f
|
|
bls lbl_0807f62e
|
|
lsls r0, r4, #3
|
|
lsrs r4, r0, #6
|
|
ldr r3, lbl_0807f690 @ =0x00989680
|
|
movs r1, #0
|
|
lbl_0807f650:
|
|
movs r2, #0
|
|
adds r5, r1, #1
|
|
cmp r4, r3
|
|
blo lbl_0807f664
|
|
lbl_0807f658:
|
|
subs r4, r4, r3
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r4, r3
|
|
bhs lbl_0807f658
|
|
lbl_0807f664:
|
|
adds r1, r6, r1
|
|
adds r0, r2, #0
|
|
adds r0, #0x30
|
|
strb r0, [r1]
|
|
adds r0, r3, #0
|
|
movs r1, #0xa
|
|
bl __udivsi3
|
|
adds r3, r0, #0
|
|
lsls r0, r5, #0x18
|
|
lsrs r1, r0, #0x18
|
|
cmp r1, #6
|
|
bls lbl_0807f650
|
|
adds r1, r6, r1
|
|
adds r0, r4, #0
|
|
adds r0, #0x30
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
lbl_0807f688:
|
|
pop {r4, r5, r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
lbl_0807f690: .4byte 0x00989680
|
|
|
|
thumb_func_start sub_0807f694
|
|
sub_0807f694: @ 0x0807f694
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x46
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x49
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start sub_0807f6d8
|
|
sub_0807f6d8: @ 0x0807f6d8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x90
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x5e
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start sub_0807f71c
|
|
sub_0807f71c: @ 0x0807f71c
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x91
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0xe3
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start sub_0807f760
|
|
sub_0807f760: @ 0x0807f760
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x59
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x63
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x39
|
|
bl sub_0807f120
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f7b0
|
|
sub_0807f7b0: @ 0x0807f7b0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x95
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0xfc
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
|
|
thumb_func_start sub_0807f7f4
|
|
sub_0807f7f4: @ 0x0807f7f4
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x4d
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x4a
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x53
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f844
|
|
sub_0807f844: @ 0x0807f844
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x41
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x59
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x4f
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0807f89c
|
|
sub_0807f89c: @ 0x0807f89c
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
movs r2, #0x54
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f228
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x4f
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f1dc
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f200
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x4d
|
|
bl sub_0807f120
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f258
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0807f280
|
|
pop {r4, r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start randomize_time_attack_password_seed
|
|
randomize_time_attack_password_seed: @ 0x0807f8fc
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
ldrb r4, [r0]
|
|
movs r2, #0x80
|
|
mov ip, r2
|
|
movs r3, #0x80
|
|
ands r3, r4
|
|
ldrb r5, [r0, #4]
|
|
movs r2, #0x40
|
|
ands r2, r5
|
|
orrs r3, r2
|
|
ldrb r6, [r0, #8]
|
|
movs r7, #0x20
|
|
mov sl, r7
|
|
movs r2, #0x20
|
|
ands r2, r6
|
|
orrs r3, r2
|
|
ldrb r2, [r0, #0xa]
|
|
mov r8, r2
|
|
movs r7, #0x10
|
|
mov sb, r7
|
|
movs r2, #0x10
|
|
mov r7, r8
|
|
ands r2, r7
|
|
orrs r3, r2
|
|
strb r3, [r0, #0xc]
|
|
movs r3, #0x7f
|
|
ands r3, r4
|
|
movs r4, #0xbf
|
|
ands r4, r5
|
|
movs r5, #0xdf
|
|
ands r5, r6
|
|
movs r6, #0xef
|
|
mov r2, r8
|
|
ands r6, r2
|
|
lsls r1, r1, #4
|
|
adds r2, r1, #0
|
|
mov r7, ip
|
|
ands r2, r7
|
|
orrs r3, r2
|
|
strb r3, [r0]
|
|
adds r2, r1, #0
|
|
movs r3, #0x40
|
|
ands r2, r3
|
|
orrs r4, r2
|
|
strb r4, [r0, #4]
|
|
adds r2, r1, #0
|
|
mov r7, sl
|
|
ands r2, r7
|
|
orrs r5, r2
|
|
strb r5, [r0, #8]
|
|
mov r2, sb
|
|
ands r1, r2
|
|
orrs r6, r1
|
|
strb r6, [r0, #0xa]
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
|
|
thumb_func_start generate_time_attack_password_seed
|
|
generate_time_attack_password_seed: @ 0x0807f980
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x10
|
|
adds r7, r0, #0
|
|
movs r5, #0
|
|
movs r4, #1
|
|
adds r6, r7, #0
|
|
adds r6, #0x25
|
|
mov ip, r6
|
|
movs r3, #0x1f
|
|
lbl_0807f99a:
|
|
mov r0, ip
|
|
adds r2, r0, r5
|
|
ldr r1, [r7]
|
|
ands r1, r4
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r2]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807f99a
|
|
movs r4, #1
|
|
movs r1, #0x10
|
|
adds r1, r1, r7
|
|
mov sl, r1
|
|
adds r2, r6, #0
|
|
movs r3, #6
|
|
lbl_0807f9c0:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #4]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807f9c0
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #5
|
|
lbl_0807f9dc:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #5]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807f9dc
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #5
|
|
lbl_0807f9f8:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #6]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807f9f8
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #5
|
|
lbl_0807fa14:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #7]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fa14
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #4
|
|
lbl_0807fa30:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #8]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fa30
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #3
|
|
lbl_0807fa4c:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #9]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fa4c
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #3
|
|
lbl_0807fa68:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #0xa]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fa68
|
|
movs r4, #1
|
|
adds r1, r6, r5
|
|
ldrb r0, [r7, #0xb]
|
|
ands r0, r4
|
|
strb r0, [r1]
|
|
adds r5, #1
|
|
adds r1, r6, r5
|
|
ldrb r0, [r7, #0xc]
|
|
ands r0, r4
|
|
strb r0, [r1]
|
|
adds r5, #1
|
|
adds r2, r6, #0
|
|
movs r3, #7
|
|
lbl_0807fa98:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #0xd]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fa98
|
|
movs r4, #1
|
|
adds r2, r6, #0
|
|
movs r3, #7
|
|
lbl_0807fab4:
|
|
adds r1, r2, r5
|
|
ldrb r0, [r7, #0xe]
|
|
ands r0, r4
|
|
rsbs r0, r0, #0
|
|
lsrs r0, r0, #0x1f
|
|
strb r0, [r1]
|
|
lsls r4, r4, #1
|
|
adds r5, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fab4
|
|
movs r2, #0
|
|
mov ip, r2
|
|
movs r5, #0
|
|
ldrb r3, [r7, #0xf]
|
|
mov sb, r3
|
|
mov r8, r6
|
|
lbl_0807fad6:
|
|
movs r4, #0
|
|
movs r1, #0
|
|
adds r6, r5, #1
|
|
lsls r0, r5, #3
|
|
mov r3, r8
|
|
adds r2, r0, r3
|
|
movs r3, #7
|
|
lbl_0807fae4:
|
|
ldrb r0, [r2]
|
|
lsls r0, r4
|
|
adds r0, r1, r0
|
|
lsls r0, r0, #0x18
|
|
lsrs r1, r0, #0x18
|
|
adds r4, #1
|
|
adds r2, #1
|
|
subs r3, #1
|
|
cmp r3, #0
|
|
bge lbl_0807fae4
|
|
mov r2, sp
|
|
adds r0, r2, r5
|
|
strb r1, [r0]
|
|
add ip, r1
|
|
adds r5, r6, #0
|
|
cmp r6, #0xa
|
|
ble lbl_0807fad6
|
|
adds r0, r2, r6
|
|
mov r3, ip
|
|
strb r3, [r0]
|
|
mov r1, sb
|
|
lsls r0, r1, #2
|
|
ldr r2, lbl_0807fb44 @ =0x08760c68
|
|
adds r0, r0, r2
|
|
ldr r2, [r0]
|
|
mov r0, sp
|
|
movs r1, #0xc
|
|
bl _call_via_r2
|
|
ldrb r1, [r7, #0xf]
|
|
mov r0, sp
|
|
bl randomize_time_attack_password_seed
|
|
mov r0, sp
|
|
mov r1, sl
|
|
movs r2, #0x14
|
|
bl generate_time_attack_password
|
|
movs r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
lbl_0807fb44: .4byte 0x08760c68
|
|
|
|
thumb_func_start check_set_new_time_attack_record
|
|
check_set_new_time_attack_record: @ 0x0807fb48
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0xc
|
|
ldr r2, lbl_0807fbf8 @ =gInGameTimer
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #0x18
|
|
ldrb r0, [r2, #1]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #2]
|
|
lsls r0, r0, #8
|
|
adds r6, r1, r0
|
|
ldr r2, lbl_0807fbfc @ =gTimeAttackRecord
|
|
ldrb r1, [r2, #0x14]
|
|
lsls r1, r1, #0x18
|
|
ldrb r0, [r2, #0x15]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
ldrb r0, [r2, #0x16]
|
|
lsls r0, r0, #8
|
|
adds r1, r1, r0
|
|
str r1, [sp, #8]
|
|
adds r0, r2, #0
|
|
adds r0, #0x2c
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #0x18
|
|
adds r0, #1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x10
|
|
adds r1, r1, r0
|
|
adds r0, r2, #0
|
|
adds r0, #0x2e
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #8
|
|
adds r5, r1, r0
|
|
bl ChozodiaEscapeGetPercentAndEndingNumber
|
|
movs r1, #0xff
|
|
lsrs r2, r0, #0x18
|
|
mov sl, r2
|
|
lsrs r7, r0, #0x10
|
|
ands r7, r1
|
|
lsrs r1, r0, #0xc
|
|
mov sb, r1
|
|
movs r1, #0xf
|
|
mov r2, sb
|
|
ands r2, r1
|
|
mov sb, r2
|
|
lsrs r2, r0, #8
|
|
ands r2, r1
|
|
mov r8, r2
|
|
lsrs r4, r0, #4
|
|
ands r4, r1
|
|
mov r1, sl
|
|
adds r0, r1, r7
|
|
add r0, sb
|
|
add r0, r8
|
|
adds r0, r0, r4
|
|
movs r2, #0
|
|
str r2, [sp, #4]
|
|
cmp r4, #0xd
|
|
bls lbl_0807fbce
|
|
movs r1, #1
|
|
str r1, [sp, #4]
|
|
lbl_0807fbce:
|
|
movs r2, #0
|
|
str r2, [sp]
|
|
ldr r1, [sp, #8]
|
|
cmp r6, r1
|
|
bhs lbl_0807fbdc
|
|
movs r2, #1
|
|
str r2, [sp]
|
|
lbl_0807fbdc:
|
|
cmp r0, #0x63
|
|
bls lbl_0807fbec
|
|
cmp r6, r5
|
|
bhs lbl_0807fbec
|
|
movs r0, #2
|
|
ldr r1, [sp]
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
lbl_0807fbec:
|
|
ldr r2, [sp]
|
|
cmp r2, #0
|
|
bne lbl_0807fc00
|
|
movs r0, #0
|
|
b lbl_0807fd38
|
|
.align 2, 0
|
|
lbl_0807fbf8: .4byte gInGameTimer
|
|
lbl_0807fbfc: .4byte gTimeAttackRecord
|
|
lbl_0807fc00:
|
|
movs r0, #0
|
|
mov ip, r0
|
|
ldr r0, lbl_0807fd48 @ =gFileScreenOptionsUnlocked
|
|
ldr r0, [r0, #8]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq lbl_0807fc1a
|
|
bl is_save_file_not_legit
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
mov ip, r0
|
|
lbl_0807fc1a:
|
|
mov r1, sl
|
|
cmp r1, #0xc
|
|
bhi lbl_0807fc3c
|
|
cmp r7, #0x32
|
|
bhi lbl_0807fc3c
|
|
mov r2, sb
|
|
cmp r2, #0xf
|
|
bhi lbl_0807fc3c
|
|
mov r0, r8
|
|
cmp r0, #9
|
|
bhi lbl_0807fc3c
|
|
cmp r4, #0xe
|
|
bhi lbl_0807fc3c
|
|
cmp r4, #7
|
|
bls lbl_0807fc3c
|
|
cmp r7, #0
|
|
bne lbl_0807fc40
|
|
lbl_0807fc3c:
|
|
movs r1, #0
|
|
mov ip, r1
|
|
lbl_0807fc40:
|
|
ldr r5, lbl_0807fd4c @ =gInGameTimerAtBosses
|
|
ldrb r0, [r5, #3]
|
|
movs r3, #0xf
|
|
adds r4, r3, #0
|
|
ands r4, r0
|
|
lsls r4, r4, #4
|
|
ldrb r1, [r5, #0xb]
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
orrs r4, r0
|
|
ldrb r0, [r5, #0xf]
|
|
adds r2, r3, #0
|
|
ands r2, r0
|
|
lsls r2, r2, #4
|
|
ldrb r1, [r5, #7]
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
orrs r2, r0
|
|
ldr r6, lbl_0807fd50 @ =gTimeAttackData
|
|
ldr r0, lbl_0807fd48 @ =gFileScreenOptionsUnlocked
|
|
ldr r0, [r0, #8]
|
|
str r0, [r6]
|
|
ldr r5, lbl_0807fd54 @ =gInGameTimer
|
|
ldrb r0, [r5]
|
|
strb r0, [r6, #4]
|
|
ldrb r0, [r5, #1]
|
|
strb r0, [r6, #5]
|
|
ldrb r0, [r5, #2]
|
|
strb r0, [r6, #6]
|
|
strb r7, [r6, #7]
|
|
mov r0, sb
|
|
strb r0, [r6, #8]
|
|
mov r1, r8
|
|
strb r1, [r6, #9]
|
|
mov r0, sl
|
|
strb r0, [r6, #0xa]
|
|
mov r1, sp
|
|
ldrb r1, [r1, #4]
|
|
strb r1, [r6, #0xb]
|
|
mov r0, ip
|
|
strb r0, [r6, #0xc]
|
|
strb r4, [r6, #0xd]
|
|
strb r2, [r6, #0xe]
|
|
ldr r0, lbl_0807fd58 @ =gFrameCounter8Bit
|
|
ldrb r0, [r0]
|
|
ands r3, r0
|
|
strb r3, [r6, #0xf]
|
|
adds r0, r6, #0
|
|
bl generate_time_attack_password_seed
|
|
movs r0, #1
|
|
ldr r1, [sp]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq lbl_0807fcda
|
|
movs r2, #0
|
|
ldr r3, lbl_0807fd5c @ =gTimeAttackRecord
|
|
adds r4, r3, #0
|
|
adds r7, r6, #0
|
|
adds r7, #0x10
|
|
lbl_0807fcb8:
|
|
adds r1, r2, r4
|
|
adds r0, r7, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0x13
|
|
bls lbl_0807fcb8
|
|
ldrb r0, [r5]
|
|
strb r0, [r3, #0x14]
|
|
ldrb r0, [r5, #1]
|
|
strb r0, [r3, #0x15]
|
|
ldrb r0, [r5, #2]
|
|
strb r0, [r3, #0x16]
|
|
ldrb r0, [r5, #3]
|
|
strb r0, [r3, #0x17]
|
|
lbl_0807fcda:
|
|
movs r0, #2
|
|
ldr r2, [sp]
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq lbl_0807fd22
|
|
movs r2, #0
|
|
ldr r5, lbl_0807fd54 @ =gInGameTimer
|
|
ldr r3, lbl_0807fd5c @ =gTimeAttackRecord
|
|
adds r7, r3, #0
|
|
adds r7, #0x18
|
|
adds r4, r6, #0
|
|
adds r4, #0x10
|
|
lbl_0807fcf2:
|
|
adds r1, r2, r7
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0x13
|
|
bls lbl_0807fcf2
|
|
ldrb r1, [r5]
|
|
adds r0, r3, #0
|
|
adds r0, #0x2c
|
|
strb r1, [r0]
|
|
ldrb r0, [r5, #1]
|
|
adds r1, r3, #0
|
|
adds r1, #0x2d
|
|
strb r0, [r1]
|
|
ldrb r0, [r5, #2]
|
|
adds r1, #1
|
|
strb r0, [r1]
|
|
ldrb r1, [r5, #3]
|
|
adds r0, r3, #0
|
|
adds r0, #0x2f
|
|
strb r1, [r0]
|
|
lbl_0807fd22:
|
|
ldr r0, [sp]
|
|
cmp r0, #0
|
|
beq lbl_0807fd36
|
|
bl backup_time_attack_for_sram
|
|
ldr r0, lbl_0807fd60 @ =gEndingFlags
|
|
ldrb r1, [r0]
|
|
movs r2, #1
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
lbl_0807fd36:
|
|
movs r0, #1
|
|
lbl_0807fd38:
|
|
add sp, #0xc
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
lbl_0807fd48: .4byte gFileScreenOptionsUnlocked
|
|
lbl_0807fd4c: .4byte gInGameTimerAtBosses
|
|
lbl_0807fd50: .4byte gTimeAttackData
|
|
lbl_0807fd54: .4byte gInGameTimer
|
|
lbl_0807fd58: .4byte gFrameCounter8Bit
|
|
lbl_0807fd5c: .4byte gTimeAttackRecord
|
|
lbl_0807fd60: .4byte gEndingFlags
|
|
|
|
thumb_func_start ProcessComplexOam
|
|
ProcessComplexOam: @ 0x0807fd64
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #0x10
|
|
str r0, [sp]
|
|
ldr r4, [sp, #0x30]
|
|
ldr r0, [sp, #0x34]
|
|
mov r8, r0
|
|
ldr r0, [sp, #0x38]
|
|
lsls r1, r1, #0x10
|
|
lsls r2, r2, #0x10
|
|
lsls r3, r3, #0x10
|
|
lsrs r3, r3, #0x10
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x10
|
|
mov r5, r8
|
|
lsls r5, r5, #0x18
|
|
mov r8, r5
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
str r0, [sp, #4]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
adds r1, r1, r0
|
|
asrs r1, r1, #0x10
|
|
str r1, [sp, #8]
|
|
adds r2, r2, r0
|
|
asrs r2, r2, #0x10
|
|
str r2, [sp, #0xc]
|
|
ldr r1, [sp]
|
|
lsls r0, r1, #3
|
|
ldr r5, lbl_0807fe84 @ =gOamData
|
|
adds r7, r0, r5
|
|
ldrb r0, [r7, #1]
|
|
mov sb, r0
|
|
mov r1, sb
|
|
lsrs r2, r1, #6
|
|
ldrb r0, [r7, #3]
|
|
lsrs r0, r0, #6
|
|
ldr r1, lbl_0807fe88 @ =0x0845fd24
|
|
lsls r2, r2, #2
|
|
adds r0, r0, r2
|
|
adds r1, r0, r1
|
|
ldrb r1, [r1]
|
|
mov ip, r1
|
|
ldr r1, lbl_0807fe8c @ =0x0845fd30
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
mov sl, r0
|
|
ldrh r0, [r7, #2]
|
|
lsls r0, r0, #0x17
|
|
lsrs r0, r0, #0x17
|
|
ldr r1, [sp, #8]
|
|
adds r5, r0, r1
|
|
ldr r1, lbl_0807fe90 @ =0x000001ff
|
|
adds r0, r1, #0
|
|
ands r5, r0
|
|
ldrb r0, [r7]
|
|
ldr r1, [sp, #0xc]
|
|
adds r6, r0, r1
|
|
movs r0, #0xff
|
|
ands r6, r0
|
|
ldr r1, [sp, #8]
|
|
subs r0, r5, r1
|
|
add r0, ip
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
ldr r1, [sp, #0xc]
|
|
subs r2, r6, r1
|
|
add r2, sl
|
|
lsls r2, r2, #0x10
|
|
asrs r2, r2, #0x10
|
|
adds r1, r0, #0
|
|
muls r1, r4, r1
|
|
asrs r1, r1, #8
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
adds r0, r2, #0
|
|
muls r0, r4, r0
|
|
asrs r0, r0, #8
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
adds r1, r5, r1
|
|
lsls r1, r1, #0x10
|
|
asrs r5, r1, #0x10
|
|
adds r0, r6, r0
|
|
lsls r0, r0, #0x10
|
|
asrs r6, r0, #0x10
|
|
ldr r0, [sp, #8]
|
|
subs r4, r5, r0
|
|
add r4, ip
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x10
|
|
ldr r1, [sp, #0xc]
|
|
subs r2, r6, r1
|
|
add r2, sl
|
|
lsls r2, r2, #0x10
|
|
asrs r2, r2, #0x10
|
|
ldr r5, lbl_0807fe94 @ =0x0808c71c
|
|
adds r0, r3, #0
|
|
adds r0, #0x40
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
movs r1, #0
|
|
ldrsh r6, [r0, r1]
|
|
adds r1, r4, #0
|
|
muls r1, r6, r1
|
|
lsls r3, r3, #1
|
|
adds r3, r3, r5
|
|
movs r5, #0
|
|
ldrsh r3, [r3, r5]
|
|
adds r0, r2, #0
|
|
muls r0, r3, r0
|
|
subs r1, r1, r0
|
|
lsls r1, r1, #8
|
|
asrs r5, r1, #0x10
|
|
adds r0, r4, #0
|
|
muls r0, r3, r0
|
|
adds r1, r2, #0
|
|
muls r1, r6, r1
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #8
|
|
asrs r6, r0, #0x10
|
|
mov r0, r8
|
|
cmp r0, #0
|
|
bne lbl_0807fe98
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
mov r1, sb
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r7, #1]
|
|
mov r1, ip
|
|
subs r0, r5, r1
|
|
lsls r0, r0, #0x10
|
|
asrs r5, r0, #0x10
|
|
mov r1, sl
|
|
subs r0, r6, r1
|
|
b lbl_0807feb0
|
|
.align 2, 0
|
|
lbl_0807fe84: .4byte gOamData
|
|
lbl_0807fe88: .4byte 0x0845fd24
|
|
lbl_0807fe8c: .4byte 0x0845fd30
|
|
lbl_0807fe90: .4byte 0x000001ff
|
|
lbl_0807fe94: .4byte 0x0808c71c
|
|
lbl_0807fe98:
|
|
movs r0, #3
|
|
mov r1, sb
|
|
orrs r0, r1
|
|
strb r0, [r7, #1]
|
|
mov r1, ip
|
|
lsls r0, r1, #1
|
|
subs r0, r5, r0
|
|
lsls r0, r0, #0x10
|
|
asrs r5, r0, #0x10
|
|
mov r1, sl
|
|
lsls r0, r1, #1
|
|
subs r0, r6, r0
|
|
lbl_0807feb0:
|
|
lsls r0, r0, #0x10
|
|
asrs r6, r0, #0x10
|
|
ldr r0, [sp]
|
|
lsls r3, r0, #3
|
|
ldr r1, lbl_0807feec @ =gOamData
|
|
adds r7, r3, r1
|
|
ldr r0, [sp, #8]
|
|
adds r1, r5, r0
|
|
subs r1, #0x40
|
|
ldr r0, lbl_0807fef0 @ =0x000001ff
|
|
ands r1, r0
|
|
ldrh r2, [r7, #2]
|
|
ldr r0, lbl_0807fef4 @ =0xfffffe00
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r7, #2]
|
|
ldr r1, [sp, #0xc]
|
|
adds r0, r6, r1
|
|
subs r0, #0x40
|
|
strb r0, [r7]
|
|
ldrb r4, [r7, #3]
|
|
lsls r0, r4, #0x1b
|
|
cmp r0, #0
|
|
bge lbl_0807fefe
|
|
lsls r0, r4, #0x1a
|
|
cmp r0, #0
|
|
bge lbl_0807fef8
|
|
ldr r0, [sp, #4]
|
|
adds r0, #3
|
|
b lbl_0807ff08
|
|
.align 2, 0
|
|
lbl_0807feec: .4byte gOamData
|
|
lbl_0807fef0: .4byte 0x000001ff
|
|
lbl_0807fef4: .4byte 0xfffffe00
|
|
lbl_0807fef8:
|
|
ldr r0, [sp, #4]
|
|
adds r0, #1
|
|
b lbl_0807ff08
|
|
lbl_0807fefe:
|
|
lsls r0, r4, #0x1a
|
|
cmp r0, #0
|
|
bge lbl_0807ff1a
|
|
ldr r0, [sp, #4]
|
|
adds r0, #2
|
|
lbl_0807ff08:
|
|
movs r1, #7
|
|
ands r0, r1
|
|
lsls r0, r0, #1
|
|
movs r1, #0xf
|
|
rsbs r1, r1, #0
|
|
ands r1, r4
|
|
orrs r1, r0
|
|
strb r1, [r7, #3]
|
|
b lbl_0807ff2c
|
|
lbl_0807ff1a:
|
|
movs r0, #7
|
|
ldr r1, [sp, #4]
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
movs r0, #0xf
|
|
rsbs r0, r0, #0
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
strb r0, [r7, #3]
|
|
lbl_0807ff2c:
|
|
ldr r5, lbl_0807ff54 @ =gOamData
|
|
adds r2, r3, r5
|
|
ldrb r1, [r2, #3]
|
|
movs r0, #0x11
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x21
|
|
rsbs r1, r1, #0
|
|
ands r0, r1
|
|
strb r0, [r2, #3]
|
|
movs r0, #0
|
|
add sp, #0x10
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
lbl_0807ff54: .4byte gOamData
|
|
|
|
thumb_func_start CalculateOamPart4
|
|
CalculateOamPart4: @ 0x0807ff58
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
sub sp, #8
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
lsls r4, r4, #0x10
|
|
lsrs r4, r4, #0x10
|
|
lsls r5, r5, #0x10
|
|
asrs r5, r5, #0x10
|
|
lsls r2, r2, #0x18
|
|
lsrs r7, r2, #0x18
|
|
ldr r6, lbl_080800ec @ =0x0808c71c
|
|
adds r0, r4, #0
|
|
adds r0, #0x40
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
movs r2, #0
|
|
ldrsh r1, [r0, r2]
|
|
str r1, [sp]
|
|
adds r0, r5, #0
|
|
bl FixedInverse
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
ldr r0, [sp]
|
|
bl FixedMultiplication
|
|
mov r8, r0
|
|
mov r3, r8
|
|
lsls r3, r3, #0x10
|
|
asrs r3, r3, #0x10
|
|
mov r8, r3
|
|
lsls r4, r4, #1
|
|
adds r4, r4, r6
|
|
movs r1, #0
|
|
ldrsh r0, [r4, r1]
|
|
mov sl, r0
|
|
adds r0, r5, #0
|
|
bl FixedInverse
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
mov r0, sl
|
|
bl FixedMultiplication
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
str r0, [sp, #4]
|
|
ldrh r4, [r4]
|
|
rsbs r4, r4, #0
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x10
|
|
adds r0, r5, #0
|
|
bl FixedInverse
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
adds r0, r4, #0
|
|
bl FixedMultiplication
|
|
mov sb, r0
|
|
mov r2, sb
|
|
lsls r2, r2, #0x10
|
|
asrs r2, r2, #0x10
|
|
mov sb, r2
|
|
rsbs r5, r5, #0
|
|
lsls r5, r5, #0x10
|
|
asrs r5, r5, #0x10
|
|
adds r0, r5, #0
|
|
bl FixedInverse
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
ldr r0, [sp]
|
|
bl FixedMultiplication
|
|
adds r6, r0, #0
|
|
lsls r6, r6, #0x10
|
|
asrs r6, r6, #0x10
|
|
adds r0, r5, #0
|
|
bl FixedInverse
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
mov r0, sl
|
|
bl FixedMultiplication
|
|
mov sl, r0
|
|
mov r3, sl
|
|
lsls r3, r3, #0x10
|
|
asrs r3, r3, #0x10
|
|
mov sl, r3
|
|
adds r0, r5, #0
|
|
bl FixedInverse
|
|
adds r1, r0, #0
|
|
lsls r1, r1, #0x10
|
|
asrs r1, r1, #0x10
|
|
adds r0, r4, #0
|
|
bl FixedMultiplication
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
ldr r2, lbl_080800f0 @ =gOamData
|
|
lsls r1, r7, #3
|
|
adds r1, r1, r2
|
|
mov r4, r8
|
|
strh r4, [r1, #6]
|
|
adds r1, r7, #1
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r3, sp
|
|
ldrh r3, [r3, #4]
|
|
strh r3, [r1, #6]
|
|
adds r1, r7, #2
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r4, sb
|
|
strh r4, [r1, #6]
|
|
adds r1, r7, #3
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r3, r8
|
|
strh r3, [r1, #6]
|
|
adds r1, r7, #4
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r6, [r1, #6]
|
|
adds r1, r7, #5
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r4, sl
|
|
strh r4, [r1, #6]
|
|
adds r1, r7, #6
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r3, sb
|
|
strh r3, [r1, #6]
|
|
adds r1, r7, #7
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r4, r8
|
|
strh r4, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #8
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r4, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #9
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r3, sp
|
|
ldrh r3, [r3, #4]
|
|
strh r3, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #0xa
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r0, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #0xb
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r6, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #0xc
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r6, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #0xd
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
mov r4, sl
|
|
strh r4, [r1, #6]
|
|
adds r1, r7, #0
|
|
adds r1, #0xe
|
|
lsls r1, r1, #3
|
|
adds r1, r1, r2
|
|
strh r0, [r1, #6]
|
|
adds r0, r7, #0
|
|
adds r0, #0xf
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r2
|
|
strh r6, [r0, #6]
|
|
add sp, #8
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
lbl_080800ec: .4byte 0x0808c71c
|
|
lbl_080800f0: .4byte gOamData
|