mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-11 06:25:23 -05:00
3487 lines
56 KiB
ArmAsm
3487 lines
56 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80C52D0
|
|
sub_80C52D0: @ 80C52D0
|
|
push {lr}
|
|
ldr r2, _080C5318 @ =gUnknown_3005334
|
|
ldr r1, [r0, 0x4]
|
|
str r1, [r2]
|
|
ldr r2, _080C531C @ =gUnknown_3005348
|
|
ldrb r1, [r0, 0x1F]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5320 @ =gUnknown_3005330
|
|
ldrb r1, [r0, 0x19]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5324 @ =gUnknown_3005344
|
|
ldrb r1, [r0, 0x1A]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5328 @ =gUnknown_3005340
|
|
ldrb r1, [r0, 0x1B]
|
|
strb r1, [r2]
|
|
ldr r2, _080C532C @ =gUnknown_3005338
|
|
ldrb r1, [r0, 0x1C]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5330 @ =gUnknown_300534C
|
|
ldrb r1, [r0, 0x1D]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5334 @ =gUnknown_300533C
|
|
ldrb r1, [r0, 0x1E]
|
|
strb r1, [r2]
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, 0x22
|
|
bls _080C530C
|
|
b _080C5458
|
|
_080C530C:
|
|
lsls r0, 2
|
|
ldr r1, _080C5338 @ =_080C533C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C5318: .4byte gUnknown_3005334
|
|
_080C531C: .4byte gUnknown_3005348
|
|
_080C5320: .4byte gUnknown_3005330
|
|
_080C5324: .4byte gUnknown_3005344
|
|
_080C5328: .4byte gUnknown_3005340
|
|
_080C532C: .4byte gUnknown_3005338
|
|
_080C5330: .4byte gUnknown_300534C
|
|
_080C5334: .4byte gUnknown_300533C
|
|
_080C5338: .4byte _080C533C
|
|
.align 2, 0
|
|
_080C533C:
|
|
.4byte _080C53C8
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5428
|
|
.4byte _080C5458
|
|
.4byte _080C53CE
|
|
.4byte _080C53D4
|
|
.4byte _080C53E8
|
|
.4byte _080C53FA
|
|
.4byte _080C5458
|
|
.4byte _080C5410
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5416
|
|
.4byte _080C53F4
|
|
.4byte _080C541C
|
|
.4byte _080C5422
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5434
|
|
_080C53C8:
|
|
bl sub_80C55D4
|
|
b _080C5458
|
|
_080C53CE:
|
|
bl sub_80C568C
|
|
b _080C5458
|
|
_080C53D4:
|
|
bl sub_80C5884
|
|
ldr r0, _080C53E4 @ =gUnknown_3005348
|
|
ldrb r0, [r0]
|
|
bl sub_80C5748
|
|
b _080C5458
|
|
.align 2, 0
|
|
_080C53E4: .4byte gUnknown_3005348
|
|
_080C53E8:
|
|
bl sub_80C5884
|
|
bl sub_80C59D4
|
|
bl sub_80C57EC
|
|
_080C53F4:
|
|
bl sub_80C59D4
|
|
b _080C5458
|
|
_080C53FA:
|
|
bl sub_80C5884
|
|
bl sub_80C5B9C
|
|
bl sub_80C5B9C
|
|
bl sub_80C5C44
|
|
bl sub_80C57EC
|
|
b _080C5458
|
|
_080C5410:
|
|
bl sub_80C5A6C
|
|
b _080C5458
|
|
_080C5416:
|
|
bl sub_80C5884
|
|
b _080C5458
|
|
_080C541C:
|
|
bl sub_80C5B9C
|
|
b _080C5458
|
|
_080C5422:
|
|
bl sub_80C5C44
|
|
b _080C5458
|
|
_080C5428:
|
|
bl sub_80C55F4
|
|
movs r0, 0x3
|
|
bl sub_80C545C
|
|
b _080C5458
|
|
_080C5434:
|
|
bl sub_80C5884
|
|
bl sub_80C5B9C
|
|
bl sub_80C5C44
|
|
bl sub_80C57EC
|
|
bl sub_80C568C
|
|
bl sub_80C568C
|
|
movs r0, 0x2
|
|
bl sub_80C545C
|
|
movs r0, 0x4
|
|
bl sub_80C5514
|
|
_080C5458:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C52D0
|
|
|
|
thumb_func_start sub_80C545C
|
|
sub_80C545C: @ 80C545C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r2, 0
|
|
ldr r0, _080C54FC @ =gUnknown_3005338
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C54EE
|
|
ldr r1, _080C5500 @ =gUnknown_3005340
|
|
mov r12, r1
|
|
ldr r3, _080C5504 @ =gUnknown_300534C
|
|
mov r10, r3
|
|
ldr r0, _080C5508 @ =gUnknown_3005330
|
|
mov r9, r0
|
|
_080C5482:
|
|
ldr r1, _080C550C @ =gUnknown_3005344
|
|
ldrb r0, [r1]
|
|
adds r0, r2
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
ldr r3, _080C5510 @ =gUnknown_3005334
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r3, r1, r0
|
|
movs r4, 0
|
|
adds r5, r2, 0x1
|
|
mov r0, r12
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _080C54E2
|
|
movs r6, 0x80
|
|
lsls r6, 8
|
|
_080C54AE:
|
|
ldrh r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C54D2
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
adds r0, r7
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1F
|
|
bls _080C54C8
|
|
movs r2, 0x1F
|
|
_080C54C8:
|
|
lsls r0, r2, 10
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
_080C54D2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r3, 0x2
|
|
mov r1, r12
|
|
ldrb r1, [r1]
|
|
cmp r4, r1
|
|
bcc _080C54AE
|
|
_080C54E2:
|
|
lsls r0, r5, 24
|
|
lsrs r2, r0, 24
|
|
mov r3, r8
|
|
ldrb r3, [r3]
|
|
cmp r2, r3
|
|
bcc _080C5482
|
|
_080C54EE:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C54FC: .4byte gUnknown_3005338
|
|
_080C5500: .4byte gUnknown_3005340
|
|
_080C5504: .4byte gUnknown_300534C
|
|
_080C5508: .4byte gUnknown_3005330
|
|
_080C550C: .4byte gUnknown_3005344
|
|
_080C5510: .4byte gUnknown_3005334
|
|
thumb_func_end sub_80C545C
|
|
|
|
thumb_func_start sub_80C5514
|
|
sub_80C5514: @ 80C5514
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r2, 0
|
|
ldr r0, _080C55BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C55AC
|
|
ldr r1, _080C55C0 @ =gUnknown_3005340
|
|
mov r10, r1
|
|
_080C5532:
|
|
ldr r3, _080C55C4 @ =gUnknown_3005344
|
|
ldrb r0, [r3]
|
|
adds r0, r2
|
|
ldr r3, _080C55C8 @ =gUnknown_300534C
|
|
ldrb r1, [r3]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
ldr r3, _080C55CC @ =gUnknown_3005334
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r3, _080C55D0 @ =gUnknown_3005330
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r3, r1, r0
|
|
movs r5, 0
|
|
adds r7, r2, 0x1
|
|
mov r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C55A0
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
mov r9, r1
|
|
movs r0, 0x1F
|
|
mov r12, r0
|
|
mov r1, r8
|
|
subs r6, r0, r1
|
|
_080C5568:
|
|
ldrh r1, [r3]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5590
|
|
movs r4, 0x1F
|
|
mov r2, r12
|
|
ands r2, r1
|
|
cmp r2, r6
|
|
ble _080C5586
|
|
mov r1, r8
|
|
lsrs r0, r1, 1
|
|
subs r0, r4, r0
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_080C5586:
|
|
lsls r0, r2, 10
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
_080C5590:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r3, 0x2
|
|
mov r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C5568
|
|
_080C55A0:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080C55BC @ =gUnknown_3005338
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcc _080C5532
|
|
_080C55AC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C55BC: .4byte gUnknown_3005338
|
|
_080C55C0: .4byte gUnknown_3005340
|
|
_080C55C4: .4byte gUnknown_3005344
|
|
_080C55C8: .4byte gUnknown_300534C
|
|
_080C55CC: .4byte gUnknown_3005334
|
|
_080C55D0: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C5514
|
|
|
|
thumb_func_start sub_80C55D4
|
|
sub_80C55D4: @ 80C55D4
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, _080C55F0 @ =0x00000c7f
|
|
_080C55DA:
|
|
lsls r0, r4, 16
|
|
lsrs r0, 16
|
|
bl sub_80C5CF8
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
bls _080C55DA
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C55F0: .4byte 0x00000c7f
|
|
thumb_func_end sub_80C55D4
|
|
|
|
thumb_func_start sub_80C55F4
|
|
sub_80C55F4: @ 80C55F4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C5674 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5666
|
|
ldr r0, _080C5678 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C567C @ =gUnknown_3005340
|
|
_080C560C:
|
|
ldr r0, _080C5680 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C5684 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5688 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C565A
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5638:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C564C
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl sub_80C5ECC
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C564C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5638
|
|
_080C565A:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5674 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C560C
|
|
_080C5666:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5674: .4byte gUnknown_3005338
|
|
_080C5678: .4byte gUnknown_3005334
|
|
_080C567C: .4byte gUnknown_3005340
|
|
_080C5680: .4byte gUnknown_3005344
|
|
_080C5684: .4byte gUnknown_300534C
|
|
_080C5688: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C55F4
|
|
|
|
thumb_func_start sub_80C568C
|
|
sub_80C568C: @ 80C568C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r2, 0
|
|
ldr r0, _080C5730 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5722
|
|
ldr r0, _080C5734 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C5738 @ =gUnknown_300534C
|
|
_080C56A4:
|
|
ldr r0, _080C573C @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r3]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5740 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0x1
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5744 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r7, r2, 0x1
|
|
cmp r5, r0
|
|
bge _080C5716
|
|
ldr r6, _080C5738 @ =gUnknown_300534C
|
|
_080C56DA:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5700
|
|
ldrb r2, [r6]
|
|
lsls r2, 1
|
|
adds r2, r4, r2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_80C61BC
|
|
strh r0, [r4]
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldr r3, [sp, 0x4]
|
|
_080C5700:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5744 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080C56DA
|
|
_080C5716:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5730 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C56A4
|
|
_080C5722:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5730: .4byte gUnknown_3005340
|
|
_080C5734: .4byte gUnknown_3005334
|
|
_080C5738: .4byte gUnknown_300534C
|
|
_080C573C: .4byte gUnknown_3005344
|
|
_080C5740: .4byte gUnknown_3005330
|
|
_080C5744: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C568C
|
|
|
|
thumb_func_start sub_80C5748
|
|
sub_80C5748: @ 80C5748
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r2, 0
|
|
ldr r0, _080C57D4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C57C4
|
|
ldr r0, _080C57D8 @ =gUnknown_3005334
|
|
mov r9, r0
|
|
ldr r3, _080C57DC @ =gUnknown_3005340
|
|
_080C5768:
|
|
ldr r0, _080C57E0 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C57E4 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C57E8 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C57B8
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5794:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C57AA
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
str r3, [sp]
|
|
bl sub_80C5F00
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C57AA:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5794
|
|
_080C57B8:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C57D4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5768
|
|
_080C57C4:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C57D4: .4byte gUnknown_3005338
|
|
_080C57D8: .4byte gUnknown_3005334
|
|
_080C57DC: .4byte gUnknown_3005340
|
|
_080C57E0: .4byte gUnknown_3005344
|
|
_080C57E4: .4byte gUnknown_300534C
|
|
_080C57E8: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C5748
|
|
|
|
thumb_func_start sub_80C57EC
|
|
sub_80C57EC: @ 80C57EC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C586C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C585E
|
|
ldr r0, _080C5870 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C5874 @ =gUnknown_3005340
|
|
_080C5804:
|
|
ldr r0, _080C5878 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C587C @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5880 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C5852
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5830:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C5844
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl sub_80C600C
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C5844:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5830
|
|
_080C5852:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C586C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5804
|
|
_080C585E:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C586C: .4byte gUnknown_3005338
|
|
_080C5870: .4byte gUnknown_3005334
|
|
_080C5874: .4byte gUnknown_3005340
|
|
_080C5878: .4byte gUnknown_3005344
|
|
_080C587C: .4byte gUnknown_300534C
|
|
_080C5880: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C57EC
|
|
|
|
thumb_func_start sub_80C5884
|
|
sub_80C5884: @ 80C5884
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r7, 0
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcs _080C5910
|
|
ldr r0, _080C59C0 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C589A:
|
|
ldr r0, _080C59C4 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r7
|
|
ldr r0, _080C59C8 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
ldr r0, _080C59CC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r5, r1, r0
|
|
adds r4, r5, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
movs r6, 0x1
|
|
adds r5, r4, 0
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r7, 0x1
|
|
cmp r6, r0
|
|
bge _080C58FA
|
|
_080C58D2:
|
|
adds r4, r5, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
subs r1, r5, 0x2
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r5, r4, 0
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r6, r0
|
|
blt _080C58D2
|
|
_080C58FA:
|
|
subs r1, r5, 0x2
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
lsls r0, r7, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcc _080C589A
|
|
_080C5910:
|
|
movs r6, 0
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _080C59B0
|
|
ldr r3, _080C59C0 @ =gUnknown_3005334
|
|
mov r9, r3
|
|
ldr r0, _080C59C8 @ =gUnknown_300534C
|
|
mov r8, r0
|
|
_080C5922:
|
|
ldr r0, _080C59C4 @ =gUnknown_3005344
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
adds r2, r0
|
|
ldr r0, _080C59CC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
adds r0, r6
|
|
lsls r0, 1
|
|
adds r5, r2, r0
|
|
lsls r1, 1
|
|
adds r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
movs r7, 0x1
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r6, 0x1
|
|
cmp r7, r0
|
|
bge _080C5994
|
|
ldr r4, _080C59C8 @ =gUnknown_300534C
|
|
_080C5962:
|
|
ldrb r1, [r4]
|
|
lsls r1, 1
|
|
adds r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
ldrb r1, [r4]
|
|
lsls r1, 1
|
|
subs r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r7, r0
|
|
blt _080C5962
|
|
_080C5994:
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
subs r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _080C5922
|
|
_080C59B0:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C59BC: .4byte gUnknown_3005338
|
|
_080C59C0: .4byte gUnknown_3005334
|
|
_080C59C4: .4byte gUnknown_3005344
|
|
_080C59C8: .4byte gUnknown_300534C
|
|
_080C59CC: .4byte gUnknown_3005330
|
|
_080C59D0: .4byte gUnknown_3005340
|
|
thumb_func_end sub_80C5884
|
|
|
|
thumb_func_start sub_80C59D4
|
|
sub_80C59D4: @ 80C59D4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C5A54 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5A46
|
|
ldr r0, _080C5A58 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C5A5C @ =gUnknown_3005340
|
|
_080C59EC:
|
|
ldr r0, _080C5A60 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C5A64 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5A68 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C5A3A
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5A18:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C5A2C
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl sub_80C606C
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C5A2C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5A18
|
|
_080C5A3A:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5A54 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C59EC
|
|
_080C5A46:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5A54: .4byte gUnknown_3005338
|
|
_080C5A58: .4byte gUnknown_3005334
|
|
_080C5A5C: .4byte gUnknown_3005340
|
|
_080C5A60: .4byte gUnknown_3005344
|
|
_080C5A64: .4byte gUnknown_300534C
|
|
_080C5A68: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C59D4
|
|
|
|
thumb_func_start sub_80C5A6C
|
|
sub_80C5A6C: @ 80C5A6C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r0, _080C5B98 @ =gUnknown_3005334
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r5, r0, 0
|
|
_080C5A84:
|
|
movs r7, 0
|
|
_080C5A86:
|
|
ldrh r0, [r4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _080C5A96
|
|
adds r0, r4, 0
|
|
bl sub_80C606C
|
|
strh r0, [r4]
|
|
_080C5A96:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r4, 0x2
|
|
cmp r7, 0x3F
|
|
bls _080C5A86
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3F
|
|
bls _080C5A84
|
|
movs r7, 0
|
|
ldr r1, _080C5B98 @ =gUnknown_3005334
|
|
mov r10, r1
|
|
mov r3, sp
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
mov r9, r2
|
|
_080C5ABA:
|
|
lsls r0, r7, 1
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
strh r1, [r3]
|
|
mov r1, r9
|
|
strh r1, [r4]
|
|
movs r6, 0x1
|
|
adds r4, 0x80
|
|
adds r5, r0, 0
|
|
_080C5AD0:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080C5AF0
|
|
adds r2, r4, 0
|
|
adds r2, 0x80
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_80C62DC
|
|
strh r0, [r4]
|
|
ldr r3, [sp, 0x4]
|
|
strh r0, [r3]
|
|
_080C5AF0:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, 0x80
|
|
cmp r6, 0x3E
|
|
bls _080C5AD0
|
|
mov r0, r9
|
|
strh r0, [r4]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r4, r0, r5
|
|
ldrh r0, [r4]
|
|
strh r0, [r3]
|
|
mov r2, r9
|
|
strh r2, [r4]
|
|
movs r6, 0x1
|
|
adds r4, 0x80
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
mov r8, r0
|
|
_080C5B18:
|
|
ldrh r0, [r4]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
adds r5, r4, 0
|
|
adds r5, 0x80
|
|
cmp r0, 0
|
|
bne _080C5B38
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_80C62DC
|
|
strh r0, [r4]
|
|
ldr r3, [sp, 0x4]
|
|
strh r0, [r3]
|
|
_080C5B38:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, r5, 0
|
|
cmp r6, 0x3E
|
|
bls _080C5B18
|
|
mov r2, r9
|
|
strh r2, [r4]
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3F
|
|
bls _080C5ABA
|
|
ldr r0, _080C5B98 @ =gUnknown_3005334
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
mov r8, r0
|
|
_080C5B5E:
|
|
movs r7, 0
|
|
adds r5, r6, 0x1
|
|
_080C5B62:
|
|
ldrh r0, [r4]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5B74
|
|
adds r0, r4, 0
|
|
bl sub_80C606C
|
|
strh r0, [r4]
|
|
_080C5B74:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r4, 0x2
|
|
cmp r7, 0x3F
|
|
bls _080C5B62
|
|
lsls r0, r5, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3F
|
|
bls _080C5B5E
|
|
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
|
|
_080C5B98: .4byte gUnknown_3005334
|
|
thumb_func_end sub_80C5A6C
|
|
|
|
thumb_func_start sub_80C5B9C
|
|
sub_80C5B9C: @ 80C5B9C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C5C2C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5C1E
|
|
ldr r0, _080C5C30 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C5BB2:
|
|
ldr r0, _080C5C34 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C5C38 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C5C3C @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0x1
|
|
adds r4, 0x2
|
|
ldr r0, _080C5C40 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r6, r2, 0x1
|
|
cmp r5, r0
|
|
bge _080C5C12
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5BEA:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C5C00
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80C6098
|
|
strh r0, [r4]
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
_080C5C00:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C5C40 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080C5BEA
|
|
_080C5C12:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5C2C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5BB2
|
|
_080C5C1E:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5C2C: .4byte gUnknown_3005338
|
|
_080C5C30: .4byte gUnknown_3005334
|
|
_080C5C34: .4byte gUnknown_3005344
|
|
_080C5C38: .4byte gUnknown_300534C
|
|
_080C5C3C: .4byte gUnknown_3005330
|
|
_080C5C40: .4byte gUnknown_3005340
|
|
thumb_func_end sub_80C5B9C
|
|
|
|
thumb_func_start sub_80C5C44
|
|
sub_80C5C44: @ 80C5C44
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r2, 0
|
|
ldr r0, _080C5CE0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5CD2
|
|
ldr r0, _080C5CE4 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r7, _080C5CE8 @ =gUnknown_300534C
|
|
_080C5C5C:
|
|
ldr r0, _080C5CEC @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r7]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C5CF0 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0x1
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5CF4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r6, r2, 0x1
|
|
cmp r5, r0
|
|
bge _080C5CC6
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C5C96:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080C5CB0
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
str r2, [sp, 0x4]
|
|
bl sub_80C6098
|
|
strh r0, [r4]
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldr r2, [sp, 0x4]
|
|
_080C5CB0:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5CF4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080C5C96
|
|
_080C5CC6:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5CE0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5C5C
|
|
_080C5CD2:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5CE0: .4byte gUnknown_3005340
|
|
_080C5CE4: .4byte gUnknown_3005334
|
|
_080C5CE8: .4byte gUnknown_300534C
|
|
_080C5CEC: .4byte gUnknown_3005344
|
|
_080C5CF0: .4byte gUnknown_3005330
|
|
_080C5CF4: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C5C44
|
|
|
|
thumb_func_start sub_80C5CF8
|
|
sub_80C5CF8: @ 80C5CF8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
mov r2, sp
|
|
ldr r3, _080C5D64 @ =gUnknown_83F3024
|
|
lsls r1, r0, 1
|
|
add r1, r10
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x1]
|
|
mov r5, sp
|
|
adds r0, r3, 0x2
|
|
adds r1, r0
|
|
ldrb r4, [r1]
|
|
lsls r2, r4, 24
|
|
lsrs r1, r2, 27
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
strh r1, [r5, 0x2]
|
|
lsrs r2, 25
|
|
mov r9, r2
|
|
movs r0, 0x3
|
|
ands r2, r0
|
|
mov r9, r2
|
|
movs r5, 0x1
|
|
ands r5, r4
|
|
movs r4, 0x1
|
|
mov r8, r4
|
|
cmp r8, r1
|
|
bcs _080C5DAA
|
|
mov r3, sp
|
|
_080C5D4A:
|
|
cmp r5, 0
|
|
bne _080C5D68
|
|
mov r0, r8
|
|
lsls r2, r0, 2
|
|
mov r4, sp
|
|
adds r1, r4, r2
|
|
ldrb r0, [r3]
|
|
mov r4, r8
|
|
subs r0, r4
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0x1]
|
|
add r0, r8
|
|
b _080C5D7A
|
|
.align 2, 0
|
|
_080C5D64: .4byte gUnknown_83F3024
|
|
_080C5D68:
|
|
mov r0, r8
|
|
lsls r2, r0, 2
|
|
mov r4, sp
|
|
adds r1, r4, r2
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0x1]
|
|
subs r0, 0x1
|
|
_080C5D7A:
|
|
strb r0, [r1, 0x1]
|
|
add r2, sp
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3F
|
|
bhi _080C5D8A
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0x3F
|
|
bls _080C5D92
|
|
_080C5D8A:
|
|
mov r0, r8
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x2]
|
|
b _080C5DAA
|
|
_080C5D92:
|
|
ldrh r0, [r3, 0x2]
|
|
mov r1, r8
|
|
subs r0, r1
|
|
strh r0, [r2, 0x2]
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrh r0, [r3, 0x2]
|
|
cmp r8, r0
|
|
bcc _080C5D4A
|
|
_080C5DAA:
|
|
movs r2, 0
|
|
mov r8, r2
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r8, r0
|
|
bcc _080C5DB8
|
|
b _080C5EBA
|
|
_080C5DB8:
|
|
movs r3, 0x1F
|
|
_080C5DBA:
|
|
ldr r1, _080C5E18 @ =gUnknown_3005334
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
mov r2, sp
|
|
adds r6, r2, r0
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 7
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldrh r1, [r2]
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5EA6
|
|
movs r7, 0x1F
|
|
ands r7, r1
|
|
lsls r0, r1, 16
|
|
lsrs r5, r0, 21
|
|
ands r5, r3
|
|
lsrs r4, r0, 26
|
|
ands r4, r3
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
blt _080C5E9C
|
|
cmp r0, 0x1
|
|
ble _080C5E1C
|
|
cmp r0, 0x3
|
|
bgt _080C5E9C
|
|
ldrh r0, [r6, 0x2]
|
|
adds r1, r7, r0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
adds r1, r5, r0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r0, r4, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r7, 0x1F
|
|
bls _080C5E90
|
|
movs r7, 0x1F
|
|
b _080C5E90
|
|
.align 2, 0
|
|
_080C5E18: .4byte gUnknown_3005334
|
|
_080C5E1C:
|
|
mov r1, r10
|
|
lsls r0, r1, 1
|
|
add r0, r10
|
|
ldr r1, _080C5E50 @ =gUnknown_83F3024
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsrs r0, 3
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
movs r1, 0x3
|
|
str r2, [sp, 0x18]
|
|
str r3, [sp, 0x1C]
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
cmp r0, 0x1
|
|
beq _080C5E6C
|
|
cmp r0, 0x1
|
|
bgt _080C5E54
|
|
cmp r0, 0
|
|
beq _080C5E5A
|
|
b _080C5E9C
|
|
.align 2, 0
|
|
_080C5E50: .4byte gUnknown_83F3024
|
|
_080C5E54:
|
|
cmp r0, 0x2
|
|
beq _080C5E7E
|
|
b _080C5E9C
|
|
_080C5E5A:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r7, r0
|
|
bcc _080C5E68
|
|
subs r0, r7, r0
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
b _080C5E9C
|
|
_080C5E68:
|
|
movs r7, 0
|
|
b _080C5E9C
|
|
_080C5E6C:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r5, r0
|
|
bcc _080C5E7A
|
|
subs r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
b _080C5E9C
|
|
_080C5E7A:
|
|
movs r5, 0
|
|
b _080C5E9C
|
|
_080C5E7E:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r4, r0
|
|
bcc _080C5E8C
|
|
subs r0, r4, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
b _080C5E9C
|
|
_080C5E8C:
|
|
movs r4, 0
|
|
b _080C5E9C
|
|
_080C5E90:
|
|
cmp r5, 0x1F
|
|
bls _080C5E96
|
|
movs r5, 0x1F
|
|
_080C5E96:
|
|
cmp r4, 0x1F
|
|
bls _080C5E9C
|
|
movs r4, 0x1F
|
|
_080C5E9C:
|
|
lsls r0, r4, 10
|
|
lsls r1, r5, 5
|
|
orrs r0, r1
|
|
orrs r7, r0
|
|
strh r7, [r2]
|
|
_080C5EA6:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r8, r0
|
|
bcs _080C5EBA
|
|
b _080C5DBA
|
|
_080C5EBA:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C5CF8
|
|
|
|
thumb_func_start sub_80C5ECC
|
|
sub_80C5ECC: @ 80C5ECC
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
movs r3, 0x1F
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
ands r2, r3
|
|
lsrs r1, 26
|
|
ands r1, r3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r0, r1, 10
|
|
lsls r2, r1, 5
|
|
orrs r0, r2
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C5ECC
|
|
|
|
thumb_func_start sub_80C5F00
|
|
sub_80C5F00: @ 80C5F00
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
ldrh r0, [r0]
|
|
movs r2, 0x1F
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 21
|
|
ands r3, r2
|
|
lsrs r0, 26
|
|
ands r0, r2
|
|
cmp r1, 0x10
|
|
bhi _080C5F30
|
|
cmp r3, 0x10
|
|
bhi _080C5F30
|
|
cmp r0, 0x10
|
|
bhi _080C5F30
|
|
adds r0, r4, 0
|
|
bl sub_80C5F3C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _080C5F32
|
|
_080C5F30:
|
|
ldr r0, _080C5F38 @ =0x00007fff
|
|
_080C5F32:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C5F38: .4byte 0x00007fff
|
|
thumb_func_end sub_80C5F00
|
|
|
|
thumb_func_start sub_80C5F3C
|
|
sub_80C5F3C: @ 80C5F3C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
movs r7, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bhi _080C5FF4
|
|
lsls r0, 2
|
|
ldr r1, _080C5F80 @ =_080C5F84
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C5F80: .4byte _080C5F84
|
|
.align 2, 0
|
|
_080C5F84:
|
|
.4byte _080C5F9C
|
|
.4byte _080C5FAC
|
|
.4byte _080C5FBC
|
|
.4byte _080C5FCA
|
|
.4byte _080C5FD8
|
|
.4byte _080C5FE6
|
|
_080C5F9C:
|
|
movs r0, 0x15
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r7, r6, 0
|
|
movs r1, 0
|
|
mov r8, r1
|
|
b _080C5FF4
|
|
_080C5FAC:
|
|
movs r7, 0
|
|
movs r0, 0x15
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
mov r6, r8
|
|
b _080C5FF4
|
|
_080C5FBC:
|
|
movs r0, 0x15
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
movs r6, 0
|
|
mov r8, r7
|
|
b _080C5FF4
|
|
_080C5FCA:
|
|
movs r7, 0
|
|
movs r6, 0
|
|
movs r0, 0x17
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _080C5FF2
|
|
_080C5FD8:
|
|
movs r0, 0x17
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
movs r6, 0
|
|
mov r8, r6
|
|
b _080C5FF4
|
|
_080C5FE6:
|
|
movs r7, 0
|
|
movs r0, 0x17
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r0, 0
|
|
_080C5FF2:
|
|
mov r8, r0
|
|
_080C5FF4:
|
|
lsls r0, r7, 10
|
|
lsls r1, r6, 5
|
|
orrs r0, r1
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C5F3C
|
|
|
|
thumb_func_start sub_80C600C
|
|
sub_80C600C: @ 80C600C
|
|
push {lr}
|
|
ldrh r0, [r0]
|
|
movs r2, 0x1F
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 21
|
|
ands r3, r2
|
|
lsrs r0, 26
|
|
ands r0, r2
|
|
cmp r1, 0x10
|
|
bhi _080C6030
|
|
cmp r3, 0x10
|
|
bhi _080C6030
|
|
cmp r0, 0x10
|
|
bhi _080C6030
|
|
movs r0, 0
|
|
b _080C6032
|
|
_080C6030:
|
|
ldr r0, _080C6038 @ =0x00007fff
|
|
_080C6032:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C6038: .4byte 0x00007fff
|
|
thumb_func_end sub_80C600C
|
|
|
|
thumb_func_start sub_80C603C
|
|
sub_80C603C: @ 80C603C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r3, [r4]
|
|
cmp r3, 0
|
|
beq _080C6064
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080C6056
|
|
adds r0, r2, 0
|
|
b _080C6066
|
|
_080C6056:
|
|
ldrh r1, [r1]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C6064
|
|
ldrh r0, [r4]
|
|
b _080C6066
|
|
_080C6064:
|
|
movs r0, 0
|
|
_080C6066:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C603C
|
|
|
|
thumb_func_start sub_80C606C
|
|
sub_80C606C: @ 80C606C
|
|
push {r4,lr}
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1F
|
|
movs r3, 0x1F
|
|
ands r3, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
lsrs r1, 26
|
|
subs r3, r0, r3
|
|
adds r4, r0, 0
|
|
bics r4, r2
|
|
adds r2, r4, 0
|
|
bics r0, r1
|
|
lsls r0, 10
|
|
lsls r2, 5
|
|
orrs r0, r2
|
|
orrs r0, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C606C
|
|
|
|
thumb_func_start sub_80C6098
|
|
sub_80C6098: @ 80C6098
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
adds r7, r1, 0
|
|
ldrh r4, [r0]
|
|
ldrh r5, [r7]
|
|
lsls r6, r4, 16
|
|
lsls r0, r5, 16
|
|
mov r12, r0
|
|
cmp r4, r5
|
|
beq _080C610A
|
|
mov r2, sp
|
|
movs r3, 0x1F
|
|
movs r1, 0x1F
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
strh r0, [r2]
|
|
lsrs r0, r6, 21
|
|
ands r0, r3
|
|
strh r0, [r2, 0x2]
|
|
lsrs r0, r6, 26
|
|
ands r0, r3
|
|
strh r0, [r2, 0x4]
|
|
mov r0, sp
|
|
ands r1, r5
|
|
strh r1, [r0, 0x6]
|
|
mov r1, sp
|
|
mov r2, r12
|
|
lsrs r0, r2, 21
|
|
ands r0, r3
|
|
strh r0, [r1, 0x8]
|
|
lsrs r0, r2, 26
|
|
ands r0, r3
|
|
strh r0, [r1, 0xA]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x19
|
|
bls _080C60F2
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0x19
|
|
bls _080C60F2
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, 0x19
|
|
bhi _080C610A
|
|
_080C60F2:
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x6]
|
|
cmp r0, 0x19
|
|
bls _080C610E
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x8]
|
|
cmp r0, 0x19
|
|
bls _080C610E
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0xA]
|
|
cmp r0, 0x19
|
|
bls _080C610E
|
|
_080C610A:
|
|
ldrh r0, [r7]
|
|
b _080C61B4
|
|
_080C610E:
|
|
movs r4, 0
|
|
add r6, sp, 0xC
|
|
mov r7, sp
|
|
adds r7, 0x6
|
|
adds r5, r6, 0
|
|
_080C6118:
|
|
lsls r2, r4, 1
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
adds r1, r7, r2
|
|
ldrh r3, [r0]
|
|
ldrh r0, [r1]
|
|
cmp r3, r0
|
|
bls _080C612E
|
|
adds r1, r5, r2
|
|
subs r0, r3, r0
|
|
b _080C6132
|
|
_080C612E:
|
|
adds r1, r5, r2
|
|
subs r0, r3
|
|
_080C6132:
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x2
|
|
bls _080C6118
|
|
adds r1, r6, 0
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r3, [r1]
|
|
cmp r3, r0
|
|
bcc _080C6158
|
|
ldrh r2, [r1, 0x4]
|
|
cmp r3, r2
|
|
bcc _080C6152
|
|
adds r2, r3, 0
|
|
b _080C616C
|
|
_080C6152:
|
|
cmp r0, r2
|
|
bcs _080C615E
|
|
b _080C6166
|
|
_080C6158:
|
|
ldrh r2, [r1, 0x4]
|
|
cmp r0, r2
|
|
bcc _080C6162
|
|
_080C615E:
|
|
ldrh r2, [r1, 0x2]
|
|
b _080C616C
|
|
_080C6162:
|
|
cmp r2, r3
|
|
bcc _080C616A
|
|
_080C6166:
|
|
ldrh r2, [r1, 0x4]
|
|
b _080C616C
|
|
_080C616A:
|
|
ldrh r2, [r6]
|
|
_080C616C:
|
|
mov r0, sp
|
|
ldrh r1, [r0, 0x6]
|
|
lsrs r0, r2, 1
|
|
movs r6, 0x1F
|
|
subs r6, r0
|
|
adds r0, r1, 0
|
|
muls r0, r6
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x8]
|
|
muls r0, r6
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0xA]
|
|
muls r0, r6
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 6
|
|
lsls r4, 5
|
|
orrs r0, r4
|
|
orrs r5, r0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r5, 0
|
|
_080C61B4:
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6098
|
|
|
|
thumb_func_start sub_80C61BC
|
|
sub_80C61BC: @ 80C61BC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
mov r10, r1
|
|
str r2, [sp]
|
|
ldrh r1, [r3]
|
|
mov r0, r10
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080C61E4
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bne _080C61E4
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
b _080C62CC
|
|
_080C61E4:
|
|
mov r2, r10
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1F
|
|
mov r9, r1
|
|
movs r4, 0x1F
|
|
adds r5, r4, 0
|
|
ands r5, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 21
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r8, r1
|
|
lsrs r0, 26
|
|
mov r2, r9
|
|
ands r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldrh r2, [r3]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
lsls r2, 16
|
|
lsrs r1, r2, 21
|
|
mov r3, r9
|
|
ands r1, r3
|
|
adds r0, r1
|
|
lsrs r2, 26
|
|
ands r2, r3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
ldr r2, [sp, 0x4]
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r3, [sp]
|
|
ldrh r1, [r3]
|
|
ands r4, r1
|
|
lsls r1, 16
|
|
lsrs r0, r1, 21
|
|
mov r2, r9
|
|
ands r0, r2
|
|
adds r4, r0
|
|
lsrs r1, 26
|
|
ands r1, r2
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r7, r6
|
|
bne _080C6266
|
|
cmp r1, r6
|
|
bne _080C6266
|
|
mov r3, r10
|
|
ldrh r0, [r3]
|
|
b _080C62CC
|
|
_080C6266:
|
|
cmp r7, r6
|
|
bls _080C626E
|
|
subs r0, r7, r6
|
|
b _080C6270
|
|
_080C626E:
|
|
subs r0, r6, r7
|
|
_080C6270:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r1, r6
|
|
bls _080C627C
|
|
subs r0, r1, r6
|
|
b _080C627E
|
|
_080C627C:
|
|
subs r0, r6, r1
|
|
_080C627E:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r2, r0
|
|
bcc _080C6288
|
|
adds r0, r2, 0
|
|
_080C6288:
|
|
lsrs r0, 1
|
|
movs r4, 0x1F
|
|
subs r4, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r0, r8
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 6
|
|
mov r2, r8
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r5, r0
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
_080C62CC:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C61BC
|
|
|
|
thumb_func_start sub_80C62DC
|
|
sub_80C62DC: @ 80C62DC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
mov r10, r1
|
|
str r2, [sp]
|
|
ldrh r1, [r3]
|
|
mov r0, r10
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080C6304
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bne _080C6304
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
b _080C63EA
|
|
_080C6304:
|
|
mov r2, r10
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1F
|
|
mov r9, r1
|
|
movs r4, 0x1F
|
|
adds r5, r4, 0
|
|
ands r5, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 21
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r8, r1
|
|
lsrs r0, 26
|
|
mov r2, r9
|
|
ands r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldrh r2, [r3]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
lsls r2, 16
|
|
lsrs r1, r2, 21
|
|
mov r3, r9
|
|
ands r1, r3
|
|
adds r0, r1
|
|
lsrs r2, 26
|
|
ands r2, r3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
ldr r2, [sp, 0x4]
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r3, [sp]
|
|
ldrh r1, [r3]
|
|
ands r4, r1
|
|
lsls r1, 16
|
|
lsrs r0, r1, 21
|
|
mov r2, r9
|
|
ands r0, r2
|
|
adds r4, r0
|
|
lsrs r1, 26
|
|
ands r1, r2
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r7, r6
|
|
bne _080C6386
|
|
cmp r1, r6
|
|
bne _080C6386
|
|
mov r3, r10
|
|
ldrh r0, [r3]
|
|
b _080C63EA
|
|
_080C6386:
|
|
cmp r7, r6
|
|
bls _080C638E
|
|
subs r0, r7, r6
|
|
b _080C6390
|
|
_080C638E:
|
|
subs r0, r6, r7
|
|
_080C6390:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r1, r6
|
|
bls _080C639C
|
|
subs r0, r1, r6
|
|
b _080C639E
|
|
_080C639C:
|
|
subs r0, r6, r1
|
|
_080C639E:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r2, r0
|
|
bcc _080C63A8
|
|
adds r0, r2, 0
|
|
_080C63A8:
|
|
movs r4, 0x1F
|
|
subs r4, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r0, r8
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 6
|
|
mov r2, r8
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r5, r0
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
_080C63EA:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C62DC
|
|
|
|
thumb_func_start sub_80C63FC
|
|
sub_80C63FC: @ 80C63FC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
ldrb r1, [r0, 0x1D]
|
|
lsrs r5, r1, 3
|
|
ldrb r1, [r0, 0x1E]
|
|
lsrs r1, 3
|
|
str r1, [sp, 0x8]
|
|
ldr r1, [r0, 0x4]
|
|
str r1, [sp]
|
|
ldr r2, [r0, 0x10]
|
|
str r2, [sp, 0x4]
|
|
ldrh r0, [r0, 0x16]
|
|
cmp r0, 0x2
|
|
bne _080C64AC
|
|
movs r1, 0
|
|
ldr r0, [sp, 0x8]
|
|
cmp r1, r0
|
|
bcc _080C642A
|
|
b _080C6538
|
|
_080C642A:
|
|
movs r0, 0
|
|
adds r2, r1, 0x1
|
|
mov r10, r2
|
|
cmp r0, r5
|
|
bcs _080C649E
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
mov r9, r2
|
|
lsls r1, 3
|
|
mov r8, r1
|
|
_080C643E:
|
|
movs r4, 0
|
|
lsls r6, r0, 4
|
|
adds r7, r0, 0x1
|
|
add r0, r9
|
|
lsls r0, 6
|
|
ldr r1, [sp, 0x4]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
_080C644E:
|
|
lsls r0, r4, 3
|
|
mov r2, r12
|
|
adds r3, r2, r0
|
|
mov r1, r8
|
|
adds r0, r1, r4
|
|
lsls r0, 3
|
|
muls r0, r5
|
|
lsls r0, 1
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
adds r2, r0, r6
|
|
ldrh r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
ldrh r1, [r2]
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
ldrh r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
ldrh r1, [r2, 0x4]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x2]
|
|
ldrh r0, [r2, 0xA]
|
|
lsls r0, 8
|
|
ldrh r1, [r2, 0x8]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
ldrh r0, [r2, 0xE]
|
|
lsls r0, 8
|
|
ldrh r1, [r2, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x6]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x7
|
|
bls _080C644E
|
|
lsls r0, r7, 16
|
|
lsrs r0, 16
|
|
cmp r0, r5
|
|
bcc _080C643E
|
|
_080C649E:
|
|
mov r1, r10
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
ldr r2, [sp, 0x8]
|
|
cmp r1, r2
|
|
bcc _080C642A
|
|
b _080C6538
|
|
_080C64AC:
|
|
movs r1, 0
|
|
ldr r0, [sp, 0x8]
|
|
cmp r1, r0
|
|
bcs _080C6538
|
|
_080C64B4:
|
|
movs r0, 0
|
|
adds r2, r1, 0x1
|
|
mov r10, r2
|
|
cmp r0, r5
|
|
bcs _080C652C
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
mov r9, r2
|
|
lsls r1, 3
|
|
mov r8, r1
|
|
_080C64C8:
|
|
movs r4, 0
|
|
lsls r6, r0, 4
|
|
adds r7, r0, 0x1
|
|
add r0, r9
|
|
lsls r0, 5
|
|
ldr r1, [sp, 0x4]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
_080C64D8:
|
|
lsls r0, r4, 2
|
|
mov r2, r12
|
|
adds r3, r2, r0
|
|
mov r1, r8
|
|
adds r0, r1, r4
|
|
lsls r0, 3
|
|
muls r0, r5
|
|
lsls r0, 1
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
adds r2, r0, r6
|
|
ldrh r1, [r2, 0x2]
|
|
lsls r1, 4
|
|
ldrh r0, [r2]
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0x4]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0x6]
|
|
lsls r0, 12
|
|
orrs r1, r0
|
|
strh r1, [r3]
|
|
ldrh r1, [r2, 0xA]
|
|
lsls r1, 4
|
|
ldrh r0, [r2, 0x8]
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0xC]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0xE]
|
|
lsls r0, 12
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x2]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x7
|
|
bls _080C64D8
|
|
lsls r0, r7, 16
|
|
lsrs r0, 16
|
|
cmp r0, r5
|
|
bcc _080C64C8
|
|
_080C652C:
|
|
mov r1, r10
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
ldr r2, [sp, 0x8]
|
|
cmp r1, r2
|
|
bcc _080C64B4
|
|
_080C6538:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C63FC
|
|
|
|
thumb_func_start sub_80C6548
|
|
sub_80C6548: @ 80C6548
|
|
push {lr}
|
|
ldr r2, _080C6598 @ =gUnknown_3005354
|
|
ldrb r1, [r0, 0x18]
|
|
lsls r1, 4
|
|
strh r1, [r2]
|
|
ldr r3, _080C659C @ =gUnknown_3005350
|
|
ldrh r2, [r2]
|
|
lsls r2, 1
|
|
ldr r1, [r0, 0x8]
|
|
adds r1, r2
|
|
str r1, [r3]
|
|
ldr r2, _080C65A0 @ =gUnknown_3005334
|
|
ldr r1, [r0, 0x4]
|
|
str r1, [r2]
|
|
ldr r2, _080C65A4 @ =gUnknown_3005330
|
|
ldrb r1, [r0, 0x19]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65A8 @ =gUnknown_3005344
|
|
ldrb r1, [r0, 0x1A]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65AC @ =gUnknown_3005340
|
|
ldrb r1, [r0, 0x1B]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65B0 @ =gUnknown_3005338
|
|
ldrb r1, [r0, 0x1C]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65B4 @ =gUnknown_300534C
|
|
ldrb r1, [r0, 0x1D]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65B8 @ =gUnknown_300533C
|
|
ldrb r1, [r0, 0x1E]
|
|
strb r1, [r2]
|
|
ldrh r0, [r0, 0x14]
|
|
cmp r0, 0x5
|
|
bhi _080C660E
|
|
lsls r0, 2
|
|
ldr r1, _080C65BC @ =_080C65C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C6598: .4byte gUnknown_3005354
|
|
_080C659C: .4byte gUnknown_3005350
|
|
_080C65A0: .4byte gUnknown_3005334
|
|
_080C65A4: .4byte gUnknown_3005330
|
|
_080C65A8: .4byte gUnknown_3005344
|
|
_080C65AC: .4byte gUnknown_3005340
|
|
_080C65B0: .4byte gUnknown_3005338
|
|
_080C65B4: .4byte gUnknown_300534C
|
|
_080C65B8: .4byte gUnknown_300533C
|
|
_080C65BC: .4byte _080C65C0
|
|
.align 2, 0
|
|
_080C65C0:
|
|
.4byte _080C65D8
|
|
.4byte _080C65E0
|
|
.4byte _080C65E8
|
|
.4byte _080C65F2
|
|
.4byte _080C65FC
|
|
.4byte _080C6606
|
|
_080C65D8:
|
|
movs r0, 0
|
|
bl sub_80C6748
|
|
b _080C660E
|
|
_080C65E0:
|
|
movs r0, 0x1
|
|
bl sub_80C6748
|
|
b _080C660E
|
|
_080C65E8:
|
|
bl sub_80C6614
|
|
bl sub_80C6AB8
|
|
b _080C660E
|
|
_080C65F2:
|
|
bl sub_80C6714
|
|
bl sub_80C6A08
|
|
b _080C660E
|
|
_080C65FC:
|
|
bl sub_80C66D8
|
|
bl sub_80C6958
|
|
b _080C660E
|
|
_080C6606:
|
|
bl sub_80C66BC
|
|
bl sub_80C68A0
|
|
_080C660E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C6548
|
|
|
|
thumb_func_start sub_80C6614
|
|
sub_80C6614: @ 80C6614
|
|
ldr r2, _080C667C @ =gUnknown_3005350
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, [r2]
|
|
ldr r2, _080C6680 @ =0x000018c6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x2]
|
|
ldr r2, _080C6684 @ =0x000077bd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x4]
|
|
ldr r2, _080C6688 @ =0x00002d6b
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x6]
|
|
ldr r2, _080C668C @ =0x000018dd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x8]
|
|
ldr r2, _080C6690 @ =0x00001ba6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0xA]
|
|
ldr r2, _080C6694 @ =0x000074c6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0xC]
|
|
ldr r2, _080C6698 @ =0x00001bbd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0xE]
|
|
ldr r2, _080C669C @ =0x000074dd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x10]
|
|
ldr r2, _080C66A0 @ =0x000077a6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x12]
|
|
ldr r2, _080C66A4 @ =0x0000197d
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x14]
|
|
ldr r2, _080C66A8 @ =0x00001bab
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x16]
|
|
ldr r2, _080C66AC @ =0x00007566
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x18]
|
|
ldr r2, _080C66B0 @ =0x00002cdd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x1A]
|
|
ldr r2, _080C66B4 @ =0x00002fa6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x1C]
|
|
ldr r2, _080C66B8 @ =0x000074cb
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x1E]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C667C: .4byte gUnknown_3005350
|
|
_080C6680: .4byte 0x000018c6
|
|
_080C6684: .4byte 0x000077bd
|
|
_080C6688: .4byte 0x00002d6b
|
|
_080C668C: .4byte 0x000018dd
|
|
_080C6690: .4byte 0x00001ba6
|
|
_080C6694: .4byte 0x000074c6
|
|
_080C6698: .4byte 0x00001bbd
|
|
_080C669C: .4byte 0x000074dd
|
|
_080C66A0: .4byte 0x000077a6
|
|
_080C66A4: .4byte 0x0000197d
|
|
_080C66A8: .4byte 0x00001bab
|
|
_080C66AC: .4byte 0x00007566
|
|
_080C66B0: .4byte 0x00002cdd
|
|
_080C66B4: .4byte 0x00002fa6
|
|
_080C66B8: .4byte 0x000074cb
|
|
thumb_func_end sub_80C6614
|
|
|
|
thumb_func_start sub_80C66BC
|
|
sub_80C66BC: @ 80C66BC
|
|
ldr r2, _080C66D0 @ =gUnknown_3005350
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r2, [r2]
|
|
strh r1, [r2, 0x2]
|
|
ldr r1, _080C66D4 @ =0x00007fff
|
|
adds r0, r1, 0
|
|
strh r0, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C66D0: .4byte gUnknown_3005350
|
|
_080C66D4: .4byte 0x00007fff
|
|
thumb_func_end sub_80C66BC
|
|
|
|
thumb_func_start sub_80C66D8
|
|
sub_80C66D8: @ 80C66D8
|
|
push {r4,r5,lr}
|
|
ldr r1, _080C6710 @ =gUnknown_3005350
|
|
ldr r0, [r1]
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r0, [r1]
|
|
strh r2, [r0, 0x2]
|
|
movs r4, 0
|
|
adds r5, r1, 0
|
|
_080C66EA:
|
|
ldr r0, [r5]
|
|
lsls r2, r4, 1
|
|
adds r2, r0
|
|
adds r0, r4, 0x2
|
|
lsls r3, r0, 1
|
|
lsls r1, r0, 11
|
|
lsls r0, 6
|
|
orrs r1, r0
|
|
orrs r1, r3
|
|
strh r1, [r2, 0x4]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xD
|
|
bls _080C66EA
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6710: .4byte gUnknown_3005350
|
|
thumb_func_end sub_80C66D8
|
|
|
|
thumb_func_start sub_80C6714
|
|
sub_80C6714: @ 80C6714
|
|
push {r4,lr}
|
|
ldr r2, _080C6744 @ =gUnknown_3005350
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r3, 0
|
|
adds r4, r2, 0
|
|
_080C6722:
|
|
ldr r0, [r4]
|
|
lsls r2, r3, 1
|
|
adds r2, r0
|
|
lsls r0, r3, 10
|
|
lsls r1, r3, 5
|
|
orrs r0, r1
|
|
orrs r0, r3
|
|
strh r0, [r2, 0x2]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1F
|
|
bls _080C6722
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6744: .4byte gUnknown_3005350
|
|
thumb_func_end sub_80C6714
|
|
|
|
thumb_func_start sub_80C6748
|
|
sub_80C6748: @ 80C6748
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
movs r1, 0xDF
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _080C6760
|
|
movs r2, 0xFF
|
|
mov r9, r2
|
|
_080C6760:
|
|
movs r6, 0
|
|
ldr r3, _080C67E4 @ =gUnknown_3005350
|
|
mov r12, r3
|
|
mov r0, r9
|
|
lsls r4, r0, 1
|
|
ldr r5, _080C67E8 @ =gUnknown_3005338
|
|
cmp r6, r9
|
|
bcs _080C6784
|
|
movs r2, 0
|
|
_080C6772:
|
|
ldr r0, [r3]
|
|
lsls r1, r6, 1
|
|
adds r1, r0
|
|
strh r2, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r9
|
|
bcc _080C6772
|
|
_080C6784:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, r4, r0
|
|
ldr r2, _080C67EC @ =0x00003def
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
movs r3, 0
|
|
ldrb r5, [r5]
|
|
cmp r3, r5
|
|
bcs _080C6888
|
|
_080C6798:
|
|
ldr r2, _080C67F0 @ =gUnknown_3005334
|
|
ldr r0, _080C67F4 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r3
|
|
ldr r0, _080C67F8 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
ldr r0, _080C67FC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r6, 0
|
|
ldr r0, _080C6800 @ =gUnknown_3005340
|
|
adds r2, r0, 0
|
|
adds r3, 0x1
|
|
mov r10, r3
|
|
ldrb r3, [r2]
|
|
cmp r6, r3
|
|
bcs _080C687A
|
|
ldr r0, _080C6804 @ =gUnknown_3005354
|
|
mov r8, r0
|
|
_080C67C8:
|
|
ldrh r0, [r4]
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6808
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
strh r0, [r4]
|
|
adds r6, 0x1
|
|
adds r7, r4, 0x2
|
|
b _080C686E
|
|
.align 2, 0
|
|
_080C67E4: .4byte gUnknown_3005350
|
|
_080C67E8: .4byte gUnknown_3005338
|
|
_080C67EC: .4byte 0x00003def
|
|
_080C67F0: .4byte gUnknown_3005334
|
|
_080C67F4: .4byte gUnknown_3005344
|
|
_080C67F8: .4byte gUnknown_300534C
|
|
_080C67FC: .4byte gUnknown_3005330
|
|
_080C6800: .4byte gUnknown_3005340
|
|
_080C6804: .4byte gUnknown_3005354
|
|
_080C6808:
|
|
adds r0, r4, 0
|
|
bl sub_80C6B68
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r3, 0x1
|
|
adds r6, 0x1
|
|
adds r7, r4, 0x2
|
|
cmp r3, r9
|
|
bcs _080C6864
|
|
ldr r0, _080C6834 @ =gUnknown_3005350
|
|
ldr r2, [r0]
|
|
ldrh r1, [r2, 0x2]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
bne _080C6838
|
|
strh r5, [r2, 0x2]
|
|
mov r2, r8
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
b _080C6862
|
|
.align 2, 0
|
|
_080C6834: .4byte gUnknown_3005350
|
|
_080C6838:
|
|
mov r2, r12
|
|
ldr r1, [r2]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r5
|
|
beq _080C685C
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, r9
|
|
bcs _080C6864
|
|
lsls r0, r3, 1
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _080C6838
|
|
strh r5, [r1]
|
|
_080C685C:
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
adds r0, r3
|
|
_080C6862:
|
|
strh r0, [r4]
|
|
_080C6864:
|
|
ldr r2, _080C6898 @ =gUnknown_3005340
|
|
cmp r3, r9
|
|
bne _080C686E
|
|
mov r3, r9
|
|
strh r3, [r4]
|
|
_080C686E:
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, r7, 0
|
|
ldrb r0, [r2]
|
|
cmp r6, r0
|
|
bcc _080C67C8
|
|
_080C687A:
|
|
mov r1, r10
|
|
lsls r0, r1, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, _080C689C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcc _080C6798
|
|
_080C6888:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6898: .4byte gUnknown_3005340
|
|
_080C689C: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6748
|
|
|
|
thumb_func_start sub_80C68A0
|
|
sub_80C68A0: @ 80C68A0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r2, 0
|
|
ldr r0, _080C68F4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C6944
|
|
ldr r0, _080C68F8 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C68B4:
|
|
ldr r0, _080C68FC @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C6900 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C6904 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r6, 0
|
|
ldr r0, _080C6908 @ =gUnknown_3005340
|
|
adds r3, r0, 0
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r6, r0
|
|
bcs _080C6938
|
|
ldr r5, _080C690C @ =gUnknown_3005354
|
|
_080C68E0:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6910
|
|
ldrh r0, [r5]
|
|
strh r0, [r4]
|
|
b _080C692A
|
|
.align 2, 0
|
|
_080C68F4: .4byte gUnknown_3005338
|
|
_080C68F8: .4byte gUnknown_3005334
|
|
_080C68FC: .4byte gUnknown_3005344
|
|
_080C6900: .4byte gUnknown_300534C
|
|
_080C6904: .4byte gUnknown_3005330
|
|
_080C6908: .4byte gUnknown_3005340
|
|
_080C690C: .4byte gUnknown_3005354
|
|
_080C6910:
|
|
adds r0, r4, 0
|
|
bl sub_80C600C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080C6922
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
b _080C6926
|
|
_080C6922:
|
|
ldrh r0, [r5]
|
|
adds r0, 0x2
|
|
_080C6926:
|
|
strh r0, [r4]
|
|
ldr r3, _080C6950 @ =gUnknown_3005340
|
|
_080C692A:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r6, r0
|
|
bcc _080C68E0
|
|
_080C6938:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6954 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C68B4
|
|
_080C6944:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6950: .4byte gUnknown_3005340
|
|
_080C6954: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C68A0
|
|
|
|
thumb_func_start sub_80C6958
|
|
sub_80C6958: @ 80C6958
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C69AC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C69F4
|
|
ldr r0, _080C69B0 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C696E:
|
|
ldr r0, _080C69B4 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C69B8 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C69BC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
ldr r0, _080C69C0 @ =gUnknown_3005340
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C69E8
|
|
ldr r6, _080C69C4 @ =gUnknown_3005354
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C699E:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080C69C8
|
|
ldrh r0, [r6]
|
|
strh r0, [r4]
|
|
b _080C69D8
|
|
.align 2, 0
|
|
_080C69AC: .4byte gUnknown_3005338
|
|
_080C69B0: .4byte gUnknown_3005334
|
|
_080C69B4: .4byte gUnknown_3005344
|
|
_080C69B8: .4byte gUnknown_300534C
|
|
_080C69BC: .4byte gUnknown_3005330
|
|
_080C69C0: .4byte gUnknown_3005340
|
|
_080C69C4: .4byte gUnknown_3005354
|
|
_080C69C8:
|
|
adds r0, r4, 0
|
|
str r2, [sp]
|
|
bl sub_80C6CAC
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r4]
|
|
ldr r2, [sp]
|
|
_080C69D8:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C6A00 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C699E
|
|
_080C69E8:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6A04 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C696E
|
|
_080C69F4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6A00: .4byte gUnknown_3005340
|
|
_080C6A04: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6958
|
|
|
|
thumb_func_start sub_80C6A08
|
|
sub_80C6A08: @ 80C6A08
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C6A5C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C6AA4
|
|
ldr r0, _080C6A60 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C6A1E:
|
|
ldr r0, _080C6A64 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C6A68 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C6A6C @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
ldr r0, _080C6A70 @ =gUnknown_3005340
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C6A98
|
|
ldr r6, _080C6A74 @ =gUnknown_3005354
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C6A4E:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080C6A78
|
|
ldrh r0, [r6]
|
|
strh r0, [r4]
|
|
b _080C6A88
|
|
.align 2, 0
|
|
_080C6A5C: .4byte gUnknown_3005338
|
|
_080C6A60: .4byte gUnknown_3005334
|
|
_080C6A64: .4byte gUnknown_3005344
|
|
_080C6A68: .4byte gUnknown_300534C
|
|
_080C6A6C: .4byte gUnknown_3005330
|
|
_080C6A70: .4byte gUnknown_3005340
|
|
_080C6A74: .4byte gUnknown_3005354
|
|
_080C6A78:
|
|
adds r0, r4, 0
|
|
str r2, [sp]
|
|
bl sub_80C6CE0
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r4]
|
|
ldr r2, [sp]
|
|
_080C6A88:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C6AB0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C6A4E
|
|
_080C6A98:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6AB4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C6A1E
|
|
_080C6AA4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6AB0: .4byte gUnknown_3005340
|
|
_080C6AB4: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6A08
|
|
|
|
thumb_func_start sub_80C6AB8
|
|
sub_80C6AB8: @ 80C6AB8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C6B0C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C6B54
|
|
ldr r0, _080C6B10 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C6ACE:
|
|
ldr r0, _080C6B14 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C6B18 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C6B1C @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
ldr r0, _080C6B20 @ =gUnknown_3005340
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C6B48
|
|
ldr r6, _080C6B24 @ =gUnknown_3005354
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C6AFE:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080C6B28
|
|
ldrh r0, [r6]
|
|
strh r0, [r4]
|
|
b _080C6B38
|
|
.align 2, 0
|
|
_080C6B0C: .4byte gUnknown_3005338
|
|
_080C6B10: .4byte gUnknown_3005334
|
|
_080C6B14: .4byte gUnknown_3005344
|
|
_080C6B18: .4byte gUnknown_300534C
|
|
_080C6B1C: .4byte gUnknown_3005330
|
|
_080C6B20: .4byte gUnknown_3005340
|
|
_080C6B24: .4byte gUnknown_3005354
|
|
_080C6B28:
|
|
adds r0, r4, 0
|
|
str r2, [sp]
|
|
bl sub_80C6BDC
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r4]
|
|
ldr r2, [sp]
|
|
_080C6B38:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C6B60 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C6AFE
|
|
_080C6B48:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6B64 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C6ACE
|
|
_080C6B54:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6B60: .4byte gUnknown_3005340
|
|
_080C6B64: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6AB8
|
|
|
|
thumb_func_start sub_80C6B68
|
|
sub_80C6B68: @ 80C6B68
|
|
push {r4,lr}
|
|
ldrh r0, [r0]
|
|
movs r1, 0x1F
|
|
movs r4, 0x1F
|
|
ands r4, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 21
|
|
ands r3, r1
|
|
lsrs r2, r0, 26
|
|
ands r2, r1
|
|
movs r1, 0x3
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6B8C
|
|
movs r0, 0x1C
|
|
ands r0, r4
|
|
adds r4, r0, 0x4
|
|
_080C6B8C:
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6B9A
|
|
movs r0, 0x1C
|
|
ands r0, r3
|
|
adds r3, r0, 0x4
|
|
_080C6B9A:
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6BA8
|
|
movs r0, 0x1C
|
|
ands r0, r2
|
|
adds r2, r0, 0x4
|
|
_080C6BA8:
|
|
cmp r4, 0x5
|
|
bhi _080C6BAE
|
|
movs r4, 0x6
|
|
_080C6BAE:
|
|
cmp r4, 0x1E
|
|
bls _080C6BB4
|
|
movs r4, 0x1E
|
|
_080C6BB4:
|
|
cmp r3, 0x5
|
|
bhi _080C6BBA
|
|
movs r3, 0x6
|
|
_080C6BBA:
|
|
cmp r3, 0x1E
|
|
bls _080C6BC0
|
|
movs r3, 0x1E
|
|
_080C6BC0:
|
|
cmp r2, 0x5
|
|
bhi _080C6BC6
|
|
movs r2, 0x6
|
|
_080C6BC6:
|
|
cmp r2, 0x1E
|
|
bls _080C6BCC
|
|
movs r2, 0x1E
|
|
_080C6BCC:
|
|
lsls r0, r2, 10
|
|
lsls r1, r3, 5
|
|
orrs r0, r1
|
|
orrs r4, r0
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6B68
|
|
|
|
thumb_func_start sub_80C6BDC
|
|
sub_80C6BDC: @ 80C6BDC
|
|
push {lr}
|
|
ldrh r0, [r0]
|
|
movs r1, 0x1F
|
|
movs r3, 0x1F
|
|
ands r3, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 21
|
|
ands r2, r1
|
|
lsrs r0, 26
|
|
ands r0, r1
|
|
cmp r3, 0xB
|
|
bhi _080C6C00
|
|
cmp r2, 0xA
|
|
bhi _080C6C00
|
|
cmp r0, 0xA
|
|
bhi _080C6C00
|
|
movs r0, 0x1
|
|
b _080C6CA6
|
|
_080C6C00:
|
|
cmp r3, 0x13
|
|
bls _080C6C24
|
|
cmp r2, 0x13
|
|
bls _080C6C0C
|
|
cmp r0, 0x13
|
|
bhi _080C6C30
|
|
_080C6C0C:
|
|
cmp r3, 0x13
|
|
bls _080C6C24
|
|
cmp r2, 0x13
|
|
bls _080C6C1A
|
|
cmp r0, 0xE
|
|
bhi _080C6C30
|
|
b _080C6C68
|
|
_080C6C1A:
|
|
cmp r0, 0x13
|
|
bls _080C6C24
|
|
cmp r2, 0xE
|
|
bhi _080C6C30
|
|
b _080C6C44
|
|
_080C6C24:
|
|
cmp r2, 0x13
|
|
bls _080C6C34
|
|
cmp r0, 0x13
|
|
bls _080C6C34
|
|
cmp r3, 0xE
|
|
bls _080C6C8C
|
|
_080C6C30:
|
|
movs r0, 0x2
|
|
b _080C6CA6
|
|
_080C6C34:
|
|
cmp r3, 0x13
|
|
bls _080C6C58
|
|
cmp r2, 0xB
|
|
bls _080C6C4C
|
|
cmp r0, 0xB
|
|
bls _080C6C48
|
|
cmp r2, r0
|
|
bcs _080C6C68
|
|
_080C6C44:
|
|
movs r0, 0x8
|
|
b _080C6CA6
|
|
_080C6C48:
|
|
movs r0, 0xA
|
|
b _080C6CA6
|
|
_080C6C4C:
|
|
cmp r0, 0xB
|
|
bls _080C6C54
|
|
movs r0, 0xD
|
|
b _080C6CA6
|
|
_080C6C54:
|
|
movs r0, 0x4
|
|
b _080C6CA6
|
|
_080C6C58:
|
|
cmp r2, 0x13
|
|
bls _080C6C7C
|
|
cmp r3, 0xB
|
|
bls _080C6C70
|
|
cmp r0, 0xB
|
|
bls _080C6C6C
|
|
cmp r3, r0
|
|
bcc _080C6C8C
|
|
_080C6C68:
|
|
movs r0, 0x7
|
|
b _080C6CA6
|
|
_080C6C6C:
|
|
movs r0, 0xB
|
|
b _080C6CA6
|
|
_080C6C70:
|
|
cmp r0, 0xB
|
|
bls _080C6C78
|
|
movs r0, 0xE
|
|
b _080C6CA6
|
|
_080C6C78:
|
|
movs r0, 0x5
|
|
b _080C6CA6
|
|
_080C6C7C:
|
|
cmp r0, 0x13
|
|
bls _080C6CA4
|
|
cmp r3, 0xB
|
|
bls _080C6C90
|
|
cmp r2, 0xB
|
|
bls _080C6C98
|
|
cmp r3, r2
|
|
bcs _080C6C44
|
|
_080C6C8C:
|
|
movs r0, 0x9
|
|
b _080C6CA6
|
|
_080C6C90:
|
|
cmp r2, 0xB
|
|
bls _080C6C98
|
|
movs r0, 0xC
|
|
b _080C6CA6
|
|
_080C6C98:
|
|
cmp r0, 0xB
|
|
bls _080C6CA0
|
|
movs r0, 0xF
|
|
b _080C6CA6
|
|
_080C6CA0:
|
|
movs r0, 0x6
|
|
b _080C6CA6
|
|
_080C6CA4:
|
|
movs r0, 0x3
|
|
_080C6CA6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6BDC
|
|
|
|
thumb_func_start sub_80C6CAC
|
|
sub_80C6CAC: @ 80C6CAC
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
movs r3, 0x1F
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
ands r2, r3
|
|
lsrs r1, 26
|
|
ands r1, r3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
movs r1, 0x1E
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080C6CD8
|
|
lsrs r0, 17
|
|
b _080C6CDA
|
|
_080C6CD8:
|
|
movs r0, 0x1
|
|
_080C6CDA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6CAC
|
|
|
|
thumb_func_start sub_80C6CE0
|
|
sub_80C6CE0: @ 80C6CE0
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
movs r3, 0x1F
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
ands r2, r3
|
|
lsrs r1, 26
|
|
ands r1, r3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6CE0
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|