pokeheartgold/lib/asm/overlay_123.s
2024-07-13 10:17:50 -04:00

2050 lines
40 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_123.inc"
.include "global.inc"
; This overlay has multiple levels of encryption for some reason.
; Note to future decompilers using asmdiff: you will need to
; compare against the *decrypted* version of this overlay's SBIN
; should you hit any nonmatches.
.text
.balign 4, 0
arm_func_start ov123_0225F020
ov123_0225F020: ; 0x0225F020
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #128 ; 0x80
ldr r2, [pc, #156] ; _0225F0CC
ldr r1, [pc, #156] ; _0225F0D0
mov sl, #0
adds r2, r2, #800 ; 0x320
add r1, r1, #800 ; 0x320
mov fp, r0
mov r8, sl
mov r9, sl
str sl, [sp, #8]
str r2, [sp]
str r1, [sp, #4]
beq _0225F0A0
ldr r4, [pc, #116] ; _0225F0D4
mov r5, sl
mov r6, #1
add r7, sp, #0
_0225F068:
ldr r0, [r7, r9, lsl #2]
add r0, r0, r4
blx r0
cmp r0, #0
movne r1, r6
add r9, r9, #1
moveq r1, r5
add r2, r8, r1
ldr r0, [r7, r9, lsl #2]
add r1, sl, #1
cmp r0, #0
mov r8, r2, lsl #1
mov sl, r1, lsl #1
bne _0225F068
_0225F0A0:
and r0, r8, sl
movs r0, r0, asr #1
movne r4, #1
moveq r4, #0
cmp fp, #0
cmpne r4, #0
beq _0225F0C0
blx fp
_0225F0C0:
mov r0, r4
add sp, sp, #128 ; 0x80
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_0225F0CC: .word ov123_0226068C + 0x1300
_0225F0D0: .word ov123_0225FC14 + 0x1300
_0225F0D4: .word 0xFFFFE9E0
arm_func_end ov123_0225F020
arm_func_start ov123_0225F0D8
ov123_0225F0D8: ; 0x0225F0D8
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #128 ; 0x80
ldr r2, [pc, #156] ; _0225F184
ldr r1, [pc, #156] ; _0225F188
mov sl, #0
adds r2, r2, #800 ; 0x320
add r1, r1, #800 ; 0x320
mov fp, r0
mov r8, sl
mov r9, sl
str sl, [sp, #8]
str r2, [sp]
str r1, [sp, #4]
beq _0225F158
ldr r4, [pc, #116] ; _0225F18C
mov r5, sl
mov r6, #1
add r7, sp, #0
_0225F120:
ldr r0, [r7, r9, lsl #2]
add r0, r0, r4
blx r0
cmp r0, #0
movne r1, r6
add r9, r9, #1
moveq r1, r5
add r2, r8, r1
ldr r0, [r7, r9, lsl #2]
add r1, sl, #1
cmp r0, #0
mov r8, r2, lsl #1
mov sl, r1, lsl #1
bne _0225F120
_0225F158:
mov r0, r8, asr #1
cmp r0, sl, asr #1
moveq r4, #1
movne r4, #0
cmp fp, #0
cmpne r4, #0
beq _0225F178
blx fp
_0225F178:
mov r0, r4
add sp, sp, #128 ; 0x80
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_0225F184: .word ov123_02260704 + 0x1300
_0225F188: .word ov123_0225FC8C + 0x1300
_0225F18C: .word 0xFFFFE9E0
arm_func_end ov123_0225F0D8
arm_func_start ov123_0225F190
ov123_0225F190: ; 0x0225F190
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #128 ; 0x80
ldr r2, [pc, #156] ; _0225F23C
ldr r1, [pc, #156] ; _0225F240
mov sl, #0
adds r2, r2, #800 ; 0x320
add r1, r1, #800 ; 0x320
mov fp, r0
mov r8, sl
mov r9, sl
str sl, [sp, #8]
str r2, [sp]
str r1, [sp, #4]
beq _0225F210
ldr r4, [pc, #116] ; _0225F244
mov r5, sl
mov r6, #1
add r7, sp, #0
_0225F1D8:
ldr r0, [r7, r9, lsl #2]
add r0, r0, r4
blx r0
cmp r0, #0
movne r1, r6
add r9, r9, #1
moveq r1, r5
add r2, r8, r1
ldr r0, [r7, r9, lsl #2]
add r1, sl, #1
cmp r0, #0
mov r8, r2, lsl #1
mov sl, r1, lsl #1
bne _0225F1D8
_0225F210:
and r0, r8, sl
movs r0, r0, asr #1
movne r4, #1
moveq r4, #0
cmp fp, #0
cmpne r4, #0
beq _0225F230
blx fp
_0225F230:
mov r0, r4
add sp, sp, #128 ; 0x80
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_0225F23C: .word ov123_02260148 + 0x1300
_0225F240: .word ov123_0225FB24 + 0x1300
_0225F244: .word 0xFFFFE9E0
arm_func_end ov123_0225F190
arm_func_start ov123_0225F248
ov123_0225F248: ; 0x0225F248
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #128 ; 0x80
ldr r2, [pc, #156] ; _0225F2F4
ldr r1, [pc, #156] ; _0225F2F8
mov sl, #0
adds r2, r2, #800 ; 0x320
add r1, r1, #800 ; 0x320
mov fp, r0
mov r8, sl
mov r9, sl
str sl, [sp, #8]
str r2, [sp]
str r1, [sp, #4]
beq _0225F2C8
ldr r4, [pc, #116] ; _0225F2FC
mov r5, sl
mov r6, #1
add r7, sp, #0
_0225F290:
ldr r0, [r7, r9, lsl #2]
add r0, r0, r4
blx r0
cmp r0, #0
movne r1, r6
add r9, r9, #1
moveq r1, r5
add r2, r8, r1
ldr r0, [r7, r9, lsl #2]
add r1, sl, #1
cmp r0, #0
mov r8, r2, lsl #1
mov sl, r1, lsl #1
bne _0225F290
_0225F2C8:
mov r0, r8, asr #1
cmp r0, sl, asr #1
moveq r4, #1
movne r4, #0
cmp fp, #0
cmpne r4, #0
beq _0225F2E8
blx fp
_0225F2E8:
mov r0, r4
add sp, sp, #128 ; 0x80
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_0225F2F4: .word ov123_022601C0 + 0x1300
_0225F2F8: .word ov123_0225FB9C + 0x1300
_0225F2FC: .word 0xFFFFE9E0
arm_func_end ov123_0225F248
arm_func_start ov123_0225F300
ov123_0225F300: ; 0x0225F300
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #128 ; 0x80
movs sl, #0
mov fp, r0
mov r8, sl
mov r9, sl
str sl, [sp]
beq _0225F368
ldr r4, [pc, #108] ; _0225F394
mov r5, #0
mov r6, #1
add r7, sp, #0
_0225F330:
ldr r0, [r7, r9, lsl #2]
add r0, r0, r4
blx r0
cmp r0, #0
movne r1, r6
add r9, r9, #1
moveq r1, r5
add r2, r8, r1
ldr r0, [r7, r9, lsl #2]
add r1, sl, #1
cmp r0, #0
mov r8, r2, lsl #1
mov sl, r1, lsl #1
bne _0225F330
_0225F368:
and r0, r8, sl
movs r0, r0, asr #1
movne r4, #1
moveq r4, #0
cmp fp, #0
cmpne r4, #0
beq _0225F388
blx fp
_0225F388:
mov r0, r4
add sp, sp, #128 ; 0x80
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_0225F394: .word 0xFFFFE9E0
arm_func_end ov123_0225F300
arm_func_start ov123_0225F398
ov123_0225F398: ; 0x0225F398
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #128 ; 0x80
movs sl, #0
mov fp, r0
mov r8, sl
mov r9, sl
str sl, [sp]
beq _0225F400
ldr r4, [pc, #108] ; _0225F42C
mov r5, #0
mov r6, #1
add r7, sp, #0
_0225F3C8:
ldr r0, [r7, r9, lsl #2]
add r0, r0, r4
blx r0
cmp r0, #0
movne r1, r6
add r9, r9, #1
moveq r1, r5
add r2, r8, r1
ldr r0, [r7, r9, lsl #2]
add r1, sl, #1
cmp r0, #0
mov r8, r2, lsl #1
mov sl, r1, lsl #1
bne _0225F3C8
_0225F400:
mov r0, r8, asr #1
cmp r0, sl, asr #1
moveq r4, #1
movne r4, #0
cmp fp, #0
cmpne r4, #0
beq _0225F420
blx fp
_0225F420:
mov r0, r4
add sp, sp, #128 ; 0x80
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_0225F42C: .word 0xFFFFE9E0
arm_func_end ov123_0225F398
arm_func_start ov123_0225F430
ov123_0225F430: ; 0x0225F430
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225F4A4 ; =ov123_0225F020
adr r3, _0225F498 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225F49C ; =0xAC
ldr r0, _0225F4A0 ; =0x6AB2
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225F4A4 ; =ov123_0225F020
ldr r2, _0225F49C ; =0xAC
ldr r0, _0225F4A0 ; =0x6AB2
bl ov123_0225FF30
str r0, _0225F4A0 ; =0x6AB2
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225F498 ; =_02260C00+1
str pc, _0225F498 ; =_02260C00+1
bx lr
_0225F498: .word _02260C00+1
_0225F49C: .word 0xAC
_0225F4A0: .word 0x6AB2
_0225F4A4: .word ov123_0225F020
arm_func_end ov123_0225F430
arm_func_start ov123_0225F4A8
ov123_0225F4A8: ; 0x0225F4A8
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225F51C ; =ov123_0225F0D8
adr r3, _0225F510 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225F514 ; =0xAC
ldr r0, _0225F518 ; =0x6AB2
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225F51C ; =ov123_0225F0D8
ldr r2, _0225F514 ; =0xAC
ldr r0, _0225F518 ; =0x6AB2
bl ov123_0225FF30
str r0, _0225F518 ; =0x6AB2
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225F510 ; =_02260C00+1
str pc, _0225F510 ; =_02260C00+1
bx lr
_0225F510: .word _02260C00+1
_0225F514: .word 0xAC
_0225F518: .word 0x6AB2
_0225F51C: .word ov123_0225F0D8
arm_func_end ov123_0225F4A8
arm_func_start ov123_0225F520
ov123_0225F520: ; 0x0225F520
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225F594 ; =ov123_0225F190
adr r3, _0225F588 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225F58C ; =0xAC
ldr r0, _0225F590 ; =0x6AB2
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225F594 ; =ov123_0225F190
ldr r2, _0225F58C ; =0xAC
ldr r0, _0225F590 ; =0x6AB2
bl ov123_0225FF30
str r0, _0225F590 ; =0x6AB2
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225F588 ; =_02260C00+1
str pc, _0225F588 ; =_02260C00+1
bx lr
_0225F588: .word _02260C00+1
_0225F58C: .word 0xAC
_0225F590: .word 0x6AB2
_0225F594: .word ov123_0225F190
arm_func_end ov123_0225F520
arm_func_start ov123_0225F598
ov123_0225F598: ; 0x0225F598
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225F60C ; =ov123_0225F248
adr r3, _0225F600 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225F604 ; =0xAC
ldr r0, _0225F608 ; =0x6AB2
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225F60C ; =ov123_0225F248
ldr r2, _0225F604 ; =0xAC
ldr r0, _0225F608 ; =0x6AB2
bl ov123_0225FF30
str r0, _0225F608 ; =0x6AB2
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225F600 ; =_02260C00+1
str pc, _0225F600 ; =_02260C00+1
bx lr
_0225F600: .word _02260C00+1
_0225F604: .word 0xAC
_0225F608: .word 0x6AB2
_0225F60C: .word ov123_0225F248
arm_func_end ov123_0225F598
arm_func_start ov123_0225F610
ov123_0225F610: ; 0x0225F610
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225F684 ; =ov123_0225F300
adr r3, _0225F678 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225F67C ; =0x94
ldr r0, _0225F680 ; =0x6AB2
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225F684 ; =ov123_0225F300
ldr r2, _0225F67C ; =0x94
ldr r0, _0225F680 ; =0x6AB2
bl ov123_0225FF30
str r0, _0225F680 ; =0x6AB2
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225F678 ; =_02260C00+1
str pc, _0225F678 ; =_02260C00+1
bx lr
_0225F678: .word _02260C00+1
_0225F67C: .word 0x94
_0225F680: .word 0x6AB2
_0225F684: .word ov123_0225F300
arm_func_end ov123_0225F610
arm_func_start ov123_0225F688
ov123_0225F688: ; 0x0225F688
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225F6FC ; =ov123_0225F398
adr r3, _0225F6F0 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225F6F4 ; =0x94
ldr r0, _0225F6F8 ; =0x6AB2
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225F6FC ; =ov123_0225F398
ldr r2, _0225F6F4 ; =0x94
ldr r0, _0225F6F8 ; =0x6AB2
bl ov123_0225FF30
str r0, _0225F6F8 ; =0x6AB2
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225F6F0 ; =_02260C00+1
str pc, _0225F6F0 ; =_02260C00+1
bx lr
_0225F6F0: .word _02260C00+1
_0225F6F4: .word 0x94
_0225F6F8: .word 0x6AB2
_0225F6FC: .word ov123_0225F398
arm_func_end ov123_0225F688
arm_func_start ov123_0225F700
ov123_0225F700: ; 0x0225F700
stmdb sp!, {lr}
adr r0, _0225F710
bl ov123_0225FD98
ldmia sp!, {pc}
_0225F710:
.word ov123_0225F430, 0x68
.word ov123_0225F4A8, 0x68
.word ov123_0225F520, 0x68
.word ov123_0225F598, 0x68
.word ov123_0225F610, 0x68
.word ov123_0225F688, 0x68
.word 0, 0
arm_func_end ov123_0225F700
_0225F748:
.word ov123_02260BBC + 0x1300
arm_func_start ov123_0225F74C
ov123_0225F74C: ; 0x0225F74C
ldr r0, [pc, #204] ; _0225F820
sub r0, r0, #9728 ; 0x2600
add r1, r0, #4096 ; 0x1000
ldrb r2, [r1, #768] ; 0x300
add r0, r0, #1
cmp r2, #240 ; 0xf0
bxne lr
ldrb r2, [r1, #769] ; 0x301
cmp r2, #0
bxne lr
ldrb r2, [r1, #770] ; 0x302
cmp r2, #45 ; 0x2d
bxne lr
ldrb r2, [r1, #771] ; 0x303
cmp r2, #233 ; 0xe9
bxne lr
ldrb r2, [r1, #772] ; 0x304
cmp r2, #15
bxne lr
ldrb r2, [r1, #773] ; 0x305
cmp r2, #0
bxne lr
ldrb r2, [r1, #774] ; 0x306
cmp r2, #45 ; 0x2d
bxne lr
ldrb r2, [r1, #775] ; 0x307
cmp r2, #233 ; 0xe9
bxne lr
ldrb r2, [r1, #776] ; 0x308
cmp r2, #240 ; 0xf0
bxne lr
ldrb r2, [r1, #777] ; 0x309
cmp r2, #0
bxne lr
ldrb r2, [r1, #778] ; 0x30a
cmp r2, #189 ; 0xbd
bxne lr
ldrb r2, [r1, #779] ; 0x30b
cmp r2, #232 ; 0xe8
bxne lr
ldrb r2, [r1, #780] ; 0x30c
cmp r2, #96 ; 0x60
bxne lr
ldrb r2, [r1, #781] ; 0x30d
cmp r2, #16
bxne lr
ldrb r2, [r1, #782] ; 0x30e
cmp r2, #159 ; 0x9f
bxne lr
ldrb r1, [r1, #783] ; 0x30f
cmp r1, #229 ; 0xe5
moveq r0, #0
bx lr
_0225F820: .word ov123_02260148 + 0x1300
arm_func_end ov123_0225F74C
arm_func_start ov123_0225F824
ov123_0225F824: ; 0x0225F824
ldr r0, [pc, #264] ; _0225F934
sub r0, r0, #9728 ; 0x2600
add r1, r0, #4096 ; 0x1000
ldrb r2, [r1, #768] ; 0x300
cmp r2, #240 ; 0xf0
movne r0, #0
bxne lr
ldrb r2, [r1, #769] ; 0x301
cmp r2, #0
movne r0, #0
bxne lr
ldrb r2, [r1, #770] ; 0x302
cmp r2, #45 ; 0x2d
movne r0, #0
bxne lr
ldrb r2, [r1, #771] ; 0x303
cmp r2, #233 ; 0xe9
movne r0, #0
bxne lr
ldrb r2, [r1, #772] ; 0x304
cmp r2, #15
movne r0, #0
bxne lr
ldrb r2, [r1, #773] ; 0x305
cmp r2, #0
movne r0, #0
bxne lr
ldrb r2, [r1, #774] ; 0x306
cmp r2, #45 ; 0x2d
movne r0, #0
bxne lr
ldrb r2, [r1, #775] ; 0x307
cmp r2, #233 ; 0xe9
movne r0, #0
bxne lr
ldrb r2, [r1, #776] ; 0x308
cmp r2, #240 ; 0xf0
movne r0, #0
bxne lr
ldrb r2, [r1, #777] ; 0x309
cmp r2, #0
movne r0, #0
bxne lr
ldrb r2, [r1, #778] ; 0x30a
cmp r2, #189 ; 0xbd
movne r0, #0
bxne lr
ldrb r2, [r1, #779] ; 0x30b
cmp r2, #232 ; 0xe8
movne r0, #0
bxne lr
ldrb r2, [r1, #780] ; 0x30c
cmp r2, #96 ; 0x60
movne r0, #0
bxne lr
ldrb r2, [r1, #781] ; 0x30d
cmp r2, #16
movne r0, #0
bxne lr
ldrb r2, [r1, #782] ; 0x30e
cmp r2, #159 ; 0x9f
movne r0, #0
bxne lr
ldrb r1, [r1, #783] ; 0x30f
cmp r1, #229 ; 0xe5
movne r0, #0
addeq r0, r0, #1
bx lr
_0225F934: .word ov123_022601C0 + 0x1300
arm_func_end ov123_0225F824
arm_func_start ov123_0225F938
ov123_0225F938: ; 0x0225F938
ldr r0, [pc, #204] ; _0225FA0C
sub r0, r0, #9728 ; 0x2600
add r1, r0, #4096 ; 0x1000
ldrb r2, [r1, #768] ; 0x300
add r0, r0, #1
cmp r2, #240 ; 0xf0
bxne lr
ldrb r2, [r1, #769] ; 0x301
cmp r2, #0
bxne lr
ldrb r2, [r1, #770] ; 0x302
cmp r2, #45 ; 0x2d
bxne lr
ldrb r2, [r1, #771] ; 0x303
cmp r2, #233 ; 0xe9
bxne lr
ldrb r2, [r1, #772] ; 0x304
cmp r2, #15
bxne lr
ldrb r2, [r1, #773] ; 0x305
cmp r2, #0
bxne lr
ldrb r2, [r1, #774] ; 0x306
cmp r2, #45 ; 0x2d
bxne lr
ldrb r2, [r1, #775] ; 0x307
cmp r2, #233 ; 0xe9
bxne lr
ldrb r2, [r1, #776] ; 0x308
cmp r2, #240 ; 0xf0
bxne lr
ldrb r2, [r1, #777] ; 0x309
cmp r2, #0
bxne lr
ldrb r2, [r1, #778] ; 0x30a
cmp r2, #189 ; 0xbd
bxne lr
ldrb r2, [r1, #779] ; 0x30b
cmp r2, #232 ; 0xe8
bxne lr
ldrb r2, [r1, #780] ; 0x30c
cmp r2, #96 ; 0x60
bxne lr
ldrb r2, [r1, #781] ; 0x30d
cmp r2, #16
bxne lr
ldrb r2, [r1, #782] ; 0x30e
cmp r2, #159 ; 0x9f
bxne lr
ldrb r1, [r1, #783] ; 0x30f
cmp r1, #229 ; 0xe5
moveq r0, #0
bx lr
_0225FA0C: .word ov123_0226068C + 0x1300
arm_func_end ov123_0225F938
arm_func_start ov123_0225FA10
ov123_0225FA10: ; 0x0225FA10
ldr r0, [pc, #264] ; _0225FB20
sub r0, r0, #9728 ; 0x2600
add r1, r0, #4096 ; 0x1000
ldrb r2, [r1, #768] ; 0x300
cmp r2, #240 ; 0xf0
movne r0, #0
bxne lr
ldrb r2, [r1, #769] ; 0x301
cmp r2, #0
movne r0, #0
bxne lr
ldrb r2, [r1, #770] ; 0x302
cmp r2, #45 ; 0x2d
movne r0, #0
bxne lr
ldrb r2, [r1, #771] ; 0x303
cmp r2, #233 ; 0xe9
movne r0, #0
bxne lr
ldrb r2, [r1, #772] ; 0x304
cmp r2, #15
movne r0, #0
bxne lr
ldrb r2, [r1, #773] ; 0x305
cmp r2, #0
movne r0, #0
bxne lr
ldrb r2, [r1, #774] ; 0x306
cmp r2, #45 ; 0x2d
movne r0, #0
bxne lr
ldrb r2, [r1, #775] ; 0x307
cmp r2, #233 ; 0xe9
movne r0, #0
bxne lr
ldrb r2, [r1, #776] ; 0x308
cmp r2, #240 ; 0xf0
movne r0, #0
bxne lr
ldrb r2, [r1, #777] ; 0x309
cmp r2, #0
movne r0, #0
bxne lr
ldrb r2, [r1, #778] ; 0x30a
cmp r2, #189 ; 0xbd
movne r0, #0
bxne lr
ldrb r2, [r1, #779] ; 0x30b
cmp r2, #232 ; 0xe8
movne r0, #0
bxne lr
ldrb r2, [r1, #780] ; 0x30c
cmp r2, #96 ; 0x60
movne r0, #0
bxne lr
ldrb r2, [r1, #781] ; 0x30d
cmp r2, #16
movne r0, #0
bxne lr
ldrb r2, [r1, #782] ; 0x30e
cmp r2, #159 ; 0x9f
movne r0, #0
bxne lr
ldrb r1, [r1, #783] ; 0x30f
cmp r1, #229 ; 0xe5
movne r0, #0
addeq r0, r0, #1
bx lr
_0225FB20: .word ov123_02260704 + 0x1300
arm_func_end ov123_0225FA10
arm_func_start ov123_0225FB24
ov123_0225FB24: ; 0x0225FB24
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225FB98 ; =ov123_0225F74C
adr r3, _0225FB8C ; =_02260C00+1
str lr, [r3]
ldr r2, _0225FB90 ; =0xD4
ldr r0, _0225FB94 ; =0x9785
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225FB98 ; =ov123_0225F74C
ldr r2, _0225FB90 ; =0xD4
ldr r0, _0225FB94 ; =0x9785
bl ov123_0225FF30
str r0, _0225FB94 ; =0x9785
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225FB8C ; =_02260C00+1
str pc, _0225FB8C ; =_02260C00+1
bx lr
_0225FB8C: .word _02260C00+1
_0225FB90: .word 0xD4
_0225FB94: .word 0x9785
_0225FB98: .word ov123_0225F74C
arm_func_end ov123_0225FB24
arm_func_start ov123_0225FB9C
ov123_0225FB9C: ; 0x0225FB9C
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225FC10 ; =ov123_0225F824
adr r3, _0225FC04 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225FC08 ; =0x110
ldr r0, _0225FC0C ; =0x9785
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225FC10 ; =ov123_0225F824
ldr r2, _0225FC08 ; =0x110
ldr r0, _0225FC0C ; =0x9785
bl ov123_0225FF30
str r0, _0225FC0C ; =0x9785
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225FC04 ; =_02260C00+1
str pc, _0225FC04 ; =_02260C00+1
bx lr
_0225FC04: .word _02260C00+1
_0225FC08: .word 0x110
_0225FC0C: .word 0x9785
_0225FC10: .word ov123_0225F824
arm_func_end ov123_0225FB9C
arm_func_start ov123_0225FC14
ov123_0225FC14: ; 0x0225FC14
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225FC88 ; =ov123_0225F938
adr r3, _0225FC7C ; =_02260C00+1
str lr, [r3]
ldr r2, _0225FC80 ; =0xD4
ldr r0, _0225FC84 ; =0x9785
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225FC88 ; =ov123_0225F938
ldr r2, _0225FC80 ; =0xD4
ldr r0, _0225FC84 ; =0x9785
bl ov123_0225FF30
str r0, _0225FC84 ; =0x9785
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225FC7C ; =_02260C00+1
str pc, _0225FC7C ; =_02260C00+1
bx lr
_0225FC7C: .word _02260C00+1
_0225FC80: .word 0xD4
_0225FC84: .word 0x9785
_0225FC88: .word ov123_0225F938
arm_func_end ov123_0225FC14
arm_func_start ov123_0225FC8C
ov123_0225FC8C: ; 0x0225FC8C
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _0225FD00 ; =ov123_0225FA10
adr r3, _0225FCF4 ; =_02260C00+1
str lr, [r3]
ldr r2, _0225FCF8 ; =0x110
ldr r0, _0225FCFC ; =0x9785
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _0225FD00 ; =ov123_0225FA10
ldr r2, _0225FCF8 ; =0x110
ldr r0, _0225FCFC ; =0x9785
bl ov123_0225FF30
str r0, _0225FCFC ; =0x9785
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0225FCF4 ; =_02260C00+1
str pc, _0225FCF4 ; =_02260C00+1
bx lr
_0225FCF4: .word _02260C00+1
_0225FCF8: .word 0x110
_0225FCFC: .word 0x9785
_0225FD00: .word ov123_0225FA10
arm_func_end ov123_0225FC8C
arm_func_start ov123_0225FD04
ov123_0225FD04: ; 0x0225FD04
stmdb sp!, {lr}
adr r0, _0225FD14
bl ov123_0225FD98
ldmia sp!, {pc}
_0225FD14:
.word ov123_0225FB24, 0x68
.word ov123_0225FB9C, 0x68
.word ov123_0225FC14, 0x68
.word ov123_0225FC8C, 0x68
.word 0, 0
arm_func_end ov123_0225FD04
arm_func_start ov123_0225FD3C
ov123_0225FD3C: ; 0x0225FD3C
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
bl DC_FlushRange
mov r0, r5
mov r1, r4
bl IC_InvalidateRange
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov123_0225FD3C
arm_func_start ov123_0225FD5C
ov123_0225FD5C: ; 0x0225FD5C
mov r0, r0, lsr #0x18
and r1, r0, #0xff
and r0, r1, #0xe
cmp r0, #0xa
bne _0225FD90
and r0, r1, #0xf0
cmp r0, #0xf0
moveq r0, #1
bxeq lr
tst r1, #1
movne r0, #2
moveq r0, #3
bx lr
_0225FD90:
mov r0, #0
bx lr
arm_func_end ov123_0225FD5C
arm_func_start ov123_0225FD98
ov123_0225FD98: ; 0x0225FD98
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
movs r8, r0
ldrne r1, [r8]
cmpne r1, #0
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r6, _0225FEA0 ; =SDK_OVERLAY_OV_123_BSS_START ; =_02260C00
_0225FDB0:
ldr r0, [r8, #4]
cmp r1, #0
sub r0, r0, r6
sub r4, r0, #0x1300
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
sub r7, r1, #0x1300
bic r0, r4, #3
add r5, r7, r0
cmp r7, r5
bhs _0225FE80
ldr sb, _0225FEA4 ; =0xFFFFFB3E ; =0xFFFFFB3E
_0225FDDC:
ldr r0, [r7]
bl ov123_0225FD5C
cmp r0, #1
cmpne r0, #2
beq _0225FDFC
cmp r0, #3
beq _0225FE20
b _0225FE44
_0225FDFC:
ldr r1, [r7]
bic r0, r1, #0xff000000
and r1, r1, #0xff000000
sub r0, r0, #0x1300
eor r1, r1, #0x1000000
bic r0, r0, #0xff000000
orr r0, r1, r0
str r0, [r7]
b _0225FE74
_0225FE20:
ldr r1, [r7]
bic r0, r1, #0xff000000
and r1, r1, #0xff000000
add r0, r0, sb
eor r1, r1, #0x1000000
bic r0, r0, #0xff000000
orr r0, r1, r0
str r0, [r7]
b _0225FE74
_0225FE44:
ldrb r2, [r7]
ldrb r1, [r7, #1]
ldrb r3, [r7, #2]
ldrb r0, [r7, #3]
eor r2, r2, #0x56
eor r1, r1, #0x65
eor r3, r3, #0x56
orr r1, r2, r1, lsl #8
eor r2, r0, #0xf0
orr r0, r1, r3, lsl #16
orr r0, r0, r2, lsl #24
str r0, [r7]
_0225FE74:
add r7, r7, #4
cmp r7, r5
blo _0225FDDC
_0225FE80:
ldr r0, [r8]
mov r1, r4
sub r0, r0, #0x1300
bl ov123_0225FD3C
ldr r1, [r8, #8]!
cmp r1, #0
bne _0225FDB0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.balign 4, 0
_0225FEA0: .word _02260C00
_0225FEA4: .word 0xFFFFFB3E
arm_func_end ov123_0225FD98
arm_func_start ov123_0225FEA8
ov123_0225FEA8: ; 0x0225FEA8
stmdb sp!, {r3-r7, lr}
sub sp, sp, #0x10
ldr r3, _0225FF2C ; =_02260C00
mov r5, r1
add r1, r3, #0x1300
sub r6, r0, r1
mov r4, r2
sub r4, r4, r1
mov r2, r6, lsr #0x18
mov r0, r6, lsr #0x8
orr r0, r0, r6, lsl #0x18
eor ip, r4, r0
eor r7, r6, r4
mov r1, r6, lsr #0x10
orr r3, r2, r6, lsl #0x8
orr r2, r1, r6, lsl #0x10
eor r6, r4, r3
eor lr, r4, r2
sub r1, r5, #0x1300
add r0, sp, #0
mov r2, r1
mov r3, r4
str r7, [sp]
str r6, [sp, #4]
str lr, [sp, #8]
str ip, [sp, #12]
bl ov123_02260B14
mov r1, r4
sub r0, r5, #0x1300
bl ov123_0225FD3C
sub r0, r5, #0x1300
add sp, sp, #0x10
ldmfd sp!, {r3-r7, pc}
_0225FF2C: .word _02260C00
arm_func_end ov123_0225FEA8
arm_func_start ov123_0225FF30
ov123_0225FF30: ; 0x0225FF30
stmdb sp!, {r3, r4, r5, r6, r7, lr}
sub sp, sp, #16
ldr r3, [pc, #124] ; _0225FFBC
mov r7, r0
add r4, r3, #4864 ; 0x1300
mov r6, r1
sub r0, r7, r4
add r7, r0, r6, lsr #20
mov r5, r2
mov r2, r7, lsr #24
sub r5, r5, r4
mov r0, r7, lsr #8
orr r3, r2, r7, lsl #8
mov r1, r7, lsr #16
orr r2, r1, r7, lsl #16
eor lr, r5, r3
eor ip, r7, r5
eor r3, r5, r2
sub r1, r6, #4864 ; 0x1300
str r3, [sp, #8]
orr r0, r0, r7, lsl #24
str ip, [sp]
eor ip, r5, r0
add r0, sp, #0
mov r2, r1
mov r3, r5
str lr, [sp, #4]
str ip, [sp, #12]
bl ov123_02260ABC
mov r1, r5
sub r0, r6, #4864 ; 0x1300
bl ov123_0225FD3C
add r0, r7, r4
add sp, sp, #16
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0225FFBC: .word _02260C00
arm_func_end ov123_0225FF30
arm_func_start ov123_0225FFC0
ov123_0225FFC0: ; 0x0225FFC0
stmdb sp!, {lr}
adr r0, _0225FFD0
bl ov123_0225FD98
ldmia sp!, {pc}
_0225FFD0:
.word ov123_0225FF30, 0x8C
.word ov123_0225FEA8, 0x84
.word 0, 0
arm_func_end ov123_0225FFC0
arm_func_start ov123_0225FFE8
ov123_0225FFE8: ; 0x0225FFE8
stmdb sp!, {r3, r4, lr}
sub sp, sp, #92 ; 0x5c
add r0, sp, #0
bl OS_GetMacAddress
ldr r3, [pc, #148] ; _02260094
add r2, sp, #0
mov r4, #0
_02260004:
ldrb r0, [r2]
ldrb r1, [r3]
eor r0, r0, #255 ; 0xff
cmp r1, r0
bne _0226002C
add r4, r4, #1
cmp r4, #6
add r2, r2, #1
add r3, r3, #1
blt _02260004
_0226002C:
add r0, sp, #6
bl OS_GetOwnerInfo
cmp r4, #6
ldreqb r0, [sp, #8]
cmpeq r0, #1
ldreqb r0, [sp, #9]
cmpeq r0, #1
ldreqh r0, [sp, #32]
cmpeq r0, #0
addeq sp, sp, #92 ; 0x5c
moveq r0, #1
ldmeqia sp!, {r3, r4, pc}
add r1, sp, #0
mov r2, #0
_02260064:
ldrb r0, [r1]
cmp r0, #0
addne sp, sp, #92 ; 0x5c
movne r0, #0
ldmneia sp!, {r3, r4, pc}
add r2, r2, #1
cmp r2, #6
add r1, r1, #1
blt _02260064
mov r0, #1
add sp, sp, #92 ; 0x5c
ldmia sp!, {r3, r4, pc}
_02260094: .word _02260BD4
arm_func_end ov123_0225FFE8
arm_func_start ov123_02260098
ov123_02260098: ; 0x02260098
stmdb sp!, {r3, r4, lr}
sub sp, sp, #92 ; 0x5c
add r0, sp, #0
bl OS_GetMacAddress
ldr r3, [pc, #148] ; _02260144
add r2, sp, #0
mov r4, #0
_022600B4:
ldrb r0, [r2]
ldrb r1, [r3]
eor r0, r0, #255 ; 0xff
cmp r1, r0
bne _022600DC
add r4, r4, #1
cmp r4, #6
add r2, r2, #1
add r3, r3, #1
blt _022600B4
_022600DC:
add r0, sp, #6
bl OS_GetOwnerInfo
cmp r4, #6
ldreqb r0, [sp, #8]
cmpeq r0, #1
ldreqb r0, [sp, #9]
cmpeq r0, #1
ldreqh r0, [sp, #32]
cmpeq r0, #0
addeq sp, sp, #92 ; 0x5c
moveq r0, #0
ldmeqia sp!, {r3, r4, pc}
add r1, sp, #0
mov r2, #0
_02260114:
ldrb r0, [r1]
cmp r0, #0
addne sp, sp, #92 ; 0x5c
movne r0, #1
ldmneia sp!, {r3, r4, pc}
add r2, r2, #1
cmp r2, #6
add r1, r1, #1
blt _02260114
mov r0, #0
add sp, sp, #92 ; 0x5c
ldmia sp!, {r3, r4, pc}
_02260144: .word _02260BD4
arm_func_end ov123_02260098
arm_func_start ov123_02260148
ov123_02260148: ; 0x02260148
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _022601BC ; =ov123_0225FFE8
adr r3, _022601B0 ; =_02260C00+1
str lr, [r3]
ldr r2, _022601B4 ; =0xAC
ldr r0, _022601B8 ; =0x982
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _022601BC ; =ov123_0225FFE8
ldr r2, _022601B4 ; =0xAC
ldr r0, _022601B8 ; =0x982
bl ov123_0225FF30
str r0, _022601B8 ; =0x982
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _022601B0 ; =_02260C00+1
str pc, _022601B0 ; =_02260C00+1
bx lr
_022601B0: .word _02260C00+1
_022601B4: .word 0xAC
_022601B8: .word 0x982
_022601BC: .word ov123_0225FFE8
arm_func_end ov123_02260148
arm_func_start ov123_022601C0
ov123_022601C0: ; 0x022601C0
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _02260234 ; =ov123_02260098
adr r3, _02260228 ; =_02260C00+1
str lr, [r3]
ldr r2, _0226022C ; =0xAC
ldr r0, _02260230 ; =0x982
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _02260234 ; =ov123_02260098
ldr r2, _0226022C ; =0xAC
ldr r0, _02260230 ; =0x982
bl ov123_0225FF30
str r0, _02260230 ; =0x982
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _02260228 ; =_02260C00+1
str pc, _02260228 ; =_02260C00+1
bx lr
_02260228: .word _02260C00+1
_0226022C: .word 0xAC
_02260230: .word 0x982
_02260234: .word ov123_02260098
arm_func_end ov123_022601C0
arm_func_start ov123_02260238
ov123_02260238: ; 0x02260238
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
bl OS_GetLockID
mov r0, r0, lsl #16
mov fp, r0, lsr #16
mov r0, fp
bl CARD_LockRom
ldr r7, [pc, #332] ; _022603B4
mov r0, #1
ldrh lr, [r7]
ldrh r1, [r7]
mov r3, r0, lsl #26
mov r0, #5
bic r2, r1, #2048 ; 0x800
mov r1, r0, lsl #18
strh r2, [r7]
add r0, r3, #16384 ; 0x4000
ldrb r0, [r0]
sub r1, r1, #13
tst r0, #1
orrne r1, r1, #262144 ; 0x40000
mov r0, r1, lsl #5
ldr r1, [r0]
ldr r0, [pc, #272] ; 0x22603b8
bic r1, r1, #117440512 ; 0x7000000
and r0, r5, r0
orr r7, r1, #-1593835520 ; 0xa1000000
rsb ip, r0, #0
_022602B4:
ldr r0, [r3, #420] ; 0x1a4
tst r0, #-2147483648 ; 0x80000000
bne _022602B4
mov r0, #128 ; 0x80
add r2, sp, #0
strb r0, [r3, #417] ; 0x1a1
mov r1, #0
_022602D0:
add r0, r1, #67108864 ; 0x4000000
ldrb r0, [r0, #424] ; 0x1a8
add r1, r1, #1
cmp r1, #8
strb r0, [r2], #1
blt _022602D0
cmp ip, r4
add r5, r5, ip
bge _02260374
mov r8, r5, lsr #8
add r9, r3, #1048576 ; 0x100000
mov r2, #183 ; 0xb7
mov r1, #67108864 ; 0x4000000
mov r0, #0
_02260308:
strb r2, [r1, #424] ; 0x1a8
mov sl, r5, lsr #24
strb sl, [r1, #425] ; 0x1a9
mov sl, r5, lsr #16
strb sl, [r1, #426] ; 0x1aa
strb r8, [r1, #427] ; 0x1ab
strb r5, [r1, #428] ; 0x1ac
strb r0, [r1, #429] ; 0x1ad
strb r0, [r1, #430] ; 0x1ae
strb r0, [r1, #431] ; 0x1af
str r7, [r3, #420] ; 0x1a4
_02260334:
ldr sl, [r3, #420] ; 0x1a4
tst sl, #8388608 ; 0x800000
beq _02260358
cmp ip, #0
ldr sl, [r9, #16]
blt _02260354
cmp ip, r4
strlt sl, [r6, ip]
_02260354:
add ip, ip, #4
_02260358:
ldr sl, [r3, #420] ; 0x1a4
tst sl, #-2147483648 ; 0x80000000
bne _02260334
cmp ip, r4
add r8, r8, #2
add r5, r5, #512 ; 0x200
blt _02260308
_02260374:
add r2, sp, #0
mov r4, #0
_0226037C:
ldrb r1, [r2], #1
add r0, r4, #67108864 ; 0x4000000
add r4, r4, #1
strb r1, [r0, #424] ; 0x1a8
cmp r4, #8
blt _0226037C
add r1, r3, #512 ; 0x200
mov r0, fp
strh lr, [r1, #4]
bl CARD_UnlockRom
mov r0, fp
bl OS_ReleaseLockID
add sp, sp, #8
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_022603B4: .word 0x04000204
_022603B8: .word 0x000001FF
arm_func_end ov123_02260238
arm_func_start ov123_022603BC
ov123_022603BC: ; 0x022603BC
; crc32?
stmdb sp!, {r4, lr}
cmp r1, #0
sub r1, r1, #1
mvn r4, #0
beq _02260408
ldr r2, [pc, #56] ; _02260410
mov r3, #0
_022603D8:
ldrb ip, [r0], #1
mov lr, r3
eor r4, r4, ip
_022603E4:
tst r4, #1
movne r4, r4, lsr #1
add lr, lr, #1
eoreq r4, r2, r4, lsr #1
cmp lr, #8
blt _022603E4
cmp r1, #0
sub r1, r1, #1
bne _022603D8
_02260408:
mvn r0, r4
ldmia sp!, {r4, pc}
_02260410:
.word 0xEDB88320
arm_func_end ov123_022603BC
arm_func_start ov123_02260414
ov123_02260414: ; 0x02260414
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _02260488 ; =ov123_02260238
adr r3, _0226047C ; =_02260C00+1
str lr, [r3]
ldr r2, _02260480 ; =0x17C
ldr r0, _02260484 ; =0x982
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _02260488 ; =ov123_02260238
ldr r2, _02260480 ; =0x17C
ldr r0, _02260484 ; =0x982
bl ov123_0225FF30
str r0, _02260484 ; =0x982
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0226047C ; =_02260C00+1
str pc, _0226047C ; =_02260C00+1
bx lr
_0226047C: .word _02260C00+1
_02260480: .word 0x17C
_02260484: .word 0x982
_02260488: .word ov123_02260238
arm_func_end ov123_02260414
arm_func_start ov123_0226048C
ov123_0226048C: ; 0x0226048C
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _02260500 ; =ov123_022603BC
adr r3, _022604F4 ; =_02260C00+1
str lr, [r3]
ldr r2, _022604F8 ; =0x54
ldr r0, _022604FC ; =0x982
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _02260500 ; =ov123_022603BC
ldr r2, _022604F8 ; =0x54
ldr r0, _022604FC ; =0x982
bl ov123_0225FF30
str r0, _022604FC ; =0x982
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _022604F4 ; =_02260C00+1
str pc, _022604F4 ; =_02260C00+1
bx lr
_022604F4: .word _02260C00+1
_022604F8: .word 0x54
_022604FC: .word 0x982
_02260500: .word ov123_022603BC
arm_func_end ov123_0226048C
arm_func_start ov123_02260504
ov123_02260504: ; 0x02260504
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, lr}
sub sp, sp, #540 ; 0x21c
mov r0, #1
mov r9, #512 ; 0x200
mov r4, #4096 ; 0x1000
mov r5, #0
mov r6, r0, lsl #15
add sl, sp, #28
mov r8, r9
add r7, sp, #0
_0226052C:
mov r0, sl
mov r1, r4
mov r2, r9
bl ov123_02260414
mov r0, sl
mov r1, r8
bl ov123_0226048C
cmp r5, #2
str r0, [r7, r5, lsl #2]
moveq r4, r6
add r5, r5, #1
addne r4, r4, #512 ; 0x200
cmp r5, #6
blt _0226052C
ldr r2, [sp, #12]
mov r3, #0
add r1, sp, #0
_02260570:
ldr r0, [r1, r3, lsl #2]
cmp r2, r0
movne r0, #1
bne _022605A4
add r3, r3, #1
cmp r3, #3
blt _02260570
ldr r0, [sp, #16]
cmp r2, r0
ldreq r0, [sp, #20]
cmpeq r2, r0
moveq r0, #1
movne r0, #0
_022605A4:
mov r3, #0
add r2, sp, #28
mov r1, r3
_022605B0:
add r3, r3, #1
cmp r3, #512 ; 0x200
strb r1, [r2], #1
blt _022605B0
add sp, sp, #540 ; 0x21c
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, pc}
arm_func_end ov123_02260504
arm_func_start ov123_022605C8
ov123_022605C8: ; 0x022605C8
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, lr}
sub sp, sp, #540 ; 0x21c
mov r0, #1
mov r9, #512 ; 0x200
mov r4, #4096 ; 0x1000
mov r5, #0
mov r6, r0, lsl #15
add sl, sp, #28
mov r8, r9
add r7, sp, #0
_022605F0:
mov r0, sl
mov r1, r4
mov r2, r9
bl ov123_02260414
mov r0, sl
mov r1, r8
bl ov123_0226048C
cmp r5, #2
str r0, [r7, r5, lsl #2]
moveq r4, r6
add r5, r5, #1
addne r4, r4, #512 ; 0x200
cmp r5, #6
blt _022605F0
ldr r2, [sp, #12]
mov r3, #0
add r1, sp, #0
_02260634:
ldr r0, [r1, r3, lsl #2]
cmp r2, r0
movne r0, #0
bne _02260668
add r3, r3, #1
cmp r3, #3
blt _02260634
ldr r0, [sp, #16]
cmp r2, r0
ldreq r0, [sp, #20]
cmpeq r2, r0
moveq r0, #0
movne r0, #1
_02260668:
mov r3, #0
add r2, sp, #28
mov r1, r3
_02260674:
add r3, r3, #1
cmp r3, #512 ; 0x200
strb r1, [r2], #1
blt _02260674
add sp, sp, #540 ; 0x21c
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, pc}
arm_func_end ov123_022605C8
arm_func_start ov123_0226068C
ov123_0226068C: ; 0x0226068C
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _02260700 ; =ov123_02260504
adr r3, _022606F4 ; =_02260C00+1
str lr, [r3]
ldr r2, _022606F8 ; =0xC4
ldr r0, _022606FC ; =0x982
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _02260700 ; =ov123_02260504
ldr r2, _022606F8 ; =0xC4
ldr r0, _022606FC ; =0x982
bl ov123_0225FF30
str r0, _022606FC ; =0x982
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _022606F4 ; =_02260C00+1
str pc, _022606F4 ; =_02260C00+1
bx lr
_022606F4: .word _02260C00+1
_022606F8: .word 0xC4
_022606FC: .word 0x982
_02260700: .word ov123_02260504
arm_func_end ov123_0226068C
arm_func_start ov123_02260704
ov123_02260704: ; 0x02260704
stmfd sp!, {r4-r7}
stmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
ldr r1, _02260778 ; =ov123_022605C8
adr r3, _0226076C ; =_02260C00+1
str lr, [r3]
ldr r2, _02260770 ; =0xC4
ldr r0, _02260774 ; =0x982
bl ov123_0225FEA8
mov ip, r0
stmfd sp!, {r4-r7}
ldmfd sp!, {r0-r3}
ldmfd sp!, {r4-r7}
blx ip
stmfd sp!, {r4}
mov r4, r0
ldr r1, _02260778 ; =ov123_022605C8
ldr r2, _02260770 ; =0xC4
ldr r0, _02260774 ; =0x982
bl ov123_0225FF30
str r0, _02260774 ; =0x982
mov r0, r4
ldmfd sp!, {r4}
ldr lr, _0226076C ; =_02260C00+1
str pc, _0226076C ; =_02260C00+1
bx lr
_0226076C: .word _02260C00+1
_02260770: .word 0xC4
_02260774: .word 0x982
_02260778: .word ov123_022605C8
arm_func_end ov123_02260704
arm_func_start ov123_0226077C
ov123_0226077C: ; 0x0226077C
stmdb sp!, {lr}
adr r0, _0226078C
bl ov123_0225FD98
ldmia sp!, {pc}
_0226078C:
.word ov123_0226068C, 0x68
.word ov123_02260704, 0x68
.word ov123_02260148, 0x68
.word ov123_022601C0, 0x68
.word ov123_02260414, 0x68
.word ov123_0226048C, 0x68
.word 0, 0
arm_func_end ov123_0226077C
arm_func_start ov123_022607C4
ov123_022607C4: ; 0x022607C4
stmfd sp!, {r4-r8, lr}
mov r6, #0
str r6, [r0]
mov r7, r6
mov r4, r6
str r6, [r0, #4]
_022607DC:
add r3, r0, r4
strb r4, [r3, #8]
add r4, r4, #1
cmp r4, #0x100
blt _022607DC
mov r8, #0xFF
mov r3, #0
_022607F8:
ldrb ip, [r1, r6]
add r5, r0, r8
ldrb r4, [r5, #8]
add ip, r7, ip
add r6, r6, #1
add ip, r4, ip
and r7, ip, #0xFF
add lr, r0, r7
ldrb ip, [lr, #8]
cmp r6, r2
movcs r6, r3
strb r4, [lr, #8]
strb ip, [r5, #8]
subs r8, r8, #1
bpl _022607F8
ldmfd sp!, {r4-r8, pc}
arm_func_end ov123_022607C4
arm_func_start ov123_02260838
ov123_02260838: ; 0x02260838
stmfd sp!, {r4, lr}
ldr r1, [r0]
add lr, r0, #8
add r1, r1, #1
and r4, r1, #0xFF
ldrb ip, [lr, r4]
ldr r1, [r0, #4]
add r1, ip, r1
and r3, r1, #0xFF
ldrb r2, [lr, r3]
str r4, [r0]
str r3, [r0, #4]
add r1, ip, r2
strb ip, [lr, r3]
and r1, r1, #0xFF
strb r2, [lr, r4]
add r0, r0, r1
ldrb r0, [r0, #8]
ldmfd sp!, {r4, pc}
arm_func_end ov123_02260838
arm_func_start ov123_02260884
ov123_02260884: ; 0x02260884
mov r2, #0
_02260888:
and r1, r2, #0xFF
eor r1, r1, #1
strb r1, [r0, r2]
add r2, r2, #1
cmp r2, #0x100
blt _02260888
mov r0, #0
bx lr
arm_func_end ov123_02260884
arm_func_start ov123_022608A8
ov123_022608A8: ; 0x022608A8
; s32 ov123_022608A8(UnkStruct *obj, void *dest, void *src, u32 size)
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #256 ; 0x100
mov r7, r3
tst r7, #3
mov sl, r0
mov r9, r1
mov r8, r2
addne sp, sp, #256 ; 0x100
mvnne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
add r0, sp, #0
bl ov123_02260884
cmp r7, #0
mov r4, #0
bls _022609A4
add fp, sp, #0
_022608E8:
ldr r0, [r9, r4]
add r6, r9, r4
bl ov123_0225FD5C
cmp r0, #1
cmpne r0, #2
beq _0226090C
cmp r0, #3
beq _02260934
b _02260958
_0226090C:
ldr r2, [r6]
bic r0, r2, #-16777216 ; 0xff000000
add r0, r0, #194 ; 0xc2
and r1, r2, #-16777216 ; 0xff000000
add r0, r0, #1024 ; 0x400
eor r1, r1, #16777216 ; 0x1000000
bic r0, r0, #-16777216 ; 0xff000000
orr r0, r1, r0
str r0, [r8, r4]
b _02260998
_02260934:
ldr r2, [r6]
bic r0, r2, #-16777216 ; 0xff000000
and r1, r2, #-16777216 ; 0xff000000
add r0, r0, #4864 ; 0x1300
eor r1, r1, #16777216 ; 0x1000000
bic r0, r0, #-16777216 ; 0xff000000
orr r0, r1, r0
str r0, [r8, r4]
b _02260998
_02260958:
mov r0, sl
add r5, r8, r4
bl ov123_02260838
ldrb r1, [r6]
eor r1, r1, r0
mov r0, sl
strb r1, [r8, r4]
bl ov123_02260838
ldrb r1, [r6, #1]
eor r0, r1, r0
strb r0, [r5, #1]
ldrb r0, [r6, #2]
ldrb r0, [fp, r0]
strb r0, [r5, #2]
ldrb r0, [r6, #3]
strb r0, [r5, #3]
_02260998:
add r4, r4, #4
cmp r4, r7
bcc _022608E8
_022609A4:
mov r0, #0
add sp, sp, #256 ; 0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
arm_func_end ov123_022608A8
arm_func_start ov123_022609B0
ov123_022609B0: ; 0x022609B0
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
sub sp, sp, #256 ; 0x100
mov r7, r3
tst r7, #3
mov sl, r0
mov r9, r1
mov r8, r2
addne sp, sp, #256 ; 0x100
mvnne r0, #0
ldmneia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
add r0, sp, #0
bl ov123_02260884
cmp r7, #0
mov r4, #0
bls _02260AAC
add fp, sp, #0
_022609F0:
ldr r0, [r9, r4]
add r6, r9, r4
bl ov123_0225FD5C
cmp r0, #1
cmpne r0, #2
beq _02260A14
cmp r0, #3
beq _02260A38
b _02260A60
_02260A14:
ldr r2, [r6]
bic r0, r2, #-16777216 ; 0xff000000
and r1, r2, #-16777216 ; 0xff000000
sub r0, r0, #4864 ; 0x1300
eor r1, r1, #16777216 ; 0x1000000
bic r0, r0, #-16777216 ; 0xff000000
orr r0, r1, r0
str r0, [r8, r4]
b _02260AA0
_02260A38:
ldr r3, [r6]
ldr r0, [pc, #116] ; 0x2260ab8
bic r1, r3, #-16777216 ; 0xff000000
add r0, r1, r0
and r2, r3, #-16777216 ; 0xff000000
eor r1, r2, #16777216 ; 0x1000000
bic r0, r0, #-16777216 ; 0xff000000
orr r0, r1, r0
str r0, [r8, r4]
b _02260AA0
_02260A60:
mov r0, sl
add r5, r8, r4
bl ov123_02260838
ldrb r1, [r6]
eor r1, r1, r0
mov r0, sl
strb r1, [r8, r4]
bl ov123_02260838
ldrb r1, [r6, #1]
eor r0, r1, r0
strb r0, [r5, #1]
ldrb r0, [r6, #2]
ldrb r0, [fp, r0]
strb r0, [r5, #2]
ldrb r0, [r6, #3]
strb r0, [r5, #3]
_02260AA0:
add r4, r4, #4
cmp r4, r7
bcc _022609F0
_02260AAC:
mov r0, #0
add sp, sp, #256 ; 0x100
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_02260AB8: .word 0xFFFFFB3E ; ; <UNDEFINED> instruction: 0xfffffb3e
arm_func_end ov123_022609B0
arm_func_start ov123_02260ABC
ov123_02260ABC: ; 0x02260ABC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #264 ; 0x108
mov r4, r0
mov r6, r1
mov r5, r2
mov r1, r4
add r0, sp, #0
mov r2, #16
mov r4, r3
bl ov123_022607C4
add r0, sp, #0
mov r1, r6
mov r2, r5
mov r3, r4
bl ov123_022608A8
mvn r1, #0
cmp r0, r1
moveq r0, #1
movne r0, #0
rsb r0, r0, #0
add sp, sp, #264 ; 0x108
ldmia sp!, {r4, r5, r6, pc}
arm_func_end ov123_02260ABC
arm_func_start ov123_02260B14
ov123_02260B14: ; 0x02260B14
stmfd sp!, {r4, r5, r6, lr}
sub sp, sp, #264 ; 0x108
mov r4, r0
mov r6, r1
mov r5, r2
mov r1, r4
add r0, sp, #0
mov r2, #16
mov r4, r3
bl ov123_022607C4
add r0, sp, #0
mov r1, r6
mov r2, r5
mov r3, r4
bl ov123_022609B0
mvn r1, #0
cmp r0, r1
moveq r0, #1
movne r0, #0
rsb r0, r0, #0
add sp, sp, #264 ; 0x108
ldmfd sp!, {r4, r5, r6, pc}
arm_func_end ov123_02260B14
arm_func_start ov123_02260B6C
ov123_02260B6C: ; 0x02260B6C
stmdb sp!, {lr}
adr r0, _02260B7C
bl ov123_0225FD98
ldmia sp!, {pc}
_02260B7C:
.word ov123_022607C4, 0x74
.word ov123_02260838, 0x4C
.word ov123_02260884, 0x24
.word ov123_022608A8, 0x108
.word ov123_022609B0, 0x108
.word ov123_02260ABC, 0x58
.word ov123_02260B14, 0x58
.word 0, 0
arm_func_end ov123_02260B6C
arm_func_start ov123_02260BBC
ov123_02260BBC: ; unreferenced
.word 0xEBAA0113
.word 0xE4064EC7
.word 0xEF013596
.word 0xE5212F83
.word 0xE7EE335B
.word 0xE83B197C
arm_func_end ov123_02260BBC
.rodata
_02260BD4: ; MAC address
.byte 0xFF, 0xF6, 0x40, 0xFF, 0xFF, 0xCE
.section .sinit,4
.word ov123_0225F700
.word ov123_0225FD04
.word ov123_0225FFC0
.word ov123_0226077C
.word ov123_02260B6C
.bss
_02260C00:
.space 0x20