pokeemerald/asm/contest_painting_effects.s

1153 lines
17 KiB
ArmAsm
Raw Normal View History

2016-11-01 18:08:48 +01:00
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8126058
sub_8126058: @ 8126058
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 _08126108
movs r1, 0
ldr r0, [sp, 0x8]
cmp r1, r0
bcc _08126086
b _08126194
_08126086:
movs r0, 0
adds r2, r1, 0x1
mov r10, r2
cmp r0, r5
bcs _081260FA
adds r2, r1, 0
muls r2, r5
mov r9, r2
lsls r1, 3
mov r8, r1
_0812609A:
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
_081260AA:
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 _081260AA
lsls r0, r7, 16
lsrs r0, 16
cmp r0, r5
bcc _0812609A
_081260FA:
mov r1, r10
lsls r0, r1, 16
lsrs r1, r0, 16
ldr r2, [sp, 0x8]
cmp r1, r2
bcc _08126086
b _08126194
_08126108:
movs r1, 0
ldr r0, [sp, 0x8]
cmp r1, r0
bcs _08126194
_08126110:
movs r0, 0
adds r2, r1, 0x1
mov r10, r2
cmp r0, r5
bcs _08126188
adds r2, r1, 0
muls r2, r5
mov r9, r2
lsls r1, 3
mov r8, r1
_08126124:
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
_08126134:
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 _08126134
lsls r0, r7, 16
lsrs r0, 16
cmp r0, r5
bcc _08126124
_08126188:
mov r1, r10
lsls r0, r1, 16
lsrs r1, r0, 16
ldr r2, [sp, 0x8]
cmp r1, r2
bcc _08126110
_08126194:
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_8126058
thumb_func_start sub_81261A4
sub_81261A4: @ 81261A4
push {lr}
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006188
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x18]
lsls r1, 4
strh r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r3, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
ldrh r2, [r2]
lsls r2, 1
ldr r1, [r0, 0x8]
adds r1, r2
str r1, [r3]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006168
2016-11-01 18:08:48 +01:00
ldr r1, [r0, 0x4]
str r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006164
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x19]
strb r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006178
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x1A]
strb r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x1B]
strb r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x1C]
strb r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006180
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x1D]
strb r1, [r2]
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006170
2016-11-01 18:08:48 +01:00
ldrb r1, [r0, 0x1E]
strb r1, [r2]
ldrh r0, [r0, 0x14]
cmp r0, 0x5
bhi _0812626A
lsls r0, 2
ldr r1, =_0812621C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0812621C:
.4byte _08126234
.4byte _0812623C
.4byte _08126244
.4byte _0812624E
.4byte _08126258
.4byte _08126262
_08126234:
movs r0, 0
bl sub_81263A4
b _0812626A
_0812623C:
movs r0, 0x1
bl sub_81263A4
b _0812626A
_08126244:
bl sub_8126270
bl sub_8126714
b _0812626A
_0812624E:
bl sub_8126370
bl sub_8126664
b _0812626A
_08126258:
bl sub_8126334
bl sub_81265B4
b _0812626A
_08126262:
bl sub_8126318
bl sub_81264FC
_0812626A:
pop {r0}
bx r0
thumb_func_end sub_81261A4
thumb_func_start sub_8126270
sub_8126270: @ 8126270
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
ldr r1, [r2]
movs r0, 0
strh r0, [r1]
ldr r0, [r2]
ldr r2, =0x000018c6
adds r1, r2, 0
strh r1, [r0, 0x2]
ldr r2, =0x000077bd
adds r1, r2, 0
strh r1, [r0, 0x4]
ldr r2, =0x00002d6b
adds r1, r2, 0
strh r1, [r0, 0x6]
ldr r2, =0x000018dd
adds r1, r2, 0
strh r1, [r0, 0x8]
ldr r2, =0x00001ba6
adds r1, r2, 0
strh r1, [r0, 0xA]
ldr r2, =0x000074c6
adds r1, r2, 0
strh r1, [r0, 0xC]
ldr r2, =0x00001bbd
adds r1, r2, 0
strh r1, [r0, 0xE]
ldr r2, =0x000074dd
adds r1, r2, 0
strh r1, [r0, 0x10]
ldr r2, =0x000077a6
adds r1, r2, 0
strh r1, [r0, 0x12]
ldr r2, =0x0000197d
adds r1, r2, 0
strh r1, [r0, 0x14]
ldr r2, =0x00001bab
adds r1, r2, 0
strh r1, [r0, 0x16]
ldr r2, =0x00007566
adds r1, r2, 0
strh r1, [r0, 0x18]
ldr r2, =0x00002cdd
adds r1, r2, 0
strh r1, [r0, 0x1A]
ldr r2, =0x00002fa6
adds r1, r2, 0
strh r1, [r0, 0x1C]
ldr r2, =0x000074cb
adds r1, r2, 0
strh r1, [r0, 0x1E]
bx lr
.pool
thumb_func_end sub_8126270
thumb_func_start sub_8126318
sub_8126318: @ 8126318
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
ldr r0, [r2]
movs r1, 0
strh r1, [r0]
ldr r2, [r2]
strh r1, [r2, 0x2]
ldr r1, =0x00007fff
adds r0, r1, 0
strh r0, [r2, 0x4]
bx lr
.pool
thumb_func_end sub_8126318
thumb_func_start sub_8126334
sub_8126334: @ 8126334
push {r4,r5,lr}
2016-11-01 19:35:16 +01:00
ldr r1, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
ldr r0, [r1]
movs r2, 0
strh r2, [r0]
ldr r0, [r1]
strh r2, [r0, 0x2]
movs r4, 0
adds r5, r1, 0
_08126346:
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 _08126346
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_8126334
thumb_func_start sub_8126370
sub_8126370: @ 8126370
push {r4,lr}
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
ldr r1, [r2]
movs r0, 0
strh r0, [r1]
movs r3, 0
adds r4, r2, 0
_0812637E:
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 _0812637E
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end sub_8126370
thumb_func_start sub_81263A4
sub_81263A4: @ 81263A4
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 _081263BC
movs r2, 0xFF
mov r9, r2
_081263BC:
movs r6, 0
2016-11-01 19:35:16 +01:00
ldr r3, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
mov r12, r3
mov r0, r9
lsls r4, r0, 1
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
cmp r6, r9
bcs _081263E0
movs r2, 0
_081263CE:
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 _081263CE
_081263E0:
mov r1, r12
ldr r0, [r1]
adds r0, r4, r0
ldr r2, =0x00003def
adds r1, r2, 0
strh r1, [r0]
movs r3, 0
ldrb r5, [r5]
cmp r3, r5
bcs _081264E4
_081263F4:
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006168
ldr r0, =gUnknown_03006178
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r1, r3
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006180
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
muls r0, r1
lsls r0, 1
ldr r1, [r2]
adds r1, r0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006164
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
lsls r0, 1
adds r4, r1, r0
movs r6, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
adds r2, r0, 0
adds r3, 0x1
mov r10, r3
ldrb r3, [r2]
cmp r6, r3
bcs _081264D6
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006188
2016-11-01 18:08:48 +01:00
mov r8, r0
_08126424:
ldrh r0, [r4]
movs r3, 0x80
lsls r3, 8
adds r1, r3, 0
ands r0, r1
cmp r0, 0
beq _08126464
mov r1, r8
ldrh r0, [r1]
strh r0, [r4]
adds r6, 0x1
adds r7, r4, 0x2
b _081264CA
.pool
_08126464:
adds r0, r4, 0
bl sub_81267C4
lsls r0, 16
lsrs r5, r0, 16
movs r3, 0x1
adds r6, 0x1
adds r7, r4, 0x2
cmp r3, r9
bcs _081264C0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006184
2016-11-01 18:08:48 +01:00
ldr r2, [r0]
ldrh r1, [r2, 0x2]
mov r12, r0
cmp r1, 0
bne _08126494
strh r5, [r2, 0x2]
mov r2, r8
ldrh r0, [r2]
adds r0, 0x1
b _081264BE
.pool
_08126494:
mov r2, r12
ldr r1, [r2]
lsls r0, r3, 1
adds r0, r1
ldrh r0, [r0]
cmp r0, r5
beq _081264B8
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, r9
bcs _081264C0
lsls r0, r3, 1
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, 0
bne _08126494
strh r5, [r1]
_081264B8:
mov r1, r8
ldrh r0, [r1]
adds r0, r3
_081264BE:
strh r0, [r4]
_081264C0:
2016-11-01 19:35:16 +01:00
ldr r2, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
cmp r3, r9
bne _081264CA
mov r3, r9
strh r3, [r4]
_081264CA:
lsls r0, r6, 24
lsrs r6, r0, 24
adds r4, r7, 0
ldrb r0, [r2]
cmp r6, r0
bcc _08126424
_081264D6:
mov r1, r10
lsls r0, r1, 24
lsrs r3, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r3, r0
bcc _081263F4
_081264E4:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81263A4
thumb_func_start sub_81264FC
sub_81264FC: @ 81264FC
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r2, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcs _081265A0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006168
2016-11-01 18:08:48 +01:00
mov r8, r0
_08126510:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006178
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r1, r2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006180
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
muls r0, r1
lsls r0, 1
mov r3, r8
ldr r1, [r3]
adds r1, r0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006164
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
lsls r0, 1
adds r4, r1, r0
movs r6, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
adds r3, r0, 0
adds r7, r2, 0x1
ldrb r0, [r3]
cmp r6, r0
bcs _08126594
2016-11-01 19:35:16 +01:00
ldr r5, =gUnknown_03006188
2016-11-01 18:08:48 +01:00
_0812653C:
ldrh r0, [r4]
movs r2, 0x80
lsls r2, 8
adds r1, r2, 0
ands r0, r1
cmp r0, 0
beq _0812656C
ldrh r0, [r5]
strh r0, [r4]
b _08126586
.pool
_0812656C:
adds r0, r4, 0
2018-12-29 11:50:00 +01:00
bl ConvertToBlackOrWhite
2016-11-01 18:08:48 +01:00
lsls r0, 16
cmp r0, 0
bne _0812657E
ldrh r0, [r5]
adds r0, 0x1
b _08126582
_0812657E:
ldrh r0, [r5]
adds r0, 0x2
_08126582:
strh r0, [r4]
2016-11-01 19:35:16 +01:00
ldr r3, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
_08126586:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
adds r4, 0x2
ldrb r0, [r3]
cmp r6, r0
bcc _0812653C
_08126594:
lsls r0, r7, 24
lsrs r2, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcc _08126510
_081265A0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81264FC
thumb_func_start sub_81265B4
sub_81265B4: @ 81265B4
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r2, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcs _08126650
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006168
2016-11-01 18:08:48 +01:00
mov r8, r0
_081265CA:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006178
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r1, r2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006180
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
muls r0, r1
lsls r0, 1
mov r3, r8
ldr r1, [r3]
adds r1, r0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006164
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
lsls r0, 1
adds r4, r1, r0
movs r5, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
adds r7, r2, 0x1
ldrb r0, [r0]
cmp r5, r0
bcs _08126644
2016-11-01 19:35:16 +01:00
ldr r6, =gUnknown_03006188
2016-11-01 18:08:48 +01:00
movs r0, 0x80
lsls r0, 8
adds r2, r0, 0
_081265FA:
ldrh r0, [r4]
ands r0, r2
cmp r0, 0
beq _08126624
ldrh r0, [r6]
strh r0, [r4]
b _08126634
.pool
_08126624:
adds r0, r4, 0
str r2, [sp]
bl sub_8126908
ldrh r1, [r6]
adds r0, r1
strh r0, [r4]
ldr r2, [sp]
_08126634:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r4, 0x2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r5, r0
bcc _081265FA
_08126644:
lsls r0, r7, 24
lsrs r2, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcc _081265CA
_08126650:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_81265B4
thumb_func_start sub_8126664
sub_8126664: @ 8126664
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r2, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcs _08126700
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006168
2016-11-01 18:08:48 +01:00
mov r8, r0
_0812667A:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006178
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r1, r2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006180
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
muls r0, r1
lsls r0, 1
mov r3, r8
ldr r1, [r3]
adds r1, r0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006164
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
lsls r0, 1
adds r4, r1, r0
movs r5, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
adds r7, r2, 0x1
ldrb r0, [r0]
cmp r5, r0
bcs _081266F4
2016-11-01 19:35:16 +01:00
ldr r6, =gUnknown_03006188
2016-11-01 18:08:48 +01:00
movs r0, 0x80
lsls r0, 8
adds r2, r0, 0
_081266AA:
ldrh r0, [r4]
ands r0, r2
cmp r0, 0
beq _081266D4
ldrh r0, [r6]
strh r0, [r4]
b _081266E4
.pool
_081266D4:
adds r0, r4, 0
str r2, [sp]
bl sub_812693C
ldrh r1, [r6]
adds r0, r1
strh r0, [r4]
ldr r2, [sp]
_081266E4:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r4, 0x2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r5, r0
bcc _081266AA
_081266F4:
lsls r0, r7, 24
lsrs r2, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcc _0812667A
_08126700:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8126664
thumb_func_start sub_8126714
sub_8126714: @ 8126714
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
movs r2, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcs _081267B0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006168
2016-11-01 18:08:48 +01:00
mov r8, r0
_0812672A:
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006178
2016-11-01 18:08:48 +01:00
ldrb r1, [r0]
adds r1, r2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006180
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
muls r0, r1
lsls r0, 1
mov r3, r8
ldr r1, [r3]
adds r1, r0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006164
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
lsls r0, 1
adds r4, r1, r0
movs r5, 0
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
adds r7, r2, 0x1
ldrb r0, [r0]
cmp r5, r0
bcs _081267A4
2016-11-01 19:35:16 +01:00
ldr r6, =gUnknown_03006188
2016-11-01 18:08:48 +01:00
movs r0, 0x80
lsls r0, 8
adds r2, r0, 0
_0812675A:
ldrh r0, [r4]
ands r0, r2
cmp r0, 0
beq _08126784
ldrh r0, [r6]
strh r0, [r4]
b _08126794
.pool
_08126784:
adds r0, r4, 0
str r2, [sp]
bl sub_8126838
ldrh r1, [r6]
adds r0, r1
strh r0, [r4]
ldr r2, [sp]
_08126794:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r4, 0x2
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_03006174
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r5, r0
bcc _0812675A
_081267A4:
lsls r0, r7, 24
lsrs r2, r0, 24
2016-11-01 19:35:16 +01:00
ldr r0, =gUnknown_0300616C
2016-11-01 18:08:48 +01:00
ldrb r0, [r0]
cmp r2, r0
bcc _0812672A
_081267B0:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_8126714
thumb_func_start sub_81267C4
sub_81267C4: @ 81267C4
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 _081267E8
movs r0, 0x1C
ands r0, r4
adds r4, r0, 0x4
_081267E8:
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _081267F6
movs r0, 0x1C
ands r0, r3
adds r3, r0, 0x4
_081267F6:
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _08126804
movs r0, 0x1C
ands r0, r2
adds r2, r0, 0x4
_08126804:
cmp r4, 0x5
bhi _0812680A
movs r4, 0x6
_0812680A:
cmp r4, 0x1E
bls _08126810
movs r4, 0x1E
_08126810:
cmp r3, 0x5
bhi _08126816
movs r3, 0x6
_08126816:
cmp r3, 0x1E
bls _0812681C
movs r3, 0x1E
_0812681C:
cmp r2, 0x5
bhi _08126822
movs r2, 0x6
_08126822:
cmp r2, 0x1E
bls _08126828
movs r2, 0x1E
_08126828:
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_81267C4
thumb_func_start sub_8126838
sub_8126838: @ 8126838
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 _0812685C
cmp r2, 0xA
bhi _0812685C
cmp r0, 0xA
bhi _0812685C
movs r0, 0x1
b _08126902
_0812685C:
cmp r3, 0x13
bls _08126880
cmp r2, 0x13
bls _08126868
cmp r0, 0x13
bhi _0812688C
_08126868:
cmp r3, 0x13
bls _08126880
cmp r2, 0x13
bls _08126876
cmp r0, 0xE
bhi _0812688C
b _081268C4
_08126876:
cmp r0, 0x13
bls _08126880
cmp r2, 0xE
bhi _0812688C
b _081268A0
_08126880:
cmp r2, 0x13
bls _08126890
cmp r0, 0x13
bls _08126890
cmp r3, 0xE
bls _081268E8
_0812688C:
movs r0, 0x2
b _08126902
_08126890:
cmp r3, 0x13
bls _081268B4
cmp r2, 0xB
bls _081268A8
cmp r0, 0xB
bls _081268A4
cmp r2, r0
bcs _081268C4
_081268A0:
movs r0, 0x8
b _08126902
_081268A4:
movs r0, 0xA
b _08126902
_081268A8:
cmp r0, 0xB
bls _081268B0
movs r0, 0xD
b _08126902
_081268B0:
movs r0, 0x4
b _08126902
_081268B4:
cmp r2, 0x13
bls _081268D8
cmp r3, 0xB
bls _081268CC
cmp r0, 0xB
bls _081268C8
cmp r3, r0
bcc _081268E8
_081268C4:
movs r0, 0x7
b _08126902
_081268C8:
movs r0, 0xB
b _08126902
_081268CC:
cmp r0, 0xB
bls _081268D4
movs r0, 0xE
b _08126902
_081268D4:
movs r0, 0x5
b _08126902
_081268D8:
cmp r0, 0x13
bls _08126900
cmp r3, 0xB
bls _081268EC
cmp r2, 0xB
bls _081268F4
cmp r3, r2
bcs _081268A0
_081268E8:
movs r0, 0x9
b _08126902
_081268EC:
cmp r2, 0xB
bls _081268F4
movs r0, 0xC
b _08126902
_081268F4:
cmp r0, 0xB
bls _081268FC
movs r0, 0xF
b _08126902
_081268FC:
movs r0, 0x6
b _08126902
_08126900:
movs r0, 0x3
_08126902:
pop {r1}
bx r1
thumb_func_end sub_8126838
thumb_func_start sub_8126908
sub_8126908: @ 8126908
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 _08126934
lsrs r0, 17
b _08126936
_08126934:
movs r0, 0x1
_08126936:
pop {r1}
bx r1
thumb_func_end sub_8126908
thumb_func_start sub_812693C
sub_812693C: @ 812693C
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_812693C
.align 2, 0 @ Don't pad with nop.